Installer SearXNG avec Docker
SearXNG

Installer SearXNG avec Docker

Table des matières

SearXNG est un métamoteur de recherche Internet gratuit qui regroupe les résultats de plus de 70 services de recherche. Les utilisateurs ne sont ni suivis ni profilés. De plus, SearXNG peut être utilisé sur Tor pour l'anonymat en ligne.

J'ai fait une refonte du tuto pour plus de clarté, il y a 4 méthodes.

  • avec 1 clic avec Cosmos-cloud si vous l'avez d'installé
  • en HTTP, de loin la plus mauvaise solution
  • avec Caddy en reverse-proxy
  • avec votre propre reverse-proxy (Cosmos ou NPM)

Si vous avez la moindre difficulté, n'oubliez pas que vous pouvez rejoindre belginux sur Discord et Matrix!


L'installation

Avec Cosmos Cloud

Cette application peut-être installée en un clic sur votre Cosmos Cloud en cliquant sur l'image ci-dessous:

En HTTP uniquement

Même si cela fonctionne très bien en HTTP, je déconseille vivement!

  1. Créez votre docker-compose.yml:
sudo nano docker-compose.yml
  1. Collez ça dedans:
version: "3.7"

services:

  redis:
    container_name: redis
    image: docker.io/library/redis:alpine
    command: redis-server --save 30 1 --loglevel warning
    networks:
      - searxng
    volumes:
      - redis-data:/data
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
      - DAC_OVERRIDE

  searxng:
    container_name: searxng
    image: docker.io/searxng/searxng:latest
    networks:
      - searxng
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

networks:
  searxng:
    ipam:
      driver: default

volumes:
  redis-data:
  1. Créez votre .env
sudo nano docker-compose.yml
  1. Collez ça dedans et remplacer changez_moi par l'IP locale de votre serveur:
# By default listen on https://localhost
# To change this:
# * uncomment SEARXNG_HOSTNAME, and replace <host> by the SearXNG hostname
# * uncomment LETSENCRYPT_EMAIL, and replace <email> by your email (require to create a Let's Encrypt certificate)

SEARXNG_HOSTNAME=changez_moi
# LETSENCRYPT_EMAIL=<email>
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port en HTTP, suivant l'IP de votre serveur local:
http://ip:8080

Avec Caddy en HTTPS

⚠️ Le port 80 et 443 doivent être redirigés vers l'IP locale de votre serveur.
  1. On va télécharger l'application et se rendre dans son dossier. Il faut lancer cette commande à la racine du dossier ou se trouvent toutes vos applications:
sudo git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
  1. Éditer le fichier .env pour définir le nom d'hôte et un e-mail:
sudo nano .env
  1. Complétez suivant votre nom d'hôte (IP locale du serveur ou votre nom de domaine) et vote e-mail et retirez les # devant les deux dernières lignes:
  1. Générer une clé secrète:
sudo sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur le nom de domaine choisi par vos soins dans le fichier .env:
https://ndd.tld

ou, suivant votre configuration

https://ip:443

Avec votre propre reverse-proxy en HTTPS

  1. On va télécharger l'application et se rendre dans son dossier. Il faut lancer cette commande à la racine du dossier ou se trouvent toutes vos applications:
sudo git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
  1. Il faut maintenant éditez le docker-compose.yaml:
nano docker-compose.yaml
  1. Collez ça dedans:
version: "3.7"

services:
  redis:
    container_name: redis
    image: docker.io/library/redis:alpine
    command: redis-server --save 30 1 --loglevel warning
    networks:
      - searxng
    volumes:
      - redis-data:/data
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
      - DAC_OVERRIDE

  searxng:
    container_name: searxng
    image: searxng/searxng:latest
    networks:
      - searxng
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

networks:
  searxng:
    ipam:
      driver: default

volumes:
  redis-data:
  1. Maintenant éditez le .env:
sudo nano .env

Indiquez votre domaine après SEARXNG_HOSTNAME=
Commentez la ligne #LETSENCRYPT_EMAIL dans le .env et sauvez le .env:

Screenshot_20231219_181801.png
  1. Ensuite on installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port en HTTP, suivant l'IP de votre serveur local:
http://ip:8080
  1. Utilisez votre reverse pour le certificat SSL.

Utiliser le HTTPS avec un SSL certifié et signé

Il est préférable d'utiliser un certificat SSL certifié et signé.

J'ai deux noms en tête:

  • Cosmos Cloud, mon préféré:
Sécuriser ses applications avec Cosmos Cloud
Quelques astuces pour sécuriser ses applications exposées ou en local et renforcer la sécurité du serveur.
  • Nginx Proxy Manager:
Installer Nginx Proxy Manager avec Docker
Tutoriel d’installation de Nginx Proxy Manager, exposez vos services facilement et en toute sécurité.

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.