services: postfix: image: boky/postfix restart: unless-stopped container_name: cmc-prod-postfix env_file: - .env.prod # Production: relay to Gmail SMTP environment: - ALLOWED_SENDER_DOMAINS=cmctechnologies.com.au # Gmail SMTP relay settings - RELAYHOST=smtp-relay.gmail.com - RELAYHOST_PORT=587 # SMTP_USERNAME and SMTP_PASSWORD are loaded from .env.prod via env_file - SMTP_TLS_SECURITY_LEVEL=encrypt - SMTP_USE_TLS=yes - SMTP_USE_STARTTLS=yes # --- Mailpit relay (for testing only) --- # - RELAYHOST=mailpit:1025 networks: - cmc-prod-network nginx: image: nginx:latest container_name: cmc-prod-nginx hostname: nginx-prod ports: - "8080:80" # Production nginx on port 8080 to avoid conflict volumes: - ./conf/nginx-site.prod.conf:/etc/nginx/conf.d/cmc.conf - ./userpasswd:/etc/nginx/userpasswd:ro depends_on: - cmc-prod-php restart: unless-stopped networks: - cmc-prod-network cmc-prod-php: build: context: . dockerfile: Dockerfile.prod.php container_name: cmc-prod-php environment: MAIL_HOST: postfix MAIL_PORT: 25 DB_HOST: cmc-prod-db DB_PORT: 3306 DB_USER: cmc DB_PASSWORD: xVRQI&cA?7AU=hqJ!%au DB_NAME: cmc GO_APP_HOST: cmc-prod-go:8082 volumes: - /home/cmc/files/pdf:/var/www/cmc-sales/app/webroot/pdf - /home/cmc/files/attachments_files:/var/www/cmc-sales/app/webroot/attachments_files - /home/cmc/files/emails:/var/www/emails - /home/cmc/files/vault:/var/www/vault - /home/cmc/files/vaultmsgs:/var/www/vaultmsgs - ./userpasswd:/etc/nginx/userpasswd:ro networks: - cmc-prod-network restart: unless-stopped depends_on: - cmc-prod-db cmc-prod-go: build: context: . dockerfile: Dockerfile.prod.go container_name: cmc-prod-go environment: DB_HOST: cmc-prod-db DB_PORT: 3306 DB_USER: cmc DB_PASSWORD: xVRQI&cA?7AU=hqJ!%au DB_NAME: cmc PORT: 8082 SMTP_HOST: postfix SMTP_PORT: 25 SMTP_USER: "" SMTP_PASS: "" SMTP_FROM: "sales@cmctechnologies.com.au" ports: - "8083:8082" volumes: - /home/cmc/files/pdf:/root/webroot/pdf:ro - /home/cmc/files/attachments_files:/root/webroot/attachments_files - /home/cmc/files/emails:/var/www/emails - /home/cmc/files/vault:/var/www/vault - /home/cmc/files/vaultmsgs:/var/www/vaultmsgs networks: - cmc-prod-network restart: unless-stopped depends_on: - cmc-prod-db cmc-prod-db: build: context: . dockerfile: Dockerfile.prod.db container_name: cmc-prod-db environment: MYSQL_ROOT_PASSWORD: secureRootPassword MYSQL_DATABASE: cmc MYSQL_USER: cmc MYSQL_PASSWORD: xVRQI&cA?7AU=hqJ!%au volumes: - db_data:/var/lib/mysql ports: - "3307:3306" networks: - cmc-prod-network networks: cmc-stg-network: cmc-prod-network: volumes: db_data: