Files
homelab/simplelogin/docker-compose.yml
T

146 lines
3.5 KiB
YAML

name: simplelogin
secrets:
POSTGRES_PASSWORD:
file: './secrets/POSTGRES_PASSWORD'
RELAY_PASSWORD:
file: './secrets/RELAY_PASSWORD'
services:
postgres:
image: postgres
container_name: simplelogin_postgres
restart: always
secrets:
- POSTGRES_PASSWORD
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD_FILE: /run/secrets/POSTGRES_PASSWORD
POSTGRES_DB: simplelogin
volumes:
- ./data/postgres:/var/lib/postgresql/data
networks:
- default
postfix:
image: simplelogin/postfix:latest
container_name: simplelogin_postfix
restart: always
ports:
- "25:25"
- "587:587"
secrets:
- POSTGRES_PASSWORD
- RELAY_PASSWORD
env_file:
- ./secrets/postfix/.env
environment:
DB_HOST: postgres
DB_USER: postgres
DB_PASSWORD_FILE: /run/secrets/POSTGRES_PASSWORD
DB_NAME: simplelogin
ALIASES_DEFAULT_DOMAIN: mydomain.xyz
POSTFIX_FQDN: alias.mydomain.xyz
EMAIL_HANDLER_HOST: simplelogin-handler
RELAY_HOST: in-v3.mailjet.com
RELAY_PORT: 587
RELAY_HOST_PASSWORD_FILE: /run/secrets/RELAY_PASSWORD
SIMPLELOGIN_COMPATIBILITY_MODE: v4
ENABLE_PROXY_PROTOCOL: "false"
entrypoint: |
/bin/sh -c '
MYNETWORKS=$(ip -o -f inet addr show eth0 | awk "/scope global/ {print \$4}") &&
export MYNETWORKS &&
exec /docker-entrypoint.sh
'
networks:
- default
depends_on:
- postgres
app:
image: simplelogin/app:latest
container_name: simplelogin_app
volumes:
- ./data/sl:/sl
- ./data/sl/upload:/code/static/upload
- ./data/dkim/dkim.key:/dkim.key
- ./data/dkim/dkim.pub.key:/dkim.pub.key
- ./data/env/simplelogin.env:/code/.env
networks:
- default
restart: always
ports:
- "7777:7777"
depends_on:
- postgres
- migration
- init_data
email_handler:
image: simplelogin/app:latest
container_name: simplelogin_email
command: python email_handler.py
volumes:
- ./data/sl:/sl
- ./data/sl/upload:/code/static/upload
- ./data/dkim/dkim.key:/dkim.key
- ./data/dkim/dkim.pub.key:/dkim.pub.key
- ./data/env/simplelogin.env:/code/.env
networks:
- default
restart: always
depends_on:
- app
job_runner:
image: simplelogin/app:latest
container_name: simplelogin_job-runner
command: python job_runner.py
volumes:
- ./data/sl:/sl
- ./data/sl/upload:/code/static/upload
- ./data/dkim/dkim.key:/dkim.key
- ./data/dkim/dkim.pub.key:/dkim.pub.key
- ./data/env/simplelogin.env:/code/.env
networks:
- default
restart: always
depends_on:
- app
migration:
image: simplelogin/app:latest
container_name: simplelogin_migration
command: flask db upgrade
volumes:
- ./data/sl:/sl
- ./data/sl/upload:/code/static/upload
- ./data/dkim/dkim.key:/dkim.key
- ./data/dkim/dkim.pub.key:/dkim.pub.key
- ./data/env/simplelogin.env:/code/.env
networks:
- default
restart: "no"
depends_on:
- postgres
init_data:
image: simplelogin/app:latest
container_name: simplelogin_init
command: python init_app.py
volumes:
- ./data/sl:/sl
- ./data/dkim/dkim.key:/dkim.key
- ./data/dkim/dkim.pub.key:/dkim.pub.key
- ./data/env/simplelogin.env:/code/.env
networks:
- default
restart: "no"
depends_on:
- migration
networks:
default:
driver: bridge