Installer Searchgirl
Searchgirl, c’est deux conteneurs : l’application (ghcr.io/diegoparras/searchgirl) et son
SearXNG interne (l’image officielle, non modifiée et jamais exposée — seule Searchgirl
l’atteint via le réseau privé).
Prérequis
Section intitulée « Prérequis »- Docker (Docker Desktop sous Windows/Mac, ou Docker Engine sur un VPS).
- Rien d’autre : pas de base de données, pas de services externes. Searchgirl ne conserve aucun état à migrer.
Démarrage rapide (Docker Compose)
Section intitulée « Démarrage rapide (Docker Compose) »git clone https://github.com/diegoparras/searchgirlcd searchgirldocker compose up -d --buildOuvrez http://localhost:8089 — la recherche privée, en marche.
Connexion locale (autonome)
Section intitulée « Connexion locale (autonome) »Pour une installation à vous avec un écran de connexion, définissez dans un .env à côté du compose :
SEARCHGIRL_USER=diegoSEARCHGIRL_PASS=un-mot-de-passe-longSECRET_KEY=un-secret-de-cookie # optionnel ; sans lui, les sessions se réinitialisent avec le conteneurL’écran de connexion standard de la famille Escriba apparaît (une carte avec un bouton afficher/masquer sur le mot de passe) et tout — interface, API, MCP, miniatures — est verrouillé jusqu’à la connexion. C’est un utilisateur unique, sans base de données. En mode fédéré, ces variables sont ignorées : le contrat de la suite interdit qu’une connexion locale cohabite avec le SSO.
Déployer sur EasyPanel
Section intitulée « Déployer sur EasyPanel »L’image publiée plus le SearXNG officiel, en deux services dans un même projet. Le guide de bout
en bout (montages, domaine, HTTPS, dépannage) se trouve dans
DEPLOY.md.
- Créez un projet nommé
searchgirl. À l’intérieur d’un projet, les services se voient par DNS interne sous la forme<project>_<service>(par ex.searchgirl_searxng). - Service
searxng— App → Docker Imageghcr.io/searxng/searxng:latest. DéfinissezSEARXNG_SECRET(openssl rand -hex 32) et ajoutez un File Mount sur/etc/searxng/settings.ymlavecformats: [html, json]etlimiter: false(le contenu exact est dansDEPLOY.md). Pas de domaine — il reste interne. - Service
app— App → Docker Imageghcr.io/diegoparras/searchgirl:latest. Environnement :SEARXNG_URL=http://searchgirl_searxng:8080, vosSEARCHGIRL_USER/SEARCHGIRL_PASS/SECRET_KEY,COOKIE_SECURE=1etSEARCHGIRL_TRUSTED_PROXIES=172.16.0.0/12. Ajoutez votre domaine avec HTTPS activé, port interne 8080. - Vérifiez :
curl https://votre-domaine/healthz→ok, puis connectez-vous depuis le navigateur. - Mise à jour : cliquez sur Deploy sur le service
app— il récupèrelatest. Zéro état à migrer.
Dokploy / Coolify / Portainer : tous trois acceptent Docker Compose — collez le
docker-compose.yml du dépôt tel quel (il monte déjà searxng/ et n’expose pas le moteur),
définissez les mêmes variables d’environnement et placez le reverse proxy du panneau devant le
port 8089 avec HTTPS (COOKIE_SECURE=1).
Optionnel : Réponse IA
Section intitulée « Optionnel : Réponse IA »Avec un modèle configuré, le bouton Réponse IA, l’endpoint POST /api/answer et l’outil MCP
answer s’activent. Choisissez un seul fournisseur :
# Anthropic (natif) :ANTHROPIC_API_KEY=sk-ant-... # optionnel : ANTHROPIC_MODEL
# ...ou tout endpoint compatible OpenAI — Ollama local, OpenRouter, DeepSeek :LLM_BASE_URL=http://host.docker.internal:11434/v1LLM_MODEL=qwen2.5:7bSans l’un ni l’autre, tout le reste fonctionne à l’identique — le bouton n’apparaît simplement pas.
Principales variables d’environnement
Section intitulée « Principales variables d’environnement »| Variable | Valeur par défaut | Ce qu’elle contrôle |
|---|---|---|
SEARXNG_URL | http://searxng:8080 | URL du SearXNG interne. |
SEARCHGIRL_DEFAULT_LANGUAGE | es | Langue de recherche par défaut. |
SEARCHGIRL_USER / SEARCHGIRL_PASS | — | Connexion locale autonome : un utilisateur, l’écran Escriba standard. |
SECRET_KEY | aléatoire | Clé HMAC du cookie de session ; définissez-la pour que les sessions survivent aux redémarrages. |
COOKIE_SECURE | 0 | 1 derrière HTTPS. |
SEARCHGIRL_MCP_TOKEN | — | Jetons Bearer pour API+MCP. Plusieurs, nommés : claude:abc...,n8n:def... — en révoquer un ne fait pas tourner les autres. |
SEARCHGIRL_TRUSTED_PROXIES | — | IP/CIDR du reverse proxy pour que la limitation de débit voie l’IP réelle du client via X-Forwarded-For. |
SEARCHGIRL_RATE_RPS / SEARCHGIRL_RATE_BURST | 20 / 60 | Limitation de débit par IP sur l’API, le MCP et la connexion (RPS=0 la désactive). |
AUTH_MODE | vide | federado active OIDC avec Lockatus (avec LOCKATUS_ISSUER / LOCKATUS_CLIENT_ID / LOCKATUS_REDIRECT_URI). |
ANTHROPIC_API_KEY / LLM_BASE_URL + LLM_MODEL | — | Le fournisseur optionnel de la Réponse IA. |
Le tableau complet se trouve dans le README du dépôt.
Lire la documentation