services: app: build: ./app container_name: app ports: - "5000:5000" env_file: - .env depends_on: - db restart: unless-stopped worker-system-admin: command: celery -A celery_app.celery worker -Q system_admin --loglevel=INFO build: Dockerfile.worker depends_on: - redis - app restart: unless-stopped worker-corp-admin: command: celery -A celery_app.celery worker -Q corp_admin --loglevel=INFO build: Dockerfile.worker depends_on: - redis - app restart: unless-stopped worker-user: command: celery -A celery_app.celery worker -Q user_default --loglevel=INFO build: Dockerfile.worker depends_on: - redis - app restart: unless-stopped web: build: ./web container_name: web ports: - "3000:3000" restart: unless-stopped db: image: postgres:16 container_name: db restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ./pgdata:/var/lib/postgresql/data gen: build: ./gen container_name: ollama ports: - "11434:11434" volumes: - ./gendata:/root/.ollama restart: unless-stopped deploy: resources: reservations: devices: - capabilities: ["gpu"] redis: image: redis:7 container_name: redis ports: - "6379:6379" volumes: - ./redis:/data restart: unless-stopped