Prerequisites
Before installing Stormkit, ensure your system meets the following requirements:- Docker and Docker Compose installed
- Linux server (Ubuntu 20+, Debian 11+, Fedora 39+, Rocky Linux 10) or macOS (Sonoma)
- Minimum 2GB RAM and 2 CPU cores recommended
- PostgreSQL 14+ (can be run via Docker)
- Redis 7+ (can be run via Docker)
Quick Installation
The fastest way to get started is using the official installation script:1
Install Docker
Automatically detect and install Docker if not already present on your system.
2
Configure Environment
Prompt you to configure necessary environment variables for your Stormkit instance.
3
Choose Deployment Method
Ask whether to use Docker Compose (single machine) or Docker Swarm (clustering).
4
Start Services
Pull the required Docker images and start all Stormkit services.
The installation script has been tested on Ubuntu (20, 22, 24), Darwin (Sonoma), Fedora (39, 40), Debian (11, 12), and Rocky Linux (10). If you encounter issues, please submit them here.
Manual Installation
For more control over the installation process, you can set up Stormkit manually using Docker Compose.Step 1: Create Project Directory
Step 2: Create Environment File
Create a.env file with the required configuration:
.env
Step 3: Create Docker Compose File
Create adocker-compose.yaml file:
docker-compose.yaml
Step 4: Start Services
1
Pull Docker Images
2
Start All Services
3
Verify Services are Running
4
Check Logs
Ctrl+C to stop following logs.Docker Images
Stormkit uses two main Docker images:ghcr.io/stormkit-io/hosting:latest
- Serves the Stormkit web interface and API
- Handles serving your deployed applications
- Manages TLS certificates and HTTPS connections
- Optimized for production web serving
ghcr.io/stormkit-io/workerserver:latest
- Runs background jobs and deployment pipelines
- Handles application builds and deployments
- Processes build queues
- Manages deployment workers
Required Services
PostgreSQL 14+
Stormkit requires a PostgreSQL database to store:- User accounts and authentication data
- Application and deployment configurations
- Build logs and deployment history
- System settings and preferences
postgres:17 as shown in the docker-compose.yaml above.
Redis 7+
Redis is used for:- Job queue management
- Caching frequently accessed data
- Session storage
- Real-time deployment status updates
redis:7.
Deployment Options
For single-machine deployments, Docker Compose is recommended for its simplicity. For scalability and clustering scenarios, consider Docker Swarm or other container orchestration tools.
Post-Installation Steps
1
Access Stormkit
Open your browser and navigate to your configured
STORMKIT_APP_URL.2
Create Admin Account
On first launch, you’ll be prompted to create an admin account with full access to the admin interface.
3
Configure Authentication
Set up GitHub, GitLab, or Bitbucket authentication to import private repositories. See the Authentication guide.
4
Deploy Your First App
Import a repository and trigger your first deployment!
Upgrading Stormkit
To upgrade your Stormkit instance to the latest version:Environment Variables Reference
For a complete list of available environment variables and their descriptions, refer to the official docker-compose.yaml file. Key environment variables include:STORMKIT_APP_SECRET- Secret key for encrypting sensitive dataSTORMKIT_API_URL- URL where the API is accessibleSTORMKIT_APP_URL- URL where the web interface is accessibleSTORMKIT_RUNNER_CONCURRENCY- Number of concurrent deployments (default: 4)POSTGRES_*- Database connection settingsREDIS_ADDR- Redis server address
Advanced Configuration
GitHub Actions Integration
By default, Stormkit runs deployments on the same machine as the workerserver. For better performance and CI control, you can configure GitHub Actions. See the stormkit-io/runner repository for instructions.Custom Domain Setup
Configure your DNS to point to your Stormkit server’s IP address:STORMKIT_APP_URL and STORMKIT_API_URL in your .env file match your domain.
Tutorials
- Install Stormkit on Ubuntu Server and deploy a Next.js app
- How to Self-Host Stormkit on Hetzner Cloud
Next Steps
Authentication
Configure GitHub, GitLab, or Bitbucket authentication
Managing Users
Control user access and sign-up modes
Custom Images
Build custom Docker images with specific dependencies
Troubleshooting
Common issues and solutions