services: authentik: image: ghcr.io/goauthentik/server:latest container_name: authentik restart: unless-stopped ports: - "127.0.0.1:9000:9000" - "127.0.0.1:9443:9443" volumes: - authentik_media:/media - authentik_custom:/custom-templates environment: - AUTHENTIK_SECRET_KEY=change-me-to-random-secret - AUTHENTIK_REDIS__HOST=authentik-redis - AUTHENTIK_POSTGRESQL__HOST=authentik-db - AUTHENTIK_POSTGRESQL__USER=authentik - AUTHENTIK_POSTGRESQL__NAME=authentik - AUTHENTIK_POSTGRESQL__PASSWORD=authentik depends_on: - authentik-db - authentik-redis networks: - authentik-network authentik-db: image: postgres:15 container_name: authentik-db restart: unless-stopped volumes: - authentik_db:/var/lib/postgresql/data environment: - POSTGRES_USER=authentik - POSTGRES_PASSWORD=authentik - POSTGRES_DB=authentik networks: - authentik-network authentik-redis: image: redis:alpine container_name: authentik-redis restart: unless-stopped volumes: - authentik_redis:/data networks: - authentik-network volumes: authentik_media: authentik_custom: authentik_db: authentik_redis: networks: authentik-network: driver: bridge