33800 Docs

← Retour

SearXNG comme sidecar de connectors-api

Status : IMPLEMENTEE

Problème

Le settings.yml de SearXNG est un fichier loose sur prod-portainer (/home/gouroubleu/apps/searxng/settings.yml), pas versionné, pas backupé.

Solution

Ajouter SearXNG comme 2ème sidecar dans le projet connectors-api, à côté du sidecar WireGuard existant. La config settings.yml sera versionnée dans le repo GitLab.

Modifications

1. Créer searxng/settings.yml dans le repo connectors-api

Chemin : /stock_8to/33800-stack/projects/connectors-api/searxng/settings.yml

Contenu : la config optimisée actuelle (27 moteurs keep_only).

2. Créer searxng/Dockerfile minimal

FROM searxng/searxng:latest
COPY settings.yml /etc/searxng/settings.yml

On embed le settings.yml dans l'image pour éviter les bind mounts.

3. Ajouter .gitlab-ci.yml pour builder l'image custom

Non nécessaire — le Dockerfile est dans un sous-dossier du repo connectors-api. Smart-deploy peut gérer le build du sidecar si l'image est pushée au registry. Alternativement, on peut builder et push manuellement une fois, puis smart-deploy utilise l'image du registry.

Option simple : pas de CI/CD séparé, on build+push l'image manuellement à chaque modif de settings.yml :

cd connectors-api/searxng
docker build -t registry.33800.nowhere84.com/gouroubleu/searxng:latest .
docker push registry.33800.nowhere84.com/gouroubleu/searxng:latest

4. Ajouter le sidecar dans conf.prod.gouroubleu.yml

sidecars:
  # Sidecar WireGuard existant
  - name: "wireguard-sidecar"
    ...

  # Sidecar SearXNG
  - name: "searxng"
    image: "registry.33800.nowhere84.com/gouroubleu/searxng:latest"
    ports:
      - "8888:8080"
    volumes:
      - "searxng-data:/var/cache/searxng"
    networks:
      - "supabase-prod_supabase-prod"
    env:
      SEARXNG_BASE_URL: "https://search.33800.nowhere84.com"
    health: "/healthz"

5. Supprimer l'ancien container standalone

ssh prod-portainer "docker stop searxng && docker rm searxng"

6. Mettre à jour la variable d'env dans connectors-api

Actuellement connectors-api utilise https://search.33800.nowhere84.com (via nginx). Comme SearXNG sera dans le même network, on pourrait utiliser http://searxng:8080 en interne. Mais ce n'est pas obligatoire vu le network_mode: service:wireguard-sidecar — à vérifier si le sidecar SearXNG est accessible via localhost ou via le network Docker.

Le plus simple : garder l'accès via nginx comme aujourd'hui. Pas de changement dans le code applicatif.

Fichiers modifiés/créés

Fichier Action
connectors-api/searxng/settings.yml Créer (config optimisée)
connectors-api/searxng/Dockerfile Créer (FROM + COPY)
connectors-api/conf.prod.gouroubleu.yml Ajouter sidecar searxng

Avantages