A public collection of Docker Compose stacks that have been tested for self-hosting.
- Choose a stack below and open its setup guide.
- Copy its
.env.exampleto.env(Directus usesexternal-db-.env.example). - Edit
.envfor your host: image versions, URLs, ports, secrets and data paths. - Run
docker compose up -dfrom the stack directory. Directus's guide includes its explicit filename.
Keep your .env and data when pulling updates. Read the stack's update notes before changing application or database versions.
| Stack | Compose file | Guide |
|---|---|---|
| BitMappery | bitmappery/compose.yaml |
Setup |
| Super Productivity | super-productivity/compose.yaml |
Setup |
| Penpot | penpot/compose.yaml |
Setup |
| Directus | directus/external-db-compose.yaml |
Setup |
| Portabase | portabase/compose.yml |
Setup |
| Portabase agent | portabase-agent/compose.yml |
Setup |
| Storyteller | storyteller/compose.yaml |
Setup |
| ReadMeABook | readmeabook/compose.yaml |
Setup |
| qBittorrent + Gluetun + dashboards | qbittorrent-gluetun/compose.yaml |
Setup |
| Omada Controller | omada/compose.yaml |
Setup |
- Dockhand — use the Compose path above for a Git-backed stack, and set host values in its environment overrides.
- Komodo — infrastructure and Compose stack management.
Each stack has its own directory with a Compose file, environment example and README. Supporting material stays under .resources/: templates, maintenance notes, and validation results and tools. Retired stacks are in .retired/.
For new stacks, follow .resources/templates, use compose.yaml, and register the stack in the validation tool. Existing filenames are preserved for compatibility.