Skip to content

Quickstart: self-host in 5 minutes

You need a machine with Podman (or Docker) and Compose, about 4 GB of free memory, and git. The stack is Slipway itself plus Postgres 17, NATS JetStream, MinIO (S3) and Valkey.

Terminal window
git clone https://github.com/slipway-systems/slipway
cd slipway
podman compose -f deploy/compose/compose.yaml --profile app up -d --build

Use docker compose if you run Docker. The default profile starts only the dependencies; --profile app adds the slipway service (all mode: server, scheduler and worker in one process, migrations applied on start) and one docker-executor runner.

Wait for the health check, then open the UI:

Terminal window
curl -fsS http://localhost:8080/healthz && echo ok

Browse to http://localhost:8080 and create your account and organisation. The first user becomes the organisation owner.

In the UI, go to Settings, Runners, New pool (executor docker, label linux), then copy the registration token. Or use the CLI:

Terminal window
slipway login --server http://localhost:8080
slipway runner pool create linux-docker --executor docker --label linux
slipway runner token linux-docker

Give the token to the bundled runner and restart it:

Terminal window
export SLIPWAY_RUNNER_TOKEN=<token>
podman compose -f deploy/compose/compose.yaml --profile app up -d runner

The runner needs a Docker-compatible socket. The Compose file defaults to the rootless Podman socket; set SLIPWAY_RUNNER_SOCKET=/var/run/docker.sock for Docker.

Check that it registered:

Terminal window
slipway runner list

Add an SCM integration under Settings, Integrations (for a laptop install, GitHub needs a reachable webhook URL; use a tunnel, or trigger runs manually). Create .slipway/ci.yaml as shown in the cloud quickstart, then:

Terminal window
slipway run trigger ci --branch main --watch
Component Port Purpose
slipway 8080 UI, Connect API, webhooks, /healthz, /readyz, /metrics
Postgres 5432 State, with row-level security per organisation
NATS 4222 / 8222 Queues and event streams (JetStream)
MinIO 9000 / 9001 Logs, artifacts, caches (bucket slipway)
Valkey 6379 Sessions and rate limits