Privacy-first web wizard for generating docker-compose.yaml and .env files for self-hosted services.
- Guided service selection and environment variable setup
- Service-specific defaults, references, and risk warnings
- In-form secure secret generation for supported fields
- In-browser generation (no server-side form processing)
- Bundle export:
docker-compose.yaml+.env(missing required values exported as explicit placeholders)
| Service | Category | Variant |
|---|---|---|
| Audiobookshelf | media | base |
| BentoPDF | documents | base |
| BentoPDF | documents | oauth2-proxy |
| Dozzle | operations | base |
| Dozzle | operations | oauth2-proxy |
| Immich | media | base |
| IT Tools | developer-tools | base |
| Jellyfin | media | base |
| GetArcane | operations | base |
| GetArcane + OIDC | operations | oidc |
| Plex | media | base |
| Watchtower | operations | base |
- React 19 + TypeScript
- Vite 8
- ESLint
- Vitest (unit tests)
- Playwright (E2E)
npm install
npm run devdocker compose -f docker-compose.app.yml up --buildApp URL: http://localhost:8080
npm run test:alltest:all runs lint, unit tests (Vitest), template validation, link validation, E2E tests, Lighthouse audit, and build.
Lighthouse badges are published from CI to the
gh-pagesbranch underlighthouse/*.json.
npm run scaffold:service -- --service my-service --variant base --name "My Service" --category operations --description "My service description"
# categories: media, documents, operations, developer-tools, securityThis scaffolds entries in:
src/templates/services/<service>/<variant>.compose.yamlsrc/templates/services/<service>/<variant>.meta.json(field coverage and metadata starter)src/templates/registry.tssrc/data/service-catalog.ts
This project is developed with AI-assisted workflows using agents-opencode — a set of specialized agents for orchestration, implementation, review, and documentation.