# Deployment compose file — pulls the images published by build-and-push.sh # from Docker Hub instead of building from source. # # Nothing here needs the source tree, so this file (plus a .env) can be copied # to a server on its own: # # docker compose pull && docker compose up -d # # Values come from the .env sitting next to this file, which compose loads # automatically — the same .env build-and-push.sh uses. Copy .env.example to # .env and fill it in. Secrets are deliberately not hard-coded here. services: backend: image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-backend:${TAG:-latest} container_name: fennec-backend restart: unless-stopped extra_hosts: - "host.docker.internal:host-gateway" environment: SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-custom} SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:-jdbc:mysql://host.docker.internal:3306/fennecpro?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC} SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-root} SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:?set SPRING_DATASOURCE_PASSWORD in .env} # Honor X-Forwarded-* from nginx so Spring reconstructs the original URL # (http://localhost) instead of seeing http://backend:8080. SERVER_FORWARD_HEADERS_STRATEGY: framework # CORS allow-list — frontend served via nginx on http://localhost (port 80). # Keep :4200 so the non-dockerized Angular dev server still works. FENNEC_HUB_SECURITY_CORS_ALLOWED_ORIGINS: ${FENNEC_HUB_SECURITY_CORS_ALLOWED_ORIGINS:-http://localhost,http://localhost:4200,https://hub.fennecsm.com,https://ecom.fennecsm.com} ports: - "9999:8080" volumes: - /home/fennec/hub:/home/fennec/hub networks: - fennec frontend: image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-admin-ui:${TAG:-latest} container_name: fennec-frontend restart: unless-stopped ports: - "8888:80" depends_on: - backend networks: - fennec frontendcomm: image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-commerce:${TAG:-latest} container_name: fennec-frontendcomm restart: unless-stopped ports: - "8889:80" depends_on: - backend networks: - fennec networks: fennec: driver: bridge