diff --git a/gateway/caddy/Caddyfile b/gateway/caddy/Caddyfile index 78176bc..255d7d3 100644 --- a/gateway/caddy/Caddyfile +++ b/gateway/caddy/Caddyfile @@ -45,6 +45,12 @@ www.64815139.xyz { redir https://www.{host}{uri} } +alias.64815139.xyz { + route { + reverse_proxy 192.168.0.216:5544 + } +} + gitea.64815139.xyz { route { rewrite /user/login /user/oauth2/Authelia diff --git a/gateway/cloudflare-ddns/config.json b/gateway/cloudflare-ddns/config.json index faf68d9..1d0e29b 100644 --- a/gateway/cloudflare-ddns/config.json +++ b/gateway/cloudflare-ddns/config.json @@ -14,6 +14,10 @@ "name": "www", "proxied": false }, + { + "name": "alias", + "proxied": false + }, { "name": "auth", "proxied": false diff --git a/simplelogin/docker-compose.yml b/simplelogin/docker-compose.yml new file mode 100644 index 0000000..331edb4 --- /dev/null +++ b/simplelogin/docker-compose.yml @@ -0,0 +1,149 @@ +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 + ports: + - "127.0.0.1:5432:5432" + 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 + ports: + - "127.0.0.1:20381:20381" + 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