Files
Authentik/docker-compose.yml
2026-05-01 18:55:17 +03:00

112 lines
3.6 KiB
YAML

services:
postgresql:
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_USER: ${PG_USER:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:-authentik}
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 12
start_period: 20s
volumes:
- database:/var/lib/postgresql/data
redis:
image: docker.io/library/redis:7-alpine
restart: unless-stopped
command: redis-server --save "" --appendonly no
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
interval: 10s
timeout: 3s
retries: 12
start_period: 10s
authentik:
image: ${AUTHENTIK_IMAGE:-docker.io/authentik/server}:${AUTHENTIK_TAG:-2026.2.2}
restart: unless-stopped
command: server
environment:
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-authentik}
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_BOOTSTRAP_EMAIL: ${AUTHENTIK_BOOTSTRAP_EMAIL}
AUTHENTIK_BOOTSTRAP_PASSWORD: ${AUTHENTIK_BOOTSTRAP_PASSWORD}
AUTHENTIK_BOOTSTRAP_TOKEN: ${AUTHENTIK_BOOTSTRAP_TOKEN}
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
AUTHENTIK_LOG_LEVEL: info
ports:
- "127.0.0.1:9000:9000"
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- ./authentik-data:/data
- ./custom-templates:/templates
- ./authentik/blueprints:/blueprints/custom
authentik-worker:
image: ${AUTHENTIK_IMAGE:-docker.io/authentik/server}:${AUTHENTIK_TAG:-2026.2.2}
restart: unless-stopped
command: worker
user: root
environment:
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-authentik}
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_BOOTSTRAP_EMAIL: ${AUTHENTIK_BOOTSTRAP_EMAIL}
AUTHENTIK_BOOTSTRAP_PASSWORD: ${AUTHENTIK_BOOTSTRAP_PASSWORD}
AUTHENTIK_BOOTSTRAP_TOKEN: ${AUTHENTIK_BOOTSTRAP_TOKEN}
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
AUTHENTIK_LOG_LEVEL: info
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./authentik-data:/data
- ./custom-templates:/templates
- ./authentik/blueprints:/blueprints/custom
frontend:
build: ./frontend
restart: unless-stopped
environment:
APP_URL: ${APP_URL}
SESSION_SECRET: ${SESSION_SECRET}
AUTHENTIK_PUBLIC_URL: ${AUTHENTIK_PUBLIC_URL}
AUTHENTIK_INTERNAL_URL: ${AUTHENTIK_INTERNAL_URL}
AUTHENTIK_API_TOKEN: ${AUTHENTIK_API_TOKEN}
AUTHENTIK_LOGIN_FLOW: ${AUTHENTIK_LOGIN_FLOW}
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
OIDC_ISSUER: ${OIDC_ISSUER}
OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI}
AUTH_DEBUG: ${AUTH_DEBUG}
ports:
- "127.0.0.1:3000:3000"
depends_on:
authentik:
condition: service_started
authentik-worker:
condition: service_started
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
database: