mercredi 3 décembre 2025

Déployer Paperless-ngx sur Debian 13 avec Docker et Portainer

Installation de Paperless-ngx avec Docker Compose

Installation de Paperless-ngx avec Docker Compose

Déployez votre GED personnelle avec support OCR et fichiers Office


Webographie


Objectif

Installer et configurer Paperless-ngx, une solution complète de gestion électronique de documents (GED) avec OCR multilingue et support des fichiers Office. Cette installation inclut tous les services nécessaires : PostgreSQL, Redis, Gotenberg (conversion Office) et Tika (extraction de texte).


Prérequis

  • ✅ Docker installé et fonctionnel
  • ✅ Docker Compose disponible
  • ✅ (Optionnel) Portainer pour la gestion via interface web
  • ✅ Au moins 4 GB de RAM disponible

Vérification rapide :

docker --version
docker compose version

1. Création de la structure de dossiers

Créez les répertoires nécessaires pour Paperless-ngx :

# Création de la structure complète
mkdir -p /opt/paperless-ngx/{consume,data,media,export,postgres,redis}

# Attribution des permissions (remplacez 1000:1000 par votre UID:GID)
sudo chown -R 1000:1000 /opt/paperless-ngx

# Vérification
ls -la /opt/paperless-ngx/

Structure des dossiers :

  • consume/ - Documents à traiter automatiquement
  • data/ - Données de l'application
  • media/ - Documents archivés et traités
  • export/ - Exports et sauvegardes
  • postgres/ - Base de données PostgreSQL
  • redis/ - Cache Redis

💡 Trouver votre UID:GID :

id
# Résultat : uid=1000(votre_user) gid=1000(votre_user)

2. Création du fichier docker-compose.yml

Créez le fichier de configuration Docker Compose :

cd /opt/paperless-ngx
nano docker-compose.yml

Contenu du fichier :

version: "3.8"

services:
  broker:
    image: redis:7
    container_name: paperless-redis
    restart: unless-stopped
    volumes:
      - ./redis:/data
    environment:
      TZ: Europe/Paris

  db:
    image: postgres:16
    container_name: paperless-db
    restart: unless-stopped
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperlessuser
      POSTGRES_PASSWORD: ChangezCeMotDePasse123!
      TZ: Europe/Paris

  gotenberg:
    image: gotenberg/gotenberg:8
    container_name: paperless-gotenberg
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

  tika:
    image: apache/tika:latest
    container_name: paperless-tika
    restart: unless-stopped

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: paperless-ngx
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - "8095:8000"
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    environment:
      # Base de données
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperlessuser
      PAPERLESS_DBPASS: ChangezCeMotDePasse123!
      
      # Services de conversion
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      
      # Configuration OCR
      PAPERLESS_OCR_LANGUAGE: fra+eng
      
      # Configuration générale
      PAPERLESS_TIME_ZONE: Europe/Paris
      PAPERLESS_SECRET_KEY: ChangezCetteCleSuperSecrete2024!
      PAPERLESS_URL: http://192.168.1.100:8095
      
      # Compte administrateur (création automatique)
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: VotreMotDePasseAdmin123!
      PAPERLESS_ADMIN_MAIL: admin@example.com
      
      # Permissions
      USERMAP_UID: 1000
      USERMAP_GID: 1000

⚠️ PERSONNALISATION OBLIGATOIRE :

Paramètre À modifier
POSTGRES_PASSWORD Mot de passe PostgreSQL (doit être identique à PAPERLESS_DBPASS)
PAPERLESS_DBPASS Mot de passe PostgreSQL (même valeur que ci-dessus)
PAPERLESS_SECRET_KEY Clé secrète unique (générez-en une avec openssl rand -base64 32)
PAPERLESS_URL Votre IP ou nom de domaine
PAPERLESS_ADMIN_USER Nom d'utilisateur admin (optionnel, par défaut "admin")
PAPERLESS_ADMIN_PASSWORD Mot de passe du compte admin
PAPERLESS_ADMIN_MAIL Votre adresse email
USERMAP_UID / USERMAP_GID Votre UID:GID (trouvé avec id)
PAPERLESS_OCR_LANGUAGE Langues OCR : fra (français), eng (anglais), deu (allemand), spa (espagnol), etc.

💡 Générer une clé secrète sécurisée :

openssl rand -base64 32

3. Déploiement de Paperless-ngx

Lancez le stack complet :

cd /opt/paperless-ngx
docker compose up -d

Vérifiez que tous les conteneurs sont démarrés :

docker compose ps

Vous devriez voir 5 conteneurs avec le statut "Up" :

  • paperless-ngx - Application principale
  • paperless-db - Base de données PostgreSQL
  • paperless-redis - Cache Redis
  • paperless-gotenberg - Conversion Office
  • paperless-tika - Extraction de texte

Surveillez les logs pendant le démarrage initial :

docker compose logs -f

Attendez que l'initialisation soit terminée (peut prendre 1-2 minutes au premier démarrage).


4. Première connexion

Accédez à l'interface web :

http://VOTRE-IP:8095

Connectez-vous avec les identifiants définis :

  • Nom d'utilisateur : admin (ou celui défini dans PAPERLESS_ADMIN_USER)
  • Mot de passe : celui défini dans PAPERLESS_ADMIN_PASSWORD

🎉 Félicitations ! Paperless-ngx est opérationnel !


5. Configuration initiale recommandée

Paramètres OCR (Settings → OCR) :

  • OCR mode : skip (sauter si texte déjà présent)
  • OCR language : Vérifier que fra+eng est bien configuré
  • Auto-rotate pages : Activé ✅

Métadonnées de base à créer :

1. Correspondants (Correspondents)

Créez des correspondants pour identifier automatiquement les expéditeurs/destinataires :

  • EDF, Orange, Banque, Assurance, Employeur, etc.

2. Tags

Organisez vos documents avec des tags :

  • Facture, Contrat, Administratif, Personnel, Impôts, Santé, etc.

3. Types de documents (Document types)

Catégorisez vos documents :

  • Facture, Contrat, Courrier, Reçu, Certificat, etc.

4. Chemins de stockage (Storage paths) - Optionnel

Organisez physiquement vos documents archivés sur le disque.


6. Test avec un fichier Office

Méthode 1 : Upload via l'interface web

  1. Cliquez sur le bouton "Upload" en haut à droite
  2. Sélectionnez un document Word, Excel ou PowerPoint
  3. Attendez le traitement (quelques secondes à quelques minutes)
  4. Vérifiez que le document apparaît dans la liste
  5. Ouvrez-le et testez la recherche de texte

Méthode 2 : Dépôt dans le dossier consume

# Copiez un fichier dans le dossier consume
cp ~/document-test.docx /opt/paperless-ngx/consume/

# Surveillez les logs du traitement
docker compose logs -f webserver

Le fichier sera automatiquement détecté, traité et supprimé du dossier consume une fois indexé.


7. Commandes utiles

Gestion du stack :

# Voir les logs
docker compose logs -f

# Redémarrer tous les conteneurs
docker compose restart

# Arrêter le stack
docker compose stop

# Démarrer le stack
docker compose start

# Redéployer après modification du docker-compose.yml
docker compose up -d

# Mettre à jour les images
docker compose pull
docker compose up -d

Logs spécifiques :

# Logs de Paperless-ngx
docker compose logs -f webserver

# Logs de PostgreSQL
docker compose logs -f db

# Logs de Gotenberg (conversion Office)
docker compose logs -f gotenberg

# Logs de Tika (extraction texte)
docker compose logs -f tika

Gestion des utilisateurs :

# Créer un utilisateur supplémentaire
docker exec -it paperless-ngx python3 manage.py createsuperuser

# Changer le mot de passe d'un utilisateur
docker exec -it paperless-ngx python3 manage.py changepassword admin

8. Architecture de la solution

Service Rôle Port
Paperless-ngx Application GED principale avec interface web 8095
PostgreSQL Base de données pour métadonnées et index Interne
Redis Cache et file d'attente pour traitement asynchrone Interne
Gotenberg Conversion de fichiers Office (docx, xlsx, pptx) vers PDF Interne
Tika Extraction de texte et métadonnées de tous types de fichiers Interne

Flux de traitement d'un document :

  1. 📄 Document déposé dans consume/ ou uploadé via l'interface
  2. 🔄 Tika extrait le texte et les métadonnées
  3. 📋 Gotenberg convertit les fichiers Office en PDF si nécessaire
  4. 👁️ OCR (Tesseract) analyse les images et PDFs scannés
  5. 💾 Document stocké dans media/, métadonnées dans PostgreSQL
  6. 🔍 Document indexé et recherchable instantanément

Fonctionnalités principales

✅ Ce que Paperless-ngx peut faire :

  • 📸 OCR multilingue sur documents scannés
  • 📁 Traitement automatique des fichiers Office (Word, Excel, PowerPoint)
  • 🔍 Recherche plein texte ultra-rapide
  • 🏷️ Organisation avec tags, correspondants et types de documents
  • 📱 Application mobile (Android/iOS) pour scanner directement
  • 📧 Import automatique depuis email (via fetchmail/getmail)
  • 🔄 Règles de traitement automatiques
  • 📤 Export en masse (PDF, ZIP)
  • 👥 Multi-utilisateurs avec permissions
  • 🌐 API REST complète pour intégrations
  • 🔒 Stockage local sécurisé (RGPD compliant)

Dépannage rapide

Problème Solution
Conteneurs ne démarrent pas Vérifiez les logs : docker compose logs
Erreur de permissions Vérifiez les UID:GID dans le docker-compose.yml et les permissions des dossiers
PostgreSQL ne démarre pas Vérifiez l'espace disque et les logs : docker compose logs db
OCR ne fonctionne pas Vérifiez la langue configurée dans PAPERLESS_OCR_LANGUAGE
Fichiers Office non traités Vérifiez les logs de Gotenberg et Tika
Interface web inaccessible Vérifiez le port 8095 et les logs du webserver

Réinitialisation complète (⚠️ PERTE DE DONNÉES) :

docker compose down -v
sudo rm -rf /opt/paperless-ngx/{postgres,redis,data,media}/*
docker compose up -d

Conclusion

Vous avez maintenant une installation complète de Paperless-ngx opérationnelle ! Cette solution vous permet de :

  • ✅ Dématérialiser tous vos documents papier
  • ✅ Organiser factures, contrats et courriers administratifs
  • ✅ Rechercher instantanément dans tous vos documents
  • ✅ Traiter automatiquement les fichiers Office
  • ✅ Respecter le RGPD avec hébergement local

🎯 Paperless-ngx transforme votre chaos documentaire en bibliothèque numérique parfaitement organisée !


Pour aller plus loin

  • 🔒 Sécurité : Configurez un reverse proxy (Nginx, Traefik) avec HTTPS
  • 📧 Email : Intégrez fetchmail pour import automatique des pièces jointes
  • 📱 Mobile : Installez l'app Paperless Mobile pour scanner avec votre smartphone
  • 💾 Sauvegarde : Automatisez les backups des dossiers data/, media/ et postgres/
  • 🔄 Automatisation : Créez des règles de traitement pour tag et classement automatiques
  • 🌐 Accès distant : Utilisez Cloudflare Tunnel ou Tailscale pour accès sécurisé depuis l'extérieur

dimanche 26 octobre 2025

Debian 13 (Trixie) – autofs : monter automatiquement un partage réseau CIFS/SMB

Debian 13 (Trixie) – Tutoriel autofs : montage automatique de partages réseau CIFS/SMB

Debian 13 (Trixie) – autofs : monter automatiquement un partage réseau CIFS/SMB

Dans ce tutoriel, je vais vous montrer comment utiliser le démon autofs pour monter automatiquement à la demande un ou plusieurs partages réseau Samba/CIFS sous Debian 13. Cela permet d’exploiter des partages comme ceux d’une box, d’un NAS ou d’un serveur, sans avoir à les monter manuellement à chaque démarrage ou à laisser des montages « persistants » inutilisés.


🧩 Prérequis

  • Une installation fonctionnelle de Debian 13 (Trixie).
  • Un accès root ou un utilisateur avec privilèges sudo.
  • Le ou les serveurs de fichiers accessibles via le réseau (ex : //192.168.x.x/Partage).
  • Les informations d’authentification (nom d’utilisateur + mot de passe) si le partage est protégé.

1️⃣ Installation des paquets

Sous Debian 13, installez les paquets nécessaires :

sudo apt update
sudo apt install autofs cifs-utils
  • autofs : le démon qui gère le montage automatique.
  • cifs-utils : fournit les outils et le support pour les partages CIFS/SMB.

2️⃣ Création des répertoires de base

sudo mkdir -p /mnt/autofs/smb

Vous pouvez évidemment adapter le chemin si vous préférez un autre emplacement.


3️⃣ Configuration de autofs

a) Fichier /etc/auto.master

Éditez le fichier et ajoutez la ligne suivante :

/mnt/autofs/smb  /etc/auto.smb  --ghost,--timeout=30

Explications :

  • /mnt/autofs/smb : répertoire racine des montages automatiques.
  • /etc/auto.smb : fichier de configuration (map).
  • --ghost : affiche les répertoires même avant montage.
  • --timeout=30 : démonte après 30 s d’inactivité.

b) Fichier /etc/auto.smb

Créez ce fichier avec vos partages réseau :

Document     -fstype=cifs,rw,uid=1000,gid=1000,credentials=/root/.creds_qnap,vers=3.0  ://192.168.50.100/Document
GoFlexHome   -fstype=cifs,rw,uid=1000,gid=1000,credentials=/root/.creds_goflex,vers=1.0  ://192.168.50.49/"GoFlex Home Public"
Freebox      -fstype=cifs,rw,uid=1000,gid=1000,credentials=/root/.creds_freebox,vers=3.0  ://192.168.50.254/Freebox

Notes :

  • Les noms (Document, GoFlexHome, etc.) deviennent des sous-répertoires dans /mnt/autofs/smb/.
  • uid=1000,gid=1000 : à adapter selon votre utilisateur.
  • credentials=... : fichier contenant les identifiants.
  • vers=3.0 : version du protocole SMB à forcer (préférée).

c) Fichiers d’identification

Créez un fichier d’identifiants sécurisé pour chaque partage :

sudo nano /root/.creds_qnap

Contenu du fichier :

username=qnapuser
password=leMotDePasse

Protégez-le :

sudo chmod 600 /root/.creds_qnap

Répétez pour les autres fichiers (.creds_goflex, .creds_freebox, etc.).


4️⃣ Test de la configuration

Avant de mettre en service :

sudo automount -f -v

Puis, dans une autre console :

ls /mnt/autofs/smb/Document
ls /mnt/autofs/smb/Freebox

Si le montage s’effectue correctement, redémarrez le service :

sudo systemctl restart autofs

Et activez-le au démarrage :

sudo systemctl enable autofs

5️⃣ Conseils & bonnes pratiques

  • Utilisez vers=3.0 ou vers=2.0 pour plus de sécurité.
  • L’option --timeout=30 démonte après inactivité, pratique pour un usage ponctuel.
  • Vérifiez les permissions uid/gid pour éviter les fichiers appartenant à root.
  • Si vous obtenez une erreur NT_STATUS_ACCESS_DENIED, vérifiez les droits côté serveur.
  • Pour un partage public, utilisez guest,uid=1000,gid=1000 sans credentials.
  • Sur un NAS récent, assurez-vous que SMBv3 est activé.

✅ Conclusion

Avec cette configuration mise à jour pour Debian 13, vous disposez d’un système robuste qui monte automatiquement les partages réseau CIFS/SMB à la demande, sans avoir besoin de fstab statique. Simple, rapide et idéal pour les environnements domestiques ou professionnels.

Article mis à jour en octobre 2025 par FrechDesign pour Debian 13 Trixie.

dimanche 12 octobre 2025

Préparer une Debian 13 minimaliste : la configuration idéale pour un serveur ou une VM

🧾 Base d’installation Debian 13 (Trixie) — configuration minimale et outils indispensables

🎯 Objectif

Préparer une installation Debian 13 moderne, stable et agréable à utiliser, avec un environnement minimal et les utilitaires essentiels pour l’administration système. Le but : une base propre, performante et lisible à chaque connexion.


🧩 1. Installation de Debian 13

Lors de l’installation :
– Choisir installation minimale (sans interface graphique)
– Créer un utilisateur standard (ex. : stagiaire)
– Activer le service SSH pour la gestion à distance.

Debian GNU/Linux 13 srv-docker-01 tty1
srv-docker-01 login:

🔑 2. Activer sudo pour l’utilisateur

su -
apt update
apt install sudo -y
usermod -aG sudo stagiaire

Vérifie :

groups stagiaire
# → doit contenir 'sudo'
sudo whoami
# → root

🧱 3. Activer les dépôts complets Debian 13

sudo nano /etc/apt/sources.list

Ajoute :

deb http://deb.debian.org/debian trixie main contrib non-free-firmware non-free
deb http://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free
deb http://deb.debian.org/debian trixie-updates main contrib non-free-firmware non-free
sudo apt update
sudo apt full-upgrade -y

⚙️ 4. Installer les outils de base

sudo apt install -y \
  curl wget git vim nano htop lsb-release ca-certificates \
  unzip zip tar gnupg apt-transport-https net-tools \
  bash-completion make

Note : le paquet software-properties-common n’existe plus sur Debian 13.


🎨 5. Ajouter un affichage système (logo Debian + infos)

Option A – pfetch

sudo apt install pfetch -y
echo "pfetch" >> ~/.bashrc

Option B – neofetch (compilation manuelle)

git clone https://github.com/dylanaraps/neofetch.git
cd neofetch
sudo make install
echo "neofetch" >> ~/.bashrc

Copie éventuelle dans /usr/local/bin :

sudo cp ~/neofetch/neofetch /usr/local/bin/

🖥️ 6. Installer btop — moniteur système moderne

sudo apt install btop -y
btop
echo "alias top='btop'" >> ~/.bashrc
source ~/.bashrc

btop offre une interface claire, fluide et très lisible pour surveiller CPU, mémoire, réseau et disques.


💡 7. Réglages confort

echo "export LS_OPTIONS='--color=auto'" >> ~/.bashrc
echo "alias ls='ls $LS_OPTIONS'" >> ~/.bashrc
echo "alias ll='ls -lh'" >> ~/.bashrc
source ~/.bashrc

✅ 8. Résumé — ta base Debian 13 est prête

ÉlémentObjectifStatut
Dépôts main/contrib/non-freeAccès complet aux paquets
Utilisateur sudoAdministration sans root permanent
Outils systèmeBase Unix classique
pfetch ou neofetchLogo Debian ASCII à la connexion
btopSupervision moderne
Aliases & couleurs bashConfort d’utilisation

🚀 Résultat final

stagiaire@srv-docker-01
-----------------------
OS: Debian GNU/Linux 13 (trixie)
Kernel: 6.12.48-amd64
Uptime: 1h 12m
CPU: Intel Xeon E5 @ 2.3GHz
RAM: 734MiB / 15936MiB

✨ Conclusion

Tu disposes maintenant d’une base Debian 13 solide, stable et agréable, idéale pour :
– un environnement serveur minimal ;
– un poste d’administration en SSH ;
– ou tout simplement un système Unix clair et rapide à maintenir.

Une Debian propre, lisible et efficace — la meilleure fondation pour tout projet serveur.

jeudi 29 mai 2025

Dockker - 001 - De zéro à HTTPS : Déployer SWAG sur Debian avec Docker et OVH

Installer SWAG sur Debian avec Docker et gérer les DNS OVH

Dans ce tutoriel, découvrez comment installer SWAG (Secure Web Application Gateway) sur une distribution Debian, configurer Docker avec Portainer, et sécuriser vos domaines via les certificats Let's Encrypt avec l'API OVH.

🎯 Objectifs

  • Mettre en place un reverse proxy SWAG avec Docker
  • Gérer les conteneurs via Portainer
  • Sécuriser les domaines avec les certificats OVH + Let's Encrypt

🛠️ Prérequis

  • Machine Debian 12.5 installée
  • Utilisateur avec droits sudo
  • Accès à un compte OVH

🧭 Étapes

1️⃣ Installer Debian et sudo

  1. Installer Debian 12.5 avec l’utilisateur stagiaire.
  2. Installer sudo :
    su -
    apt-get install sudo
    adduser stagiaire sudo
    reboot

2️⃣ Installer Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


3️⃣ Ajouter l’utilisateur au groupe Docker

sudo usermod -aG docker stagiaire
sudo reboot

4️⃣ Installer Portainer (interface Web Docker)

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9443:9443 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.21.1

Accédez à l’interface Web :

https://localhost:9443

5️⃣ Déployer SWAG (Secure Web Application Gateway)

docker volume create swag_data
sudo mkdir -p /volume1/docker/swag/config

Depuis Portainer, déployez l’image linuxserver/swag.

Une fois lancé, stoppez le conteneur pour configurer les certificats.

🔗 Accès :

https://dashboard.portail.domaine.fr/

🔐 Configuration des certificats via l’API OVH

1. Obtenir les clés OVH

Accédez à l’outil d’authentification :

Créer un token API OVH


2. Ajouter les clés dans le fichier ovh.ini

nano /volume1/docker/swag/config/dns-conf/ovh.ini

Collez les clés fournies (endpoint, application_key, application_secret, consumer_key).

3. Redémarrer le container SWAG

docker restart swag

Consultez les logs pour vérifier qu’il n’y a pas d’erreur.

📷 Capture d’écran suggérée : Logs Docker avec message "certificate successfully acquired"

🔒 Activer HTTPS sur Portainer

  1. Ajoutez une entrée DNS locale ou publique pointant vers votre serveur.
  2. Créez une configuration Nginx pour Portainer dans SWAG.
  3. Redémarrez le container SWAG.

📷 Capture d’écran suggérée : Portainer en HTTPS dans le navigateur

📚 Ressources utiles


Article rédigé par Yassin, passionné d’auto-hébergement et d’infra légère.

jeudi 10 avril 2025

Perplexica + Ollama + SearXNG : la solution locale pour interroger vos modèles IA

🧠 Installer Perplexica — Une interface locale pour interroger vos LLMs auto-hébergés !

Perplexica est une interface web qui vous permet d'interroger plusieurs LLMs (comme ceux d’Ollama) et d’enrichir vos réponses avec des résultats issus de moteurs de recherche comme SearXNG. Dans ce tutoriel, nous allons l’installer et la configurer dans un environnement Docker, comme pour Linkwarden !

✅ Prérequis

  • Docker et Portainer sont déjà installés. Si ce n’est pas le cas, suivez ce tutoriel.
  • SWAG est installé. Si ce n’est pas le cas, suivez ce tutoriel.
  • Un nom de domaine du type perplexica.portail.domaine.fr qui pointe vers votre serveur SWAG.
  • L’IP de votre serveur SWAG (ex : 192.168.1.150).
  • Une instance de SearXNG déjà en place (nous allons réutiliser son URL).

🗂️ Étape 1 : Création des dossiers

Ouvrez une console SSH sur votre NAS ou serveur et tapez les commandes suivantes :

sudo mkdir /volume1/docker/perplexica
cd /volume1/docker/perplexica

🔄 Étape 2 : Clonage du dépôt Git

sudo git clone https://github.com/ItzCrazyKns/Perplexica.git
sudo chown stagiaire -R Perplexica/

📝 Étape 3 : Configuration de Perplexica

Renommez le fichier de configuration d’exemple :

mv Perplexica/sample.config.toml Perplexica/config.toml
nano Perplexica/config.toml

Dans ce fichier, modifiez les lignes suivantes pour ajouter l'URL de votre instance Ollama et SearXNG, comme sur la capture :

[MODELS.OLLAMA]
API_URL = "http://host.docker.internal:11434"

[API_ENDPOINTS]
SEARXNG = "http://localhost:32768"

📸 Capture d'écran de la configuration :



🐳 Étape 4 : Docker Compose (sans SearXNG)

Pas besoin d’installer SearXNG si vous l’avez déjà. Modifiez le docker-compose.yml dans le dossier cloné pour enlever le service searxng.

Ouvrir le fichier :

nano Perplexica/docker-compose.yml

Supprimez ou commentez la section searxng: et tout ce qui y est lié (réseaux, volumes, etc).

🚀 Étape 5 : Lancement de l'application

cd Perplexica
docker compose up -d

🌐 Étape 6 : Configuration SWAG pour HTTPS

Ajoutez une configuration nginx dans SWAG :

sudo nano /volume1/docker/swag/config/nginx/proxy-confs/perplexica.subdomain.conf

Collez le contenu de ce gist :
👉 https://gist.github.com/gamersalpha/4fd1bce02f0f1826cdfd7c11b38b624e

Et changez cette ligne :

server_name perplexica.*;

Par votre domaine :

server_name perplexica.portail.domaine.fr;

Puis redémarrez le container SWAG :

docker restart swag

✅ Accès à Perplexica

Vous pouvez maintenant accéder à Perplexica via :

➡️ https://perplexica.portail.domaine.fr

🔗 Liens utiles

samedi 4 janvier 2025

Configurer OPNsense pour Héberger un Serveur ARK: Survival Ascended

Héberger un serveur ARK: Survival Ascended derrière un pare-feu OPNsense peut sembler complexe, mais avec la bonne configuration, c'est tout à fait réalisable. 

Cet article vous guide pas à pas dans la configuration d'OPNsense pour permettre à votre serveur ARK de fonctionner correctement, même dans un environnement de double NAT.


Pré-requis

Avant de commencer, assurez-vous d'avoir les informations suivantes :

  • Adresse IP locale du serveur ARK : par exemple, 192.168.1.120.
  • Adresse IP WAN d'OPNsense : par exemple, 192.168.25.12 (fournie par votre routeur FAI).
  • Les ports nécessaires pour le serveur ARK :
    • UDP 7777 : Port de jeu.
    • UDP 7778 : Port de pair.
    • UDP 27015 : Port de requête.
    • TCP 27020 : Port RCON (optionnel).

Étape 1 : Désactiver la Règle "Block Private Networks"

Lorsque vous utilisez OPNsense derrière un routeur FAI, l'interface WAN d'OPNsense reçoit une adresse IP privée (192.168.x.x). Par défaut, OPNsense bloque le trafic provenant de ces IP sur l'interface WAN.

Procédure :

  1. Accédez à Interfaces > WAN.
  2. Décochez l'option Block private networks.
  3. Cliquez sur Save, puis sur Apply Changes.

Note : Cette étape est indispensable dans un environnement de double NAT. Si vous ne pouvez pas désactiver cette règle, envisagez de mettre votre routeur FAI en mode bridge.


 


Étape 2 : Configurer la Redirection NAT

La redirection NAT (ou "Port Forwarding") permet de transmettre le trafic entrant depuis l'interface WAN vers le serveur ARK.

Ajouter une Règle NAT pour chaque port :

  1. Accédez à Firewall > NAT > Port Forward.
  2. Cliquez sur Add (+).
  3. Configurez les paramètres suivants :
    • Interface : WAN.
    • Protocol : UDP (pour les ports 7777, 7778, et 27015).
    • Destination : WAN address.
    • Destination port range :
      • From : 7777, To : 7777 (ou le port correspondant).
    • Redirect target IP : 192.168.1.120 (adresse IP de votre serveur ARK).
    • Redirect target port : Identique au port d'origine.
    • Description : Exemple : ARK Game Server - UDP 7777.
  4. Cliquez sur Save, puis Apply Changes.

Répétez ces étapes pour chaque port :

  • UDP 7778
  • UDP 27015
  • TCP 27020 (si RCON est utilisé).

Étape 3 : Vérifier les Règles de Pare-feu

OPNsense crée automatiquement des règles de pare-feu associées aux redirections NAT. Pour vérifier :

  1. Allez dans Firewall > Rules > WAN.
  2. Assurez-vous qu'il existe une règle pour chaque port (7777, 7778, 27015, 27020).
    • Si une règle manque, ajoutez-la manuellement :
      • Action : Pass.
      • Protocol : UDP (ou TCP pour RCON).
      • Source : any.
      • Destination : WAN address.
      • Destination port range : Le port à autoriser (par ex. 7777).

Étape 4 : Configurer le Routeur FAI

Si vous êtes en double NAT, votre routeur FAI doit rediriger le trafic entrant vers l'interface WAN d'OPNsense (192.168.25.12).

Ajouter des Règles de Redirection sur le Routeur FAI :

  1. Connectez-vous à l'interface d'administration de votre routeur.
  2. Ajoutez des règles de Port Forwarding pour chaque port mentionné plus haut :
    • UDP 7777 vers 192.168.25.12.
    • UDP 7778 vers 192.168.25.12.
    • UDP 27015 vers 192.168.25.12.
    • TCP 27020 vers 192.168.25.12.
  3. Appliquez les modifications.

Étape 5 : Vérifier la Connectivité

Tester les Ports :

Utilisez un outil comme canyouseeme.org ou nmap pour vérifier si les ports sont accessibles depuis l'extérieur.

Observer les Logs :

  1. Accédez à Firewall > Log Files > Live View.
  2. Vérifiez que les paquets destinés aux ports (par exemple, 7777) sont reçus et transmis à votre serveur ARK.

Étape 6 : Résolution des Problèmes

Si le serveur n'est toujours pas accessible :

  1. Vérifiez les Logs du Pare-feu :
    • Si le trafic est bloqué, vérifiez les règles NAT et pare-feu.
  2. Testez depuis le Réseau Local :
    • Essayez de vous connecter à l'IP locale du serveur ARK (192.168.1.120).
  3. Assurez-vous que le Serveur ARK est Démarré :
    • Vérifiez que les ports nécessaires sont configurés dans le fichier de configuration du serveur ARK.

Conclusion

Avec cette configuration, votre serveur ARK: Survival Ascended devrait être accessible depuis l'extérieur, même avec un pare-feu OPNsense. N'oubliez pas d'ajouter vos captures d'écran pour illustrer chaque étape et de tester minutieusement la configuration.

Si vous avez des questions ou souhaitez partager votre expérience, n'hésitez pas à laisser un commentaire ci-dessous ! 😊

Déployer Paperless-ngx sur Debian 13 avec Docker et Portainer

Installation de Paperless-ngx avec Docker Compose Installation de Paperless-ngx avec Docker Compose Déployez votre GED pers...