Ngnix avec OpenWebRX+ sur Raspberry

Transformer son Raspberry Pi OpenWebRX+ en station multi-applications avec Nginx

En tant que radioamateur, vous avez sans doute configuré une image OpenWebRX+ sur votre Raspberry Pi pour écouter le spectre hertzien directement depuis un navigateur web. Par défaut, OpenWebRX écoute sur le port 8073 (par exemple : [http://192.168.1.50:8073](http://192.168.1.50:8073)).

Cependant, dans votre shack, vous aimeriez sûrement ajouter d’autres services par la suite : un tableau de bord météo, un client APRS, un carnet de trafic (logbook) en ligne ou un outil de pilotage de rotor d’antenne. Le problème ? Multiplier les adresses avec des numéros de port différents (:8073, :8080, :5000) devient vite compliqué à retenir.

La solution consiste à installer Nginx pour qu’il agisse comme un proxy inversé (reverse proxy), un véritable « aiguilleur du ciel » numérique.

Pas de panique si Linux ne vous est pas familier : cet article vous guide pas à pas, avec des explications claires et des tests de vérification à chaque étape.

Étape 0 : Le bilan de santé préliminaire (Vérifications avant installation)

Avant d’installer de nouveaux logiciels sur le Raspberry Pi qui fait tourner votre récepteur SDR, il est prudent de vérifier son état de santé. C’est l’équivalent de vérifier le TOS et la tension d’alimentation avant d’allumer un amplificateur !

  1. Connectez-vous en SSH à votre Raspberry Pi :Ouvrez un terminal (sur Linux/Mac) ou PuTTY (sur Windows) et tapez :
    Bashssh pi@<ip_de_votre_pi> (Remplacez <ip_de_votre_pi> par l’adresse IP locale de votre Raspberry Pi, par exemple 192.168.1.50, puis entrez votre mot de passe).
  2. Vérifier l’espace disque disponible :Une carte SD saturée plantera l’installation. Tapez la commande suivante :
    Bashdf -h Regardez la ligne / (ou racine). Assurez-vous d’avoir au moins 1 Go ou 2 Go d’espace libre pour être tranquille.
  3. Vérifier si le port 80 est déjà occupé :Puisque Nginx va utiliser le port HTTP standard (80), vérifions qu’aucun autre service ne l’utilise déjà :
    Bashsudo ss -tulpn | grep :80
    • Si la commande ne renvoie rien : C’est parfait, le port 80 est libre.
    • Si une ligne apparaît : Un autre serveur web tourne peut-être déjà en arrière-plan.
  4. Rafraîchir les listes de paquets (Test de connexion Internet) :
    Bashsudo apt update Cette commande interroge les serveurs officiels pour récupérer les dernières versions logicielles. Si elle s’exécute sans erreur réseau, votre Pi est prêt.

Étape 1 : Qu’est-ce que Nginx et comment l’installer ?

C’est quoi, Nginx ?

Imaginez Nginx comme le standardiste ou le répartiteur d’un grand club radio : il se tient sur le port principal (le port 80, celui du web standard). Quand un visiteur tape l’adresse de votre Raspberry Pi, Nginx regarde ce qui est demandé et redirige silencieusement le trafic vers la bonne application interne (comme OpenWebRX sur le port 8073, ou une future application sur un autre port).

Installation

Installez Nginx via le gestionnaire de paquets de l’OS (qui gère l’installation de manière automatisée) :

Bash

sudo apt install nginx -y
  • Explication des termes :sudo signifie « exécuter en tant qu’administrateur » (root), apt est le gestionnaire de logiciels, install demande l’installation, et -y valide automatiquement les questions de confirmation.

Étape 2 : Le premier grand test (Vérifier que Nginx tourne)

Une fois l’installation terminée, le service doit démarrer automatiquement. Vérifions son état :

Bash

sudo systemctl status nginx
  • Le test de succès : Vous devriez voir du texte avec la mention en vert active (running).
  • Pour quitter cet écran de statut, appuyez sur la touche q de votre clavier.

Test visuel depuis un navigateur :

Ouvrez un navigateur web sur un ordinateur ou un smartphone connecté au même réseau local, puis tapez simplement l’adresse IP de votre Raspberry Pi (ex: [http://192.168.1.50](http://192.168.1.50)).

  • Si vous voyez une page indiquant « Welcome to nginx! », bravo ! Le serveur web de base fonctionne parfaitement.

Étape 3 : Configurer Nginx pour pointer vers OpenWebRX+

Actuellement, Nginx affiche sa page de bienvenue. Nous allons lui dire de renvoyer tout le trafic vers OpenWebRX (qui tourne en local sur le port 8073).

  1. Supprimer la page par défaut de Nginx :
    Bashsudo rm /etc/nginx/sites-enabled/default
  2. Créer un fichier de configuration pour OpenWebRX :
    Bashsudo nano /etc/nginx/sites-available/openwebrx (L’éditeur de texte nano s’ouvre dans votre terminal).
  3. Coller le bloc de configuration suivant :Utilisez le clic droit ou Ctrl+Shift+V pour coller ce texte dans le terminal :
    Nginxserver { listen 80; server_name _; location / { proxy_pass http://127.0.0.1:8073; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
    • Note technique essentielle pour la radio : Les lignes contenant Upgrade et Connection "upgrade" sont indispensables. OpenWebRX utilise des WebSockets permanents pour transmettre en temps réel le flux audio et le waterfall (le spectre radio). Sans ces lignes, l’interface figerait.
  4. Enregistrer et quitter nano :
    • Appuyez sur Ctrl + O puis sur Entrée pour enregistrer.
    • Appuyez sur Ctrl + X pour quitter l’éditeur.
  5. Activer la configuration :On crée un lien symbolique pour indiquer à Nginx que ce site est actif :
    Bashsudo ln -s /etc/nginx/sites-available/openwebrx /etc/nginx/sites-enabled/

Étape 4 : Le coin du dépannage (Tests de robustesse et débogage)

En radio, on vérifie toujours son montage avant d’appuyer sur la pédale PTT. En informatique, c’est pareil : il faut tester la syntaxe de configuration avant de redémarrer le serveur.

Test 1 : Le « TOSmètre » de Nginx (Vérification de la syntaxe)

Tapez la commande de test :

Bash

sudo nginx -t
  • Résultat attendu :nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
  • En cas d’erreur : Nginx vous indiquera précisément le numéro de ligne où se trouve l’erreur (souvent un point-virgule ; oublié dans le fichier de configuration).

Test 2 : Recharger le service proprement

Si le test de syntaxe est validé, appliquez les modifications en rechargeant Nginx :

Bash

sudo systemctl reload nginx

Test 3 : En cas de panne (Que faire si la page ne s’affiche pas ?)

Si en tapant l’adresse IP de votre Pi vous obtenez une erreur de type « 502 Bad Gateway » ou que la page ne charge pas :

  1. Vérifiez qu’OpenWebRX tourne toujours en arrière-plan :
    Bashsudo systemctl status openwebrx
  2. Consultez les journaux d’erreurs (logs) de Nginx pour comprendre le problème :
    Bashsudo tail -n 20 /var/log/nginx/error.log Cette commande affiche les 20 dernières lignes du journal d’erreurs, ce qui vous mettra immédiatement sur la piste (problème de port, erreur de frappe, etc.).

Étape 5 : Préparer l’avenir pour vos autres applications web

Désormais, lorsque vous tapez simplement l’adresse IP de votre Raspberry Pi dans votre navigateur (ex: [http://192.168.1.50](http://192.168.1.50)), Nginx intercepte la requête sur le port 80 et affiche directement votre interface OpenWebRX, sans avoir besoin d’ajouter :8073.

Le port 80 étant maintenant géré de main de maître par Nginx, vous êtes dans une position idéale pour le futur :

  • Quand vous installerez un nouvel outil web (un dashboard de suivi météo, un logbook partagé, etc.), il vous suffira de le faire tourner sur un port interne distinct (ex: port 8080).
  • Vous créerez un nouveau fichier de configuration dans Nginx (ou utiliserez des sous-dossiers / sous-domaines) pour aiguiller proprement les requêtes.

Bonne installation, bons bricolages informatiques et 73 à tous !

Voici une FAQ (Foire aux Questions) en 10 points pour vous accompagner dans l’installation et la compréhension de Nginx sur votre Raspberry Pi OpenWebRX+ :

1. Pourquoi installer Nginx alors qu’OpenWebRX+ fonctionne déjà très bien tout seul ?

OpenWebRX+ écoute par défaut sur le port 8073. Nginx agit comme un proxy inversé (un aiguilleur) qui centralise tout le trafic sur le port HTTP standard (80). Cela vous évite d’avoir à taper des numéros de port à rallonge et vous prépare à héberger d’autres applications sur le même Raspberry Pi.

2. Ai-je besoin de compétences avancées en programmation ou sous Linux pour réaliser cette installation ?

Non, absolument pas. Le tutoriel est conçu pour être accessible à tous les radioamateurs. Il vous suffit d’utiliser un terminal pour copier-coller les commandes indiquées, chaque étape étant expliquée en détail pour comprendre son rôle (un peu comme le manuel d’un kit radio).

3. Pourquoi est-il indispensable de faire un bilan de santé préliminaire (Étape 0) ?

C’est l’équivalent de vérifier le TOS et l’alimentation avant d’allumer un amplificateur. Vérifier l’espace disque (df -h) et l’occupation du port 80 évite les pannes d’installation dues à une carte SD saturée ou à un conflit de port.

4. Que faire si le port 80 est déjà utilisé par un autre service sur mon Raspberry Pi ?

Si la commande de vérification du port 80 renvoie un résultat, cela signifie qu’un autre serveur web (comme Apache) tourne déjà. Il faudra soit désinstaller ce service concurrent, soit l’arrêter pour libérer la place indispensable à Nginx.

5. À quoi servent les lignes Upgrade et Connection "upgrade" dans la configuration Nginx d’OpenWebRX ?

Ces lignes sont cruciales pour la radio logicielle. OpenWebRX utilise des WebSockets permanents pour actualiser en temps réel le waterfall (spectre) et diffuser l’audio. Sans ces instructions, l’interface web figerait ou n’afficherait pas le spectre correctement.

6. Comment puis-je m’assurer que ma configuration Nginx ne contient pas d’erreur avant de l’appliquer ?

Avant de redémarrer le serveur, vous devez lancer le test de syntaxe avec la commande sudo nginx -t. C’est le « TOSmètre » de Nginx : il valide la syntaxe et vous signale précisément la ligne en erreur (un oubli de point-virgule par exemple) si le fichier a été mal modifié.

7. J’obtiens une erreur « 502 Bad Gateway » en essayant d’accéder à OpenWebRX, que se passe-t-il ?

Cette erreur indique que Nginx est bien démarré, mais qu’il ne parvient pas à communiquer avec OpenWebRX. Vérifiez en priorité que le service OpenWebRX tourne toujours en arrière-plan à l’aide de la commande sudo systemctl status openwebrx.

8. Où puis-je trouver de l’aide ou lire les journaux de bord (logs) en cas de panne ?

En cas de dysfonctionnement, Nginx enregistre tout dans un journal. Vous pouvez afficher les 20 dernières erreurs enregistrées avec la commande :

Bash

sudo tail -n 20 /var/log/nginx/error.log

Cela vous donnera un indice précieux sur la nature du problème.

9. Comment pourrai-je ajouter une nouvelle application web (ex: un carnet de trafic ou un suivi météo) par la suite ?

Il vous suffira de lancer votre nouvelle application sur un port interne distinct (par exemple le port 8080), puis de créer un nouveau fichier de configuration dans Nginx pour rediriger le trafic vers ce port via un sous-dossier ou un sous-domaine.

10. Nginx me permettra-t-il de sécuriser l’accès à mon Raspberry Pi depuis l’extérieur de chez moi ?

Oui. Nginx est la brique de base incontournable si vous souhaitez plus tard installer un certificat de sécurité SSL/TLS (HTTPS) via des outils comme Certbot, ou ajouter une protection par mot de passe pour vos applications.