name: spider version: "0.0.1" services: caddy: container_name: caddy image: docker.io/library/caddy:2-alpine network_mode: host restart: unless-stopped volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy-data:/data:rw - caddy-config:/config:rw environment: - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost} - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal} cap_add: - NET_BIND_SERVICE cap_drop: - ALL logging: driver: "json-file" options: max-size: "1m" max-file: "1" redis: container_name: redis image: docker.io/valkey/valkey:8-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped networks: - searxng volumes: - valkey-data2:/data cap_drop: - ALL cap_add: - SETGID - SETUID - DAC_OVERRIDE logging: driver: "json-file" options: max-size: "1m" max-file: "1" searxng: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped networks: - searxng ports: - "127.0.0.1:8080:8080" volumes: - ./searxng:/etc/searxng:rw environment: - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/ - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4} - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4} env_file: - .searchxng.env cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1" mongodb: container_name: mongodb image: mongo:4.4 restart: unless-stopped networks: - searxng ports: - "27017:27017" volumes: - mongo-data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example logging: driver: "json-file" options: max-size: "1m" max-file: "1" nodeapp: container_name: main build: context: . ports: - "3000:3000" networks: - searxng depends_on: - mongodb logging: driver: "json-file" options: max-size: "1m" max-file: "1" volumes: - /dev/shm:/dev/shm deploy: resources: limits: memory: 4G cpus: '2.0' networks: searxng: volumes: caddy-data: caddy-config: valkey-data2: mongo-data: