Files
coder/docker-compose.yml
Antigravity 0e54b86dac coder: autostop TTL, nightly backups, Authelia OIDC, wildcard runbook
- docker-compose: CODER_OIDC_* wired to Authelia (password login kept as break-glass)
- scripts/backup-stacks.sh + stacks-backup.timer: nightly pg_dump, Continue state, stack configs
- vault: verification items 13/14, auth-model OIDC section, limits DNS-01 runbook
2026-08-20 11:05:47 +02:00

59 lines
2.1 KiB
YAML

services:
database:
image: postgres:17
container_name: coder-database
restart: unless-stopped
environment:
POSTGRES_USER: coder
POSTGRES_PASSWORD: ${CODER_PG_PASSWORD}
POSTGRES_DB: coder
volumes:
- coder_pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U coder -d coder"]
interval: 5s
timeout: 5s
retries: 12
mem_limit: 2g
coder:
image: ghcr.io/coder/coder:v2.35.3
container_name: coder
restart: unless-stopped
depends_on:
database:
condition: service_healthy
ports:
- "127.0.0.1:52226:7080"
environment:
CODER_HTTP_ADDRESS: 0.0.0.0:7080
CODER_ACCESS_URL: https://code.loca.zone
CODER_PG_CONNECTION_URL: postgresql://coder:${CODER_PG_PASSWORD}@database:5432/coder?sslmode=disable
CODER_TELEMETRY_ENABLE: "false"
# Authelia OIDC. Password login stays enabled as break-glass, so
# CODER_DISABLE_PASSWORD_AUTH is deliberately unset. No email-domain
# restriction: the Authelia user database is the gate.
CODER_OIDC_ISSUER_URL: https://auth.loca.zone
CODER_OIDC_CLIENT_ID: coder
CODER_OIDC_CLIENT_SECRET: ${CODER_OIDC_CLIENT_SECRET}
CODER_OIDC_SCOPES: openid,profile,email
CODER_OIDC_SIGN_IN_TEXT: "Sign in with loca.zone SSO"
# No CODER_WILDCARD_ACCESS_URL. Nested names such as foo.code.loca.zone
# DO resolve via the *.loca.zone wildcard; the actual blocker is TLS
# issuance: this lineage covers only code.loca.zone and
# wiki.code.loca.zone, and a *.code.loca.zone certificate needs DNS-01
# validation with DNS-provider credentials that are not configured here.
# Path-based workspace apps and `coder port-forward` are used instead.
group_add:
# host gid of /var/run/docker.sock; required so the built-in provisioner
# can build docker-template workspaces.
- "105"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- coder_home:/home/coder
mem_limit: 8g
volumes:
coder_pgdata:
coder_home: