services: backend: build: ./backend restart: unless-stopped env_file: ./backend/.env environment: - CH_DATABASE_URL=sqlite+aiosqlite:///./data/classhub.db - CH_FRONTEND_URL=http://localhost volumes: - classhub-data:/app/data expose: - "8000" healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"] interval: 30s timeout: 5s retries: 3 frontend: build: context: ./frontend args: - NEXT_PUBLIC_API_URL= restart: unless-stopped expose: - "3000" depends_on: - backend nginx: image: nginx:alpine restart: unless-stopped ports: - "80:80" volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - backend - frontend volumes: classhub-data: