services: backend: build: ./backend ports: - "8000:8000" environment: - DATABASE_URL=postgresql://user:pass@db:5432/scrapecraft - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - SCRAPEGRAPH_API_KEY=${SCRAPEGRAPH_API_KEY} - JWT_SECRET=${JWT_SECRET:-your-secret-key} - REDIS_URL=redis://redis:6379/0 depends_on: - db - redis volumes: - ./backend:/app command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload frontend: build: ./frontend ports: - "3000:80" depends_on: - backend environment: - REACT_APP_API_URL=http://localhost:8000 - REACT_APP_WS_URL=ws://localhost:8000 db: image: postgres:14 environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=pass - POSTGRES_DB=scrapecraft volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" redis: image: redis:7-alpine ports: - "6379:6379" watchtower: image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock command: --interval 300 --cleanup environment: - WATCHTOWER_CLEANUP=true - WATCHTOWER_INCLUDE_RESTARTING=true volumes: pgdata: