version: '3.8' services: proxy: image: ${REGISTRY}/mytheclipse/gmw/bete-proxy:${IMAGE_TAG:-latest} container_name: imphenbot-proxy restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.imphenbot.rule=Host(`imphnen.asepharyana.my.id`)" - "traefik.http.routers.imphenbot.entrypoints=websecure" - "traefik.http.routers.imphenbot.tls=true" - "traefik.http.services.imphenbot.loadbalancer.server.port=80" depends_on: - backend healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1/"] interval: 30s timeout: 5s retries: 3 deploy: resources: limits: memory: 64M networks: - app-shared-net backend: image: ${REGISTRY}/mytheclipse/gmw/bete-backend:${IMAGE_TAG:-latest} container_name: imphenbot-backend restart: unless-stopped env_file: - .env environment: NODE_ENV: production WEBSERVER_PORT: 3000 healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"] interval: 30s timeout: 10s start_period: 15s retries: 3 deploy: resources: limits: memory: 256M networks: - app-shared-net discord-gateway: image: ${REGISTRY}/mytheclipse/gmw/bete-discord-gateway:${IMAGE_TAG:-latest} container_name: imphenbot-discord-gateway restart: unless-stopped env_file: - .env environment: NODE_ENV: production volumes: - recordings:/app/recordings healthcheck: test: ["CMD-SHELL", "kill -0 1 || exit 1"] interval: 30s timeout: 5s start_period: 30s retries: 3 deploy: resources: limits: memory: 512M networks: - app-shared-net volumes: recordings: networks: app-shared-net: name: app-shared-net external: true