Docker Compose
Docker Compose is the easiest way to run Strøm. It starts PostgreSQL, the server, and a worker in a single command.
Quick start
Section titled “Quick start”git clone https://github.com/fremvaerk/stroem.gitcd stroem
# Start all servicesdocker compose up -d
# Wait for server to be readyuntil curl -sf http://localhost:8080/api/workspaces/default/tasks >/dev/null; do sleep 2; done
# Open the web UIopen http://localhost:8080Services
Section titled “Services”The default docker-compose.yml defines three services:
| Service | Image | Port | Description |
|---|---|---|---|
postgres | postgres:16 | 5432 | PostgreSQL database |
server | stroem-server | 8080 | HTTP API + web UI |
worker | stroem-worker | — | Step executor |
Configuration
Section titled “Configuration”Server
Section titled “Server”The server configuration is provided via server-config.yaml mounted into the container. Key settings:
listen: "0.0.0.0:8080"db: url: "postgres://stroem:stroem@postgres:5432/stroem"log_storage: local_dir: /var/stroem/logsworkspaces: default: type: folder path: /workspaceworker_token: "dev-worker-token-change-in-production"Worker
Section titled “Worker”The worker configuration is provided via worker-config.yaml:
server_url: "http://server:8080"worker_token: "dev-worker-token-change-in-production"worker_name: "worker-1"max_concurrent: 4poll_interval_secs: 2workspace_cache_dir: /var/stroem/workspace-cachetags: - scriptCustom workflows
Section titled “Custom workflows”Mount your workflow directory into the server container:
services: server: volumes: - ./my-workflows:/workspaceProduction considerations
Section titled “Production considerations”For production use:
- Change the worker token — use a strong random value
- Use a managed database — external PostgreSQL with backups
- Enable authentication — add the
authsection to server config - Use environment variable overrides for secrets:
services:server:environment:STROEM__DB__URL: "postgres://user:secret@prod-db:5432/stroem"STROEM__WORKER_TOKEN: "production-secret-token"
For larger deployments, consider Helm / Kubernetes.
Tear down
Section titled “Tear down”docker compose down -v # -v removes the database volume