version: "3.8" services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "5000:5000" environment: - NODE_ENV=production - PORT=5000 - CHAIN_ID=${CHAIN_ID} - CONTRACT_ADDRESS=${CONTRACT_ADDRESS} - RPC_URL=${RPC_URL} - PRIVATE_KEY=${PRIVATE_KEY} - COFHE_URL=${COFHE_URL} - VERIFIER_URL=${VERIFIER_URL} - THRESHOLD_NETWORK_URL=${THRESHOLD_NETWORK_URL} - CORS_ORIGINS=${CORS_ORIGINS} restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/api/health"] interval: 30s timeout: 10s retries: 3 frontend: build: context: ./frontend dockerfile: Dockerfile args: - VITE_API_BASE_URL=${VITE_API_BASE_URL} - VITE_WALLET_CONNECT_PROJECT_ID=${VITE_WALLET_CONNECT_PROJECT_ID} ports: - "3000:80" depends_on: - backend restart: unless-stopped nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro depends_on: - backend - frontend restart: unless-stopped