Docker Stacks
GitOps-managed Docker Compose stacks. Push changes to main branch and Gitea Actions will automatically deploy.
Structure
How It Works
- Edit compose files in
stacks/<service>/
- Commit and push to
main
- Gitea Actions detects changed stacks
- Deploys only the changed stacks to
/var/core/<service>/
Manual Deploy
Required Gitea Secrets
Set these in Gitea → Repository → Settings → Actions → Secrets:
Global
| Secret |
Description |
DOMAIN |
Base domain (e.g., ghost.tel) |
VOLUMES_ROOT |
Data root path (e.g., /var/core) |
ACME_EMAIL |
Email for Let's Encrypt |
Authentik
| Secret |
Description |
AUTHENTIK_SECRET_KEY |
Generate: openssl rand -hex 50 |
AUTHENTIK_PG_PASS |
PostgreSQL password |
Immich
| Secret |
Description |
IMMICH_DB_PASSWORD |
PostgreSQL password |
Planka
| Secret |
Description |
PLANKA_SECRET_KEY |
Generate: openssl rand -hex 64 |
PLANKA_OIDC_CLIENT_ID |
Authentik client ID |
PLANKA_OIDC_CLIENT_SECRET |
Authentik client secret |
Registry
| Secret |
Description |
REGISTRY_HTTP_SECRET |
Generate: openssl rand -hex 32 |
Memento
| Secret |
Description |
MEMENTO_AUTH_SECRET |
Auth.js secret |
MEMENTO_AUTHENTIK_CLIENT_ID |
Authentik client ID |
MEMENTO_AUTHENTIK_CLIENT_SECRET |
Authentik client secret |
Bookclub
| Secret |
Description |
BOOKCLUB_SMTP_HOST |
SMTP server |
BOOKCLUB_SMTP_USER |
SMTP username |
BOOKCLUB_SMTP_PASS |
SMTP password |
BOOKCLUB_MAIL_FROM |
From email |
BOOKCLUB_MAIL_TO |
Recipient email |
BOOKCLUB_SECRET_PHRASE |
Form submission secret |
Perilous
| Secret |
Description |
PERILOUS_CODE_SERVER_PASSWORD |
Code-server password |
Invidious
| Secret |
Description |
INVIDIOUS_DB_PASSWORD |
PostgreSQL password |
INVIDIOUS_HMAC_KEY |
Generate: openssl rand -hex 16 |
INVIDIOUS_COMPANION_KEY |
Must be exactly 16 chars: openssl rand -base64 12 |
Runner Setup
The workflow requires a self-hosted runner on the prod server:
First-Time Setup
-
Create the web Docker network:
-
Create acme.json for Traefik:
-
Deploy traefik first:
-
Then deploy other stacks as needed.
Runner test Wed 21 Jan 2026 12:08:53 AM EST
Runner test 2 Wed 21 Jan 2026 12:11:37 AM EST