services: jcxproxy: build: . ports: - "3000:3000" volumes: - ./config:/app/config - jcxproxy_data:/app/data environment: - CONFIG_PATH=/app/config/config.yaml - SIGNATURE_STORE_PATH=/app/data/thought-signatures.json - BRAVE_API_KEY=${BRAVE_API_KEY:-} - SEARXNG_URL=http://searxng:8080 - TAVILY_API_KEY=${TAVILY_API_KEY:-} depends_on: searxng: condition: service_healthy searxng: image: searxng/searxng:latest volumes: - ./searxng/settings.yml:/etc/searxng/settings.yml:ro environment: - SEARXNG_BASE_URL=http://searxng:8080/ - SEARXNG_SECRET=${SEARXNG_SECRET:-your_searxng_secret_key_here} depends_on: redis: condition: service_healthy healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/healthz"] interval: 10s timeout: 5s retries: 3 start_period: 10s redis: image: redis:7-alpine command: redis-server --save 60 1 --loglevel warning volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 volumes: jcxproxy_data: driver: local redis_data: driver: local