version: '3.8' services: redis: container_name: redis image: docker.io/valkey/valkey:8-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped volumes: - redis-data:/data cap_drop: - ALL cap_add: - SETGID - SETUID - DAC_OVERRIDE logging: driver: "json-file" options: max-size: "1m" max-file: "1" networks: - agentic-seek-net searxng: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped ports: - "8080:8080" volumes: - ./searxng:/etc/searxng:rw environment: - SEARXNG_BASE_URL=http://localhost:8080/ - UWSGI_WORKERS=4 - UWSGI_THREADS=4 cap_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1" depends_on: - redis networks: - agentic-seek-net backend: container_name: backend build: context: . dockerfile: Dockerfile.backend ports: - "8000:8000" volumes: - ./.screenshots:/app/.screenshots:ro # Mount screenshots folder - ./app.py:/app/app.py:ro # Mount backend code - ./sources:/app/sources:ro # Assuming sources/ contains your modules - ./prompts:/app/prompts:ro # Assuming prompts/ for agent prompts - ./config.ini:/app/config.ini:ro # Config file environment: - PYTHONUNBUFFERED=1 depends_on: - searxng - redis networks: - agentic-seek-net frontend: container_name: frontend build: context: ./frontend/agentic-seek dockerfile: Dockerfile.frontend ports: - "3000:3000" volumes: - ./frontend/agentic-seek/src:/app/src # Live reload for development environment: - NODE_ENV=development - CHOKIDAR_USEPOLLING=true # Ensure file watching works in Docker depends_on: - backend networks: - agentic-seek-net volumes: redis-data: networks: agentic-seek-net: driver: bridge