authentik

authentik is an open-source Identity Provider that emphasizes flexibility and versatility, with support for a wide set of protocols.

# file: `docker-compose.yml`

services:
  authentik:
    image: ${HONEYPI_IMAGE_REGISTRY_HOST:-docker.io}/ghcr.io/goauthentik/server:${HONEYPI_AUTHENTIK_VERSION:-latest}
    restart: unless-stopped
    container_name: authentik
    command: server
    ports:
      - ${HONEYPI_AUTHENTIK_PORT:-9000}:9000
    volumes:
      - ${HONEYPI_DATA}/authentik/media:/media
      - ${HONEYPI_DATA}/authentik/templates:/templates
    environment:
      - AUTHENTIK_REDIS__HOST=${HONEYPI_REDIS_HOST:-localhost}
      - AUTHENTIK_POSTGRESQL__HOST=${HONEYPI_POSTGRES_HOST:-localhost}
      - AUTHENTIK_POSTGRESQL__USER=${HONEYPI_POSTGRES_USER:-admin}
      - AUTHENTIK_POSTGRESQL__NAME=${HONEYPI_AUTHENTIK_DB_NAME:-authentik}
      - AUTHENTIK_POSTGRESQL__PASSWORD=${HONEYPI_POSTGRES_PASSWORD}
      - AUTHENTIK_SECRET_KEY=${HONEYPI_AUTHENTIK_SECRET_KEY}
      - AUTHENTIK_EMAIL__HOST=${HONEYPI_EMAIL_HOST}
      - AUTHENTIK_EMAIL__PORT=${HONEYPI_EMAIL_PORT}
      - AUTHENTIK_EMAIL__USERNAME=${HONEYPI_EMAIL_USERNAME}
      - AUTHENTIK_EMAIL__PASSWORD=${HONEYPI_EMAIL_PASSWORD}
      - AUTHENTIK_EMAIL__FROM=${HONEYPI_EMAIL_FROM}
      - AUTHENTIK_HOST=https://${HONEYPI_AUTHENTIK_HOST}
      - AUTHENTIK_INSECURE=false
    labels:
      - traefik.enable=${HONEYPI_AUTHENTIK_TRAEFIK_ENABLE:-false}
      - traefik.http.routers.authentik.rule=Host(`${HONEYPI_AUTHENTIK_HOST}`)
      - traefik.http.routers.authentik.entrypoints=websecure
      - traefik.http.routers.authentik.tls.certresolver=resolver
      - traefik.http.routers.authentik.service=authentik
      - traefik.http.services.authentik.loadbalancer.server.port=9000
  authentik-worker:
    image: ${HONEYPI_IMAGE_REGISTRY_HOST:-docker.io}/ghcr.io/goauthentik/server:${HONEYPI_AUTHENTIK_VERSION:-latest}
    restart: unless-stopped
    container_name: authentik-worker
    command: worker
    volumes:
      - ${HONEYPI_DATA}/authentik/media:/media
      - ${HONEYPI_DATA}/authentik/certs:/certs
      - ${HONEYPI_DATA}/authentik/templates:/templates
    environment:
      - AUTHENTIK_REDIS__HOST=${HONEYPI_REDIS_HOST:-localhost}
      - AUTHENTIK_POSTGRESQL__HOST=${HONEYPI_POSTGRES_HOST:-localhost}
      - AUTHENTIK_POSTGRESQL__USER=${HONEYPI_POSTGRES_USER:-admin}
      - AUTHENTIK_POSTGRESQL__NAME=${HONEYPI_AUTHENTIK_DB_NAME:-authentik}
      - AUTHENTIK_POSTGRESQL__PASSWORD=${HONEYPI_POSTGRES_PASSWORD}
      - AUTHENTIK_SECRET_KEY=${HONEYPI_AUTHENTIK_SECRET_KEY}
      - AUTHENTIK_EMAIL__HOST=${HONEYPI_EMAIL_HOST}
      - AUTHENTIK_EMAIL__PORT=${HONEYPI_EMAIL_PORT}
      - AUTHENTIK_EMAIL__USERNAME=${HONEYPI_EMAIL_USERNAME}
      - AUTHENTIK_EMAIL__PASSWORD=${HONEYPI_EMAIL_PASSWORD}
      - AUTHENTIK_EMAIL__FROM=${HONEYPI_EMAIL_FROM}
      - AUTHENTIK_HOST=https://${HONEYPI_AUTHENTIK_HOST}
      - AUTHENTIK_INSECURE=false
    depends_on:
      - authentik