Files
cloudy/swarm/searxng.yml
T

84 lines
2.1 KiB
YAML

volumes:
# searxng_data: {}
valkey_data2: {}
networks:
searxng:
driver: overlay
attachable: true
traefik-public:
external: true
services:
valkey_valkey:
image: docker.io/valkey/valkey:alpine
command: valkey-server --save 30 1 --loglevel warning
sysctls:
- vm.overcommit_memory=1
restart: unless-stopped
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
volumes:
- valkey_data2:/data
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
- searxng
deploy:
placement:
constraints:
- node.labels.searxng.redis == true
searxng:
image: docker.io/searxng/searxng:latest
restart: unless-stopped
environment:
- LIMITER=true
- SEARXNG_BASE_URL=https://search.${DOMAIN}/
- SEARXNG_VALKEY_URL=redis://valkey_valkey:6379/0
- SEARXNG_SECRET=${SEARXNG_SECRET:-ultrasecretkey}
- SEARXNG_LIMITER=true
# - SEARXNG_USE_DEFAULT_SETTINGS=true
# - SEARXNG_IMAGE_PROXY=true
# - SEARXNG_DEBUG=false
volumes:
- /var/data/config/searxng:/etc/searxng
# - searxng_data:/etc/searxng
# cap_drop:
# - ALL
# cap_add:
# - CHOWN
# - SETGID
# - SETUID
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
depends_on:
- valkey_valkey
networks:
- searxng
- traefik-public
deploy:
# placement:
# constraints:
# - node.labels.searxng.searxng_data == true
labels:
- traefik.enable=true
- traefik.swarm.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.searxng-rtr.entrypoints=https
- traefik.http.routers.searxng-rtr.rule=Host(`search.${DOMAIN}`)
- traefik.http.routers.searxng-rtr.middlewares=xbot
- traefik.http.routers.searxng-rtr.tls.certresolver=le
- traefik.http.routers.searxng-rtr.service=searxng-svc
- traefik.http.services.searxng-svc.loadbalancer.server.port=8080