mirror of
https://github.com/dominikhoebert/docker-projects.git
synced 2025-06-27 16:57:05 +00:00
133 lines
4.6 KiB
YAML
133 lines
4.6 KiB
YAML
# https://goauthentik.io/
|
|
|
|
# secure and flexible solution for managing your identity needs. It covers both B2B and B2C use cases, supports various protocols and workflows, and lets you own your data and control your infrastructure.
|
|
# To start the initial setup, navigate to http://<your server's IP or hostname>:9000/if/flow/initial-setup/.
|
|
|
|
name: authentik
|
|
|
|
services:
|
|
postgres:
|
|
image: docker.io/library/postgres:16.3
|
|
container_name: authentik-db
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER:-authentik}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-authentik}
|
|
- POSTGRES_DB=${POSTGRES_DB:-authentik}
|
|
- TZ=${TZ:-UTC}
|
|
healthcheck:
|
|
test:
|
|
[
|
|
'CMD-SHELL',
|
|
'pg_isready -U "${POSTGRES_USER:-authentik}"'
|
|
]
|
|
start_period: 30s
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- proxy
|
|
redis:
|
|
image: docker.io/library/redis:7.2.5
|
|
container_name: authentik-redis
|
|
command: --save 60 1 --loglevel warning
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "redis-cli ping | grep PONG" ]
|
|
start_period: 20s
|
|
interval: 30s
|
|
retries: 5
|
|
timeout: 3s
|
|
volumes:
|
|
- redis_data:/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- proxy
|
|
server:
|
|
image: ghcr.io/goauthentik/server:2024.6.1
|
|
container_name: authentik-server
|
|
command: server
|
|
environment:
|
|
- AUTHENTIK_REDIS__HOST=authentik-redis
|
|
- AUTHENTIK_POSTGRESQL__HOST=authentik-db
|
|
- AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER:-authentik}
|
|
- AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB:-authentik}
|
|
- AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD:-authentik}
|
|
# (Required) To generate a secret key run the following command:
|
|
# echo $(openssl rand -base64 32)
|
|
- AUTHENTIK_SECRET_KEY=MbcOqluK2LVkGtM9zI111PQSaGnqZvYEFnwf8EL8raA=
|
|
# (Optional) Enable Error Reporting
|
|
# - AUTHENTIK_ERROR_REPORTING__ENABLED=${AUTHENTIK_ERROR_REPORTING:-false}
|
|
# (Optional) Enable Email Sending
|
|
# - AUTHENTIK_EMAIL__HOST=${EMAIL_HOST:?error}
|
|
# - AUTHENTIK_EMAIL__PORT=${EMAIL_PORT:-25}
|
|
# - AUTHENTIK_EMAIL__USERNAME=${EMAIL_USERNAME:?error}
|
|
# - AUTHENTIK_EMAIL__PASSWORD=${EMAIL_PASSWORD:?error}
|
|
# - AUTHENTIK_EMAIL__USE_TLS=${EMAIL_USE_TLS:-false}
|
|
# - AUTHENTIK_EMAIL__USE_SSL=${EMAIL_USE_SSL:-false}
|
|
# - AUTHENTIK_EMAIL__TIMEOUT=${EMAIL_TIMEOUT:-10}
|
|
# - AUTHENTIK_EMAIL__FROM=${EMAIL_FROM:?error}
|
|
ports:
|
|
- 9001:9000
|
|
- 9443:9443
|
|
volumes:
|
|
- ./media:/media
|
|
- ./custom-templates:/templates
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
restart: unless-stopped
|
|
networks:
|
|
- proxy
|
|
worker:
|
|
image: ghcr.io/goauthentik/server:2024.6.1
|
|
container_name: authentik-worker
|
|
command: worker
|
|
environment:
|
|
- AUTHENTIK_REDIS__HOST=authentik-redis
|
|
- AUTHENTIK_POSTGRESQL__HOST=authentik-db
|
|
- AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER:-authentik}
|
|
- AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB:-authentik}
|
|
- AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD:-authentik}
|
|
# (Required) To generate a secret key run the following command:
|
|
# echo $(openssl rand -base64 32)
|
|
- AUTHENTIK_SECRET_KEY=MbcOqluK2LVkGtM9zI111PQSaGnqZvYEFnwf8EL8raA=
|
|
# (Optional) Enable Error Reporting
|
|
# - AUTHENTIK_ERROR_REPORTING__ENABLED=${AUTHENTIK_ERROR_REPORTING:-false}
|
|
# (Optional) Enable Email Sending
|
|
# - AUTHENTIK_EMAIL__HOST=${EMAIL_HOST:?error}
|
|
# - AUTHENTIK_EMAIL__PORT=${EMAIL_PORT:-25}
|
|
# - AUTHENTIK_EMAIL__USERNAME=${EMAIL_USERNAME:?error}
|
|
# - AUTHENTIK_EMAIL__PASSWORD=${EMAIL_PASSWORD:?error}
|
|
# - AUTHENTIK_EMAIL__USE_TLS=${EMAIL_USE_TLS:-false}
|
|
# - AUTHENTIK_EMAIL__USE_SSL=${EMAIL_USE_SSL:-false}
|
|
# - AUTHENTIK_EMAIL__TIMEOUT=${EMAIL_TIMEOUT:-10}
|
|
# - AUTHENTIK_EMAIL__FROM=${EMAIL_FROM:?error}
|
|
# (Optional) When using the docker socket integration
|
|
# See more for the docker socket integration here:
|
|
# https://goauthentik.io/docs/outposts/integrations/docker
|
|
# user: root
|
|
volumes:
|
|
# (Optional) When using the docker socket integration
|
|
# - /run/docker.sock:/run/docker.sock
|
|
- ./media:/media
|
|
- ./certs:/certs
|
|
- ./custom-templates:/templates
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
restart: unless-stopped
|
|
networks:
|
|
- proxy
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|
|
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|