161 lines
4.0 KiB
YAML
161 lines
4.0 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:
|
|
- postgres_data:/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: 64815139.xyz
|
|
POSTFIX_FQDN: alias.64815139.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 /src/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:ro
|
|
- ./data/dkim/dkim.pub.key:/dkim.pub.key:ro
|
|
- ./data/env/simplelogin.env:/code/.env
|
|
environment:
|
|
- DKIM_PUBLIC_KEY_PATH=/dkim.pub.key
|
|
env_file:
|
|
- ./secrets/app/.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
|
|
environment:
|
|
- DKIM_PUBLIC_KEY_PATH=/dkim.pub.key
|
|
env_file:
|
|
- ./secrets/app/.env
|
|
volumes:
|
|
- ./data/sl:/sl
|
|
- ./data/sl/upload:/code/static/upload
|
|
- ./data/dkim/dkim.key:/dkim.key:ro
|
|
- ./data/dkim/dkim.pub.key:/dkim.pub.key:ro
|
|
- ./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
|
|
environment:
|
|
- DKIM_PUBLIC_KEY_PATH=/dkim.pub.key
|
|
env_file:
|
|
- ./secrets/app/.env
|
|
volumes:
|
|
- ./data/sl:/sl
|
|
- ./data/sl/upload:/code/static/upload
|
|
- ./data/dkim/dkim.key:/dkim.key:ro
|
|
- ./data/dkim/dkim.pub.key:/dkim.pub.key:ro
|
|
- ./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
|
|
environment:
|
|
- DKIM_PUBLIC_KEY_PATH=/dkim.pub.key
|
|
volumes:
|
|
- ./data/sl:/sl
|
|
- ./data/sl/upload:/code/static/upload
|
|
- ./data/dkim/dkim.key:/dkim.key:ro
|
|
- ./data/dkim/dkim.pub.key:/dkim.pub.key:ro
|
|
- ./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
|
|
environment:
|
|
- DKIM_PUBLIC_KEY_PATH=/dkim.pub.key
|
|
volumes:
|
|
- ./data/sl:/sl
|
|
- ./data/dkim/dkim.key:/dkim.key:ro
|
|
- ./data/dkim/dkim.pub.key:/dkim.pub.key:ro
|
|
- ./data/env/simplelogin.env:/code/.env
|
|
networks:
|
|
- default
|
|
restart: "no"
|
|
depends_on:
|
|
- migration
|
|
|
|
networks:
|
|
default:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|