--- services: authentik: image: ghcr.io/goauthentik/server:2025.12.4 container_name: authentik-server restart: unless-stopped command: server environment: - AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY} - AUTHENTIK_ERROR_REPORTING__ENABLED=False - AUTHENTIK_POSTGRESQL__HOST=authentik_postgres - AUTHENTIK_POSTGRESQL__USER=authentik - AUTHENTIK_POSTGRESQL__NAME=authentik - AUTHENTIK_POSTGRESQL__PASSWORD=${DATABASE_PASSWORD} # OIDC client credentials — consumed by blueprints via ${VAR} substitution - PROXMOX_OIDC_CLIENT_ID=${PROXMOX_OIDC_CLIENT_ID} - PROXMOX_OIDC_CLIENT_SECRET=${PROXMOX_OIDC_CLIENT_SECRET} - STEPCA_OIDC_CLIENT_ID=${STEPCA_OIDC_CLIENT_ID} - STEPCA_OIDC_CLIENT_SECRET=${STEPCA_OIDC_CLIENT_SECRET} networks: - authentik_backend ports: - "8000:9000" - "8443:9443" volumes: - authentik_data:/data - authentik_templates:/templates - ./blueprints:/blueprints/custom:ro depends_on: authentik_postgres: condition: service_healthy authentik_worker: image: ghcr.io/goauthentik/server:2025.12.4 container_name: authentik-worker restart: unless-stopped command: worker environment: - AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY} - AUTHENTIK_ERROR_REPORTING__ENABLED=False - AUTHENTIK_POSTGRESQL__HOST=authentik_postgres - AUTHENTIK_POSTGRESQL__USER=authentik - AUTHENTIK_POSTGRESQL__NAME=authentik - AUTHENTIK_POSTGRESQL__PASSWORD=${DATABASE_PASSWORD} - AUTHENTIK_BOOTSTRAP_PASSWORD=${AUTHENTIK_ADMIN_PASSWORD} # OIDC client credentials — consumed by blueprints via ${VAR} substitution - PROXMOX_OIDC_CLIENT_ID=${PROXMOX_OIDC_CLIENT_ID} - PROXMOX_OIDC_CLIENT_SECRET=${PROXMOX_OIDC_CLIENT_SECRET} - STEPCA_OIDC_CLIENT_ID=${STEPCA_OIDC_CLIENT_ID} - STEPCA_OIDC_CLIENT_SECRET=${STEPCA_OIDC_CLIENT_SECRET} user: root networks: - authentik_backend volumes: - /run/docker.sock:/run/docker.sock - authentik_data:/data - authentik_certs:/certs - authentik_templates:/templates - ./blueprints:/blueprints/custom:ro depends_on: authentik_postgres: condition: service_healthy authentik_postgres: image: docker.io/library/postgres:17.8 container_name: authentik-postgres restart: unless-stopped environment: - POSTGRES_USER=authentik - POSTGRES_PASSWORD=${DATABASE_PASSWORD} - POSTGRES_DB=authentik healthcheck: test: ["CMD-SHELL", "pg_isready -U authentik"] start_period: 30s interval: 10s timeout: 10s retries: 5 networks: - authentik_backend volumes: - authentik_postgres:/var/lib/postgresql/data networks: authentik_backend: driver: bridge volumes: authentik_postgres: driver: local authentik_data: driver: local authentik_certs: driver: local authentik_templates: driver: local