services: mailadmin-db: image: postgres:16 container_name: mailadmin-db environment: POSTGRES_DB: mailadmin POSTGRES_USER: mailadmin POSTGRES_PASSWORD: ${MAILADMIN_DB_PASSWORD} volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U mailadmin -d mailadmin"] interval: 5s timeout: 5s retries: 20 start_period: 10s restart: unless-stopped networks: - mailadmin_network mailadmin: build: context: . dockerfile: backend/Dockerfile container_name: mailadmin restart: unless-stopped depends_on: mailadmin-db: condition: service_healthy environment: NODE_ENV: production PORT: 3000 PUBLIC_DIR: /app/frontend DATABASE_URL: postgres://mailadmin:${MAILADMIN_DB_PASSWORD:-change-me}@mailadmin-db:5432/mailadmin JWT_SECRET: ${MAILADMIN_JWT_SECRET:-change-this-long-random-secret} COOKIE_SECURE: "true" ADMIN_EMAIL: ${MAILADMIN_ADMIN_EMAIL:-admin@example.com} ADMIN_PASSWORD: ${MAILADMIN_ADMIN_PASSWORD:-ChangeMe123!} NODE_NAME: ${NODE_NAME:-node1} NODE_HOSTNAME: ${NODE_HOSTNAME:-node1.email-srvr.com} DMS_CONTAINER: ${DMS_CONTAINER:-mailserver} MANAGE_MAIL_USER_SCRIPT: /host/email-amazon/basic_setup/manage_mail_user.sh MAILDATA_PATH: /mail-data AWS_REGION: ${AWS_REGION:-us-east-2} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-} DYNAMODB_RULES_TABLE: ${DYNAMODB_RULES_TABLE:-email-rules} DYNAMODB_BLOCKED_TABLE: ${DYNAMODB_BLOCKED_TABLE:-email-blocked-senders} volumes: # Needed so backend can call docker exec mailserver. - /var/run/docker.sock:/var/run/docker.sock # Adjust this path to your repository root on the host. - /home/aknuth/git/email-amazon:/host/email-amazon:ro # Adjust this path to your DMS mail-data directory. - /home/aknuth/git/email-amazon/DMS/docker-data/dms/mail-data:/mail-data:ro networks: - mailadmin_network networks: mailadmin_network: external: true