--- services: postgresql: image: docker.io/library/postgres:16-alpine restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] start_period: 20s interval: 30s retries: 5 timeout: 5s volumes: - /app-config/authentik/db:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: ${PG_PASS} POSTGRES_USER: authentik POSTGRES_DB: authentik redis: image: docker.io/library/redis:alpine command: --save 60 1 --loglevel warning restart: always healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] start_period: 20s interval: 30s retries: 5 timeout: 3s volumes: - /app-config/authentik/redis:/data server: image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.12.3} restart: always command: server environment: AUTHENTIK_REDIS__HOST: redis AUTHENTIK_POSTGRESQL__HOST: postgresql AUTHENTIK_POSTGRESQL__USER: authentik AUTHENTIK_POSTGRESQL__NAME: authentik AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} AUTHENTIK_ERROR_REPORTING__ENABLED: "false" volumes: - /app-config/authentik/media:/media - /app-config/authentik/custom-templates:/templates ports: - "9000:9000" - "9443:9443" depends_on: postgresql: condition: service_healthy redis: condition: service_healthy worker: image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.12.3} restart: always command: worker environment: AUTHENTIK_REDIS__HOST: redis AUTHENTIK_POSTGRESQL__HOST: postgresql AUTHENTIK_POSTGRESQL__USER: authentik AUTHENTIK_POSTGRESQL__NAME: authentik AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} AUTHENTIK_ERROR_REPORTING__ENABLED: "false" user: root volumes: - /var/run/docker.sock:/var/run/docker.sock - /app-config/authentik/media:/media - /app-config/authentik/certs:/certs - /app-config/authentik/custom-templates:/templates depends_on: postgresql: condition: service_healthy redis: condition: service_healthy