Infra_ansible_dockercompose/stacks/searxng/compose.yaml
Tellsanguis fd01ea59ee Commit initial : infrastructure Ansible pour homeserver
- Playbooks Ansible avec rôles (common, cockpit, docker, services)
- 30+ stacks Docker Compose avec reverse proxy Traefik
- Ansible Vault pour gestion secrets
- Intégration CrowdSec pour détection intrusions
- Versions images Docker fixées pour reproductibilité
2025-11-23 19:40:17 +01:00

59 lines
1.9 KiB
YAML

services:
# Reverse proxy Traefik : déjà déployé ailleurs chez toi
# (Ce stack n'inclut PAS Traefik ; on ne fait qu'y raccorder SearXNG.)
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
logging:
driver: json-file
options:
max-size: 1m
max-file: "1"
# NOTE hôte: activer vm.overcommit_memory=1 (sysctl) pour éviter les warnings.
searxng:
container_name: searxng
image: docker.io/searxng/searxng:2024.11.17-41079cdde
restart: unless-stopped
networks:
- searxng
- traefik_network
# Pas de "ports:" ici : Traefik s'occupe de l'exposition
volumes:
- ./searxng:/etc/searxng:rw
- searxng-data:/var/cache/searxng:rw
environment:
# Base URL utilisée par SearXNG pour générer ses liens
- SEARXNG_BASE_URL=https://searxng.tellserv.fr
# Secret via .env (réf. dans settings.yml)
- SEARXNG_SECRET=${SEARXNG_SECRET}
labels:
- traefik.enable=true
# Réseau docker que Traefik doit utiliser pour joindre ce service
- traefik.docker.network=traefik_network
# Routeur HTTPS (prod)
- traefik.http.routers.searxng-prod.rule=Host(`searxng.tellserv.fr`)
- traefik.http.routers.searxng-prod.entrypoints=websecure
- traefik.http.routers.searxng-prod.tls=true
- traefik.http.routers.searxng-prod.tls.certresolver=cloudflare
# Service interne : SearXNG écoute en 8080
- traefik.http.services.searxng.loadbalancer.server.port=8080
logging:
driver: json-file
options:
max-size: 1m
max-file: "1"
networks:
searxng: null
traefik_network:
external: true
volumes:
valkey-data2: null
searxng-data: null