docker/email_api/docker-compose.yml

48 lines
1.3 KiB
YAML

version: '3.8'
services:
email-api:
container_name: email-api
image: node:22-slim
restart: unless-stopped
network_mode: host
volumes:
- ./email_api:/app
- /var/mail:/var/mail # Maildir access for health check
working_dir: /app
env_file:
- .env
environment:
- API_TOKEN=${API_TOKEN}
- AWS_REGION=${AWS_REGION}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- SMTP_HOST=${SMTP_HOST:-localhost}
- SMTP_PORT=${SMTP_PORT:-25}
- MAILCOW_API_KEY=${MAILCOW_API_KEY}
- MAILCOW_API=${MAILCOW_API}
- PGHOST=postgres
- PGUSER=${PGUSER:-email_user}
- PGPASSWORD=${PGPASSWORD:-email_password}
- PGDATABASE=${PGDATABASE:-email_db}
- PGPORT=${PGPORT:-5432}
command: >
bash -c "npm install && node app.js"
depends_on:
- postgres
postgres:
container_name: email-api-postgres
image: postgres:16
restart: unless-stopped
network_mode: host
environment:
- POSTGRES_USER=${PGUSER:-email_user}
- POSTGRES_PASSWORD=${PGPASSWORD:-email_password}
- POSTGRES_DB=${PGDATABASE:-email_db}
volumes:
- email_postgres_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
volumes:
email_postgres_data: