* root: make global email settings configurable * stages/email: add use_global_settings * stages/email: add test_email command to test email sending * stages/email: update email template * stages/email: simplify email template path * stages/email: add support for user-supplied email templates * stages/email: add tests for sending and templates * stages/email: only add custom template if permissions are correct * docs: add custom email template docs * root: add /templates volume in docker-compose by default * stages/email: fix form not allowing custom templates * stages/email: use relative path for custom templates * stages/email: check if all templates exist on startup, reset * docs: add global email docs for docker-compose * helm: add email config to helm chart * helm: load all secrets with env prefix * helm: move s3 and smtp secret to secret * stages/email: fix test for relative name * stages/email: add argument to send email from existing stage * stages/email: set uid using slug of message id * stages/email: ensure template validation ignores migration runs * docs: add email troubleshooting docs * stages/email: fix long task_name breaking task list
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
---
 | 
						|
version: '3.2'
 | 
						|
 | 
						|
services:
 | 
						|
  postgresql:
 | 
						|
    image: postgres:12
 | 
						|
    volumes:
 | 
						|
      - database:/var/lib/postgresql/data
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    environment:
 | 
						|
      - POSTGRES_PASSWORD=${PG_PASS:-thisisnotagoodpassword}
 | 
						|
      - POSTGRES_USER=${PG_USER:-authentik}
 | 
						|
      - POSTGRES_DB=${PG_DB:-authentik}
 | 
						|
    env_file:
 | 
						|
      - .env
 | 
						|
  redis:
 | 
						|
    image: redis
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
  server:
 | 
						|
    image: beryju/authentik:${AUTHENTIK_TAG:-0.14.2-stable}
 | 
						|
    command: server
 | 
						|
    environment:
 | 
						|
      AUTHENTIK_REDIS__HOST: redis
 | 
						|
      AUTHENTIK_POSTGRESQL__HOST: postgresql
 | 
						|
      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
 | 
						|
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
 | 
						|
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
 | 
						|
    volumes:
 | 
						|
      - ./media:/media
 | 
						|
      - ./custom-templates:/templates
 | 
						|
    ports:
 | 
						|
      - 8000
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    labels:
 | 
						|
      traefik.enable: 'true'
 | 
						|
      traefik.docker.network: internal
 | 
						|
      traefik.http.routers.app-router.rule: PathPrefix(`/`)
 | 
						|
      traefik.http.routers.app-router.service: app-service
 | 
						|
      traefik.http.routers.app-router.tls: 'true'
 | 
						|
      traefik.http.services.app-service.loadbalancer.healthcheck.hostname: authentik-healthcheck-host
 | 
						|
      traefik.http.services.app-service.loadbalancer.server.port: '8000'
 | 
						|
    env_file:
 | 
						|
      - .env
 | 
						|
  worker:
 | 
						|
    image: beryju/authentik:${AUTHENTIK_TAG:-0.14.2-stable}
 | 
						|
    command: worker
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    environment:
 | 
						|
      AUTHENTIK_REDIS__HOST: redis
 | 
						|
      AUTHENTIK_POSTGRESQL__HOST: postgresql
 | 
						|
      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
 | 
						|
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
 | 
						|
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
 | 
						|
    volumes:
 | 
						|
      - ./backups:/backups
 | 
						|
      - /var/run/docker.sock:/var/run/docker.sock
 | 
						|
      - ./custom-templates:/templates
 | 
						|
    env_file:
 | 
						|
      - .env
 | 
						|
  static:
 | 
						|
    image: beryju/authentik-static:${AUTHENTIK_TAG:-0.14.2-stable}
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    labels:
 | 
						|
      traefik.enable: 'true'
 | 
						|
      traefik.docker.network: internal
 | 
						|
      traefik.http.routers.static-router.rule: PathPrefix(`/static`, `/media`, `/robots.txt`, `/favicon.ico`)
 | 
						|
      traefik.http.routers.static-router.tls: 'true'
 | 
						|
      traefik.http.routers.static-router.service: static-service
 | 
						|
      traefik.http.services.static-service.loadbalancer.healthcheck.path: /
 | 
						|
      traefik.http.services.static-service.loadbalancer.server.port: '80'
 | 
						|
    volumes:
 | 
						|
      - ./media:/usr/share/nginx/html/media
 | 
						|
  traefik:
 | 
						|
    image: traefik:2.3
 | 
						|
    command:
 | 
						|
      - "--log.format=json"
 | 
						|
      - "--api.insecure=true"
 | 
						|
      - "--providers.docker=true"
 | 
						|
      - "--providers.docker.exposedbydefault=false"
 | 
						|
      - "--entrypoints.http.address=:80"
 | 
						|
      - "--entrypoints.https.address=:443"
 | 
						|
    volumes:
 | 
						|
      - /var/run/docker.sock:/var/run/docker.sock:ro
 | 
						|
    ports:
 | 
						|
      - "0.0.0.0:443:443"
 | 
						|
      - "127.0.0.1:8080:8080"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
 | 
						|
volumes:
 | 
						|
  database:
 | 
						|
    driver: local
 | 
						|
 | 
						|
networks:
 | 
						|
  internal: {}
 |