version: "3.7" volumes: valkey-data2: services: gluetun: # pipe container traffic through vpn https://hub.docker.com/r/qmcgaw/gluetun image: qmcgaw/gluetun:latest container_name: gluetun-searxng cap_add: - NET_ADMIN environment: - VPN_SERVICE_PROVIDER=protonvpn - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${WG_PRIV_KEY} - SERVER_COUNTRIES=${WG_COUNTRIES} - VPN_PORT_FORWARDING=off ports: - ${SEARXNG_PORT}:8080 restart: unless-stopped searxng-redis: container_name: searxng-redis image: docker.io/valkey/valkey:7-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped network_mode: "service:gluetun" 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 network_mode: "service:gluetun" volumes: - ${DATA_PATH}/searxng/data:/etc/searxng:rw environment: - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME}/ cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1" depends_on: - searxng-redis - gluetun