# Zui: frontend (Nginx) + backend (Express). No DB. # Usage: docker compose up --build # Dev with hot reload: use frontend/Dockerfile.dev and mount ./frontend, or run npm run dev locally. services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:80" depends_on: backend: condition: service_healthy environment: - VITE_API_URL=http://localhost:8080 networks: - app backend: build: context: ./backend dockerfile: Dockerfile ports: - "8080:8080" environment: - PORT=8080 - CORS_ORIGIN=http://localhost:3000 healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:8080/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"] interval: 30s timeout: 3s start_period: 5s retries: 3 networks: - app networks: app: driver: bridge