Files
wiki/Catalogue-Self-Hosted/apps/app-searxng.md
T
2026-06-09 18:40:21 +02:00

99 lines
4.6 KiB
Markdown

---
title: SearXNG
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, search-engines, self-hosted, python]
confidence: high
contested: false
sources:
- https://docs.searxng.org
- https://github.com/searxng/searxng
---
# SearXNG 🌐
> Méta-moteur de recherche libre et respectueux de la vie privée, fork communautaire de Searx.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://docs.searxng.org |
| **GitHub** | https://github.com/searxng/searxng |
| **License** | AGPL-3.0 |
| **Langage** | Python (Flask) |
| **Étoiles** | 31 683 |
| **Dernière MAJ** | 2026-06-08 |
| **Catégorie** | [[cat-search-engines]] |
## Description
SearXNG est un **méta-moteur de recherche** qui agrège les résultats de plus de 70 moteurs et sources (Google, Bing, DuckDuckGo, Qwant, Brave, Startpage, Wikipedia, ArXiv, GitHub, StackOverflow, Reddit, Pirate Bay, etc.) **sans jamais révéler votre IP** aux moteurs cibles ni stocker de profil publicitaire. C'est l'alternative éthique et open source à Google, sans tracking, sans cookies, sans fingerprinting.
L'instance envoie vos requêtes en parallèle à tous les moteurs activés, agrège, dédoublonne et classe les résultats. L'utilisateur peut activer/désactiver chaque source, choisir le « safe-search », le format de sortie (HTML, JSON, RSS, CSV), la langue, la région. Une **API REST** permet d'intégrer SearXNG dans des scripts, Alfred, Raycast, Kagi-like workflows.
SearXNG est le successeur officiel de **Searx** (projet archivé en 2018) et est activement maintenu par une communauté européenne (🇩🇪, 🇫🇷, 🇨🇿). Le projet publie des images Docker officielles, des builds multi-arch (amd64, arm64, armv7) et des releases mensuelles. La confidentialité est totale puisque **l'instance est la vôtre**.
## Installation
### Docker Compose
```yaml
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_SECRET=${SEARXNG_SECRET}
- SEARXNG_BIND_ADDRESS=0.0.0.0:8080
- SEARXNG_BASE_URL=https://search.example.com/
ports:
- "8080:8080"
labels:
- traefik.enable=true
- traefik.http.routers.searxng.rule=Host(`search.example.com`)
- traefik.http.routers.searxng.entrypoints=websecure
- traefik.http.routers.searxng.tls.certresolver=letsencrypt
- traefik.http.services.searxng.loadbalancer.server.port=8080
restart: unless-stopped
redis:
image: redis:7-alpine
container_name: searxng-redis
command: redis-server --save "" --appendonly no
restart: unless-stopped
```
### Préparation de la config
```bash
cp searxng/settings.yml ./searxng/
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|" ./searxng/settings.yml
```
## Configuration
1. Générer un **secret** (`openssl rand -hex 32`) et le placer dans `settings.yml` et `.env`.
2. Éditer `settings.yml` : activer les moteurs souhaités, ajuster les **timeouts** et le **pool de proxies** (Tor, SOCKS5).
3. Configurer **limiter/redis** (déjà inclus ci-dessus) pour gérer la charge et le rate-limiting.
4. Ajouter un **favicon**, choisir un thème (`oscar`, `simple`, `pix-art`) dans `default_settings.yml`.
5. Configurer l'**auth en sortie** (HTTP proxy, VPN, Tor) si vous voulez masquer l'IP du serveur lui-même.
## Alternatives
- **Open source** : [[app-whoogle]] (Google-only, plus simple), [[app-hister]] (historique local), Yacy (P2P décentralisé), Whoogle, Presearch (blockchain), Librex, Mojeek (indépendant), Marginalia (small web).
- **Propriétaire** : DuckDuckGo (semi-propriétaire), Brave Search (index propre mais cloud), Kagi (payant, premium), Startpage (Google anonymisé), Google Search (tracking), Bing.
## Sécurité
- **Aucune trace** côté moteurs : requêtes relayées via Tor/proxies sortants (configurable).
- **Pas de logs** par défaut, **pas de cookies de tracking**, pas de fingerprinting JS.
- **HTTPS obligatoire** en production pour éviter le MITM sur les requêtes utilisateur.
- **Rate-limiting** via limiter/redis pour bloquer les abus (scripts, scrapers).
- **Pare-feu sortant** restrictif recommandé : limiter les IP/IPv6 sortantes évite de « fuiter » la localisation du serveur.
## Ressources
- Code : https://github.com/searxng/searxng
- Documentation : https://docs.searxng.org
- Liste d'instances publiques : https://searx.space
- Issues : https://github.com/searxng/searxng/issues
## Pages Liées
- [[cat-search-engines]] — Catégorie parente
- [[app-whoogle]] — Méta-moteur Google
- [[app-meilisearch]] — Moteur de recherche full-text
- [[recettes-docker-compose]] — Modèles de stacks