version: "3.9" services: db: image: pgvector/pgvector:pg16 environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: news volumes: ["pgdata:/var/lib/postgresql/data"] redis: image: redis:7-alpine backend: build: ./backend env_file: .env depends_on: [db, redis] volumes: ["./data:/data", "./backend:/app"] ports: ["8080:8000"] command: uvicorn app.main:app --host 0.0.0.0 --port 8000 deploy: resources: reservations: devices: [{capabilities: ["gpu"]}] # GPU acceleration worker: build: ./backend env_file: .env depends_on: [db, redis] volumes: ["./data:/data", "./backend:/app"] command: celery -A app.tasks.celery_app worker --loglevel=info --concurrency=2 frontend: build: ./frontend ports: ["3000:3000"] volumes: - "./frontend:/app" - "/app/node_modules" command: npm run dev depends_on: [backend] volumes: pgdata: