Quickstart: Docker Compose
Five minutes to a Stowage + MinIO stack. Useful when you want a more realistic environment than the bundled-MinIO quickstart — both processes run in their own containers, and the compose file is a good starting point for adapting to a real deployment.
#Prerequisites
- Docker 24+
- A clone of the Stowage repository (the compose file references the
Dockerfileso it can build from source).
#Bring the stack up
From the repo root:
docker compose -f deploy/compose/docker-compose.yml up -dThis launches:
minio—quay.io/minio/minio:latest, root userminioadmin, exposed on:9000(S3 API) and:9001(MinIO console).stowage— built fromdeploy/docker/Dockerfile, configured byconfig.example.yamlmounted into the container, exposed on:8080.
The Stowage container waits on MinIO's health check before it starts the dashboard.
#Create the first admin user
docker compose -f deploy/compose/docker-compose.yml exec stowage \
stowage create-admin \
--username admin \
--password 'S3cur3-P@ssw0rd!'The password rule is at least 12 characters; the demo config relaxes the zxcvbn strength check, but production deployments should not.
#Log in
Open http://localhost:8080, log in as admin,
and you should land in the dashboard with local-minio listed as a
backend.
#Inspect what you have
docker compose -f deploy/compose/docker-compose.yml ps
docker compose -f deploy/compose/docker-compose.yml logs stowage --tail=20The MinIO console is at http://localhost:9001 if you want to look at the underlying bucket directly. Tenants don't need it — they go through Stowage.
#Tear it down
docker compose -f deploy/compose/docker-compose.yml down -vThe -v flag removes the named volume minio-data. Drop it to keep
the bucket contents around between runs.
#What's in the compose file
deploy/compose/docker-compose.yml
is intentionally minimal — two services, no reverse proxy, no TLS, no
volume for Stowage's own state. For anything beyond local kicking-of-
tyres, add:
- A real reverse proxy in front of
:8080(nginx, Caddy, Traefik) — see Self-host → Reverse proxy. - A persistent volume for Stowage's
stowage.dband the secret-key file — see Self-host → SQLite. - Real OIDC, not local username + password — see Self-host → OIDC.
#Next step
- Your first share link.
- Self-host → for everything else.