diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..39c0887 --- /dev/null +++ b/.env.example @@ -0,0 +1,31 @@ +# Application +APP_BASE_URL=https://evening-detective.crabs-games.art +FILE_PREFIX_DOMAIN=https://evening-detective-api.crabs-games.art/api/files/ +JWT_SECRET=change-me +PARTICIPATION_SECRET=change-me +YANDEX_FORMS_TOKEN= +GAME_TIMEZONE=Asia/Barnaul + +# PostgreSQL +POSTGRES_DB=evening_detective_server +POSTGRES_USER=postgres +POSTGRES_PASSWORD=change-me +MIGRATIONS_DATABASE_URL=postgresql://postgres:change-me@127.0.0.1:5432/evening_detective_server?sslmode=disable +TZ=Asia/Barnaul +PGTZ=Asia/Barnaul + +# RustFS / S3 +S3_USER=rustfs +S3_PASSWORD=change-me +S3_BUCKET=evening-detective + +# SMTP +SMTP_HOST=mail.crabs-games.art +SMTP_PORT=465 +SMTP_USER=evening_detective@crabs-games.art +SMTP_PASSWORD=change-me +SMTP_REPLY_TO= +SMTP_TIMEOUT=10s + +# Existing server directory containing mail.crabs-games.art TLS certificates. +REPROXY_SSL_DIR=/srv/reproxy/var/ssl diff --git a/docker-compose.yml b/docker-compose.yml index 6b584a9..738b518 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -105,6 +105,40 @@ services: retries: 3 start_period: 30s + mailserver: + image: mailserver/docker-mailserver:15.1.0 + container_name: mailserver + hostname: mail.crabs-games.art + ports: + - "25:25" + - "465:465" + - "587:587" + - "993:993" + environment: + SSL_TYPE: manual + SSL_DOMAIN: mail.crabs-games.art + SSL_CERT_PATH: /etc/letsencrypt/mail.crabs-games.art.crt + SSL_KEY_PATH: /etc/letsencrypt/mail.crabs-games.art.key + PERMIT_DOCKER: host + POSTMASTER_ADDRESS: admin@crabs-games.art + ENABLE_SPAMASSASSIN: "1" + ENABLE_CLAMAV: "1" + ENABLE_FAIL2BAN: "1" + POSTFIX_INET_PROTOCOLS: ipv4 + cap_add: + - NET_ADMIN + volumes: + - mail_data:/var/mail + - mail_state:/var/mail-state + - mail_logs:/var/log/mail + - ${REPROXY_SSL_DIR}/certificates/acme-v02.api.letsencrypt.org-directory/mail.crabs-games.art:/etc/letsencrypt:ro + restart: always + networks: + - crabs-network + volumes: postgres_data: rustfs_data: + mail_data: + mail_state: + mail_logs: