162 lines
4.9 KiB
YAML
162 lines
4.9 KiB
YAML
x-authelia-env: &authelia-env
|
|
X_AUTHELIA_EMAIL: authelia@nixc.us
|
|
X_AUTHELIA_SITE_NAME: ATLAS
|
|
X_AUTHELIA_CONFIG_FILTERS: template
|
|
X_AUTHELIA_LDAP_DOMAIN: dc=nixc,dc=us
|
|
TRAEFIK_DOMAIN: nixc.us
|
|
|
|
secrets:
|
|
AUTHENTICATION_BACKEND_LDAP_PASSWORD:
|
|
external: true
|
|
CLIENT_SECRET_HEADSCALE:
|
|
external: true
|
|
CLIENT_SECRET_HEADADMIN:
|
|
external: true
|
|
IDENTITY_PROVIDERS_OIDC_HMAC_SECRET:
|
|
external: true
|
|
IDENTITY_PROVIDERS_OIDC_ISSUER_PRIVATE_KEY:
|
|
external: true
|
|
IDENTITY_PROVIDERS_OIDC_JWKS_KEY:
|
|
external: true
|
|
IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET:
|
|
external: true
|
|
NOTIFIER_SMTP_PASSWORD:
|
|
external: true
|
|
SESSION_SECRET:
|
|
external: true
|
|
STORAGE_ENCRYPTION_KEY:
|
|
external: true
|
|
|
|
networks:
|
|
default:
|
|
driver: overlay
|
|
traefik:
|
|
external: true
|
|
ad:
|
|
external: true
|
|
|
|
services:
|
|
authelia:
|
|
image: git.nixc.us/nixius/authelia:production-authelia
|
|
command:
|
|
- authelia
|
|
- --config=/config/configuration.server.yml
|
|
- --config=/config/configuration.ldap.yml
|
|
- --config=/config/configuration.acl.yml
|
|
- --config=/config/configuration.identity.providers.yml
|
|
- --config=/config/configuration.oidc.clients.yml
|
|
secrets:
|
|
- AUTHENTICATION_BACKEND_LDAP_PASSWORD
|
|
- CLIENT_SECRET_HEADSCALE
|
|
- CLIENT_SECRET_HEADADMIN
|
|
- IDENTITY_PROVIDERS_OIDC_HMAC_SECRET
|
|
- IDENTITY_PROVIDERS_OIDC_ISSUER_PRIVATE_KEY
|
|
- IDENTITY_PROVIDERS_OIDC_JWKS_KEY
|
|
- IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET
|
|
- NOTIFIER_SMTP_PASSWORD
|
|
- SESSION_SECRET
|
|
- STORAGE_ENCRYPTION_KEY
|
|
environment: *authelia-env
|
|
dns:
|
|
- 1.1.1.1 # Cloudflare
|
|
- 9.9.9.9 # Quad9
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/authelia/production/config:/config:rw
|
|
networks:
|
|
- traefik
|
|
- default
|
|
- ad
|
|
deploy:
|
|
update_config:
|
|
order: start-first
|
|
failure_action: rollback
|
|
parallelism: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == ingress.nixc.us
|
|
labels:
|
|
us.nixc.autodeploy: "true"
|
|
homepage.group: Infrastructure
|
|
homepage.name: Authelia
|
|
homepage.href: https://login.nixc.us
|
|
homepage.description: ATLAS
|
|
traefik.enable: "true"
|
|
traefik.docker.network: traefik
|
|
traefik.http.routers.authelia_authelia.rule: Host(`login.nixc.us`)
|
|
traefik.http.routers.authelia_authelia.entrypoints: websecure
|
|
traefik.http.routers.authelia_authelia.tls: "true"
|
|
traefik.http.routers.authelia_authelia.tls.certresolver: letsencryptresolver
|
|
traefik.http.routers.authelia_authelia.service: authelia_authelia
|
|
traefik.http.services.authelia_authelia.loadbalancer.server.port: 9091
|
|
traefik.http.middlewares.authelia_authelia.forwardauth.address: http://authelia_authelia:9091/api/verify?rd=https://login.nixc.us/
|
|
traefik.http.middlewares.authelia_authelia.forwardauth.trustForwardHeader: "true"
|
|
traefik.http.middlewares.authelia_authelia.forwardauth.authResponseHeaders: Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
|
traefik.http.middlewares.authelia-basic.forwardauth.address: http://authelia_authelia:9091/api/verify?auth=basic
|
|
traefik.http.middlewares.authelia-basic.forwardauth.trustForwardHeader: "true"
|
|
traefik.http.middlewares.authelia-basic.forwardauth.authResponseHeaders: Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 10m
|
|
max-file: "3"
|
|
|
|
redis:
|
|
image: git.nixc.us/nixius/authelia:production-redis
|
|
command: redis-server --appendonly yes
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/authelia/production/redis:/data:rw
|
|
networks:
|
|
- default
|
|
deploy:
|
|
update_config:
|
|
order: start-first
|
|
failure_action: rollback
|
|
parallelism: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == ingress.nixc.us
|
|
labels:
|
|
us.nixc.autodeploy: "true"
|
|
traefik.enable: "false"
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 10m
|
|
max-file: "3"
|
|
|
|
mariadb:
|
|
image: git.nixc.us/nixius/authelia:production-mariadb
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: authelia
|
|
MYSQL_DATABASE: authelia
|
|
MYSQL_USER: authelia
|
|
MYSQL_PASSWORD: authelia
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/authelia/production/db:/var/lib/mysql:rw
|
|
networks:
|
|
- default
|
|
deploy:
|
|
update_config:
|
|
order: start-first
|
|
failure_action: rollback
|
|
parallelism: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == ingress.nixc.us
|
|
labels:
|
|
us.nixc.autodeploy: "true"
|
|
traefik.enable: "false"
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 10m
|
|
max-file: "3" |