🛰️ Installation complète d'un réflecteur YSFReflector sur VPS Infomaniak – Ce guide vous permettra d'installer et configurer votre propre réflecteur System Fusion (C4FM) hébergé en Suisse, avec dashboard web, HTTPS et enregistrement officiel sur DVRef. Compatible Debian 11/12 et Ubuntu 22.04/24.04.
📡 Qu'est-ce qu'un Réflecteur YSF ?
Un réflecteur YSF (Yaesu System Fusion) est un serveur qui permet de connecter plusieurs stations radioamateurs utilisant le mode numérique C4FM de Yaesu via Internet. Il agit comme un point de rencontre central où tous les utilisateurs connectés peuvent communiquer ensemble, créant ainsi des "salles" de discussion mondiales.
🎯 Principe de fonctionnement : Lorsqu'un radioamateur transmet sur sa radio connectée au réflecteur, le signal est instantanément redistribué à tous les autres utilisateurs connectés, permettant des QSO en groupe à l'échelle mondiale.
Pourquoi pYSFReflector ?
Ce tutoriel utilise pYSFReflector, développé par IU5JAE. C'est une version Python moderne qui remplace l'ancienne version C++ de G4KLX.
🐍 Python Moderne
Pas besoin de compiler du C++, installation directe et simple
✅ Compatible
Fonctionne avec Pi-Star, WPSD et toutes les radios YSF
🔄 Maintenu
Mises à jour régulières et corrections de bugs actives
💪 Stable
Meilleure gestion des connexions, moins de crashes
🇨🇭 Pourquoi Infomaniak ?
Infomaniak est un hébergeur suisse de référence, particulièrement adapté pour héberger un réflecteur radioamateur :
Protection des données optimale
Datacenters écologiques certifiés
Infrastructure SSD NVMe
À partir de 7 CHF/mois
📋 Prérequis
Configuration VPS Minimale
- 1 vCPU
- 1 GB RAM
- 10 GB SSD
- Système : Debian 12 ou Ubuntu 24.04 LTS (recommandé)
Informations à Préparer
📝 Avant de commencer, ayez sous la main :
- Nom du réflecteur : Maximum 16 caractères (ex: "HB9 SUISSE")
- Description : Maximum 14 caractères (ex: "Reflecteur CH")
- Votre email : Pour l'enregistrement DVRef et Let's Encrypt
- Votre indicatif : Indicatif radioamateur valide
- Nom de domaine : Optionnel mais recommandé pour HTTPS
🚀 Installation Étape par Étape
1. Préparation du Serveur
Connectez-vous en SSH à votre VPS Infomaniak :
ssh utilisateur@votre-ip-vps
Mettez à jour le système :
sudo apt update sudo apt upgrade -y
Installez les outils de base :
sudo apt install -y git curl wget nano ufw
Créez le répertoire de travail :
cd ~ mkdir ysf-install cd ysf-install
2. Installation de Python et Dépendances
Installez Python 3 :
sudo apt install -y python3 python3-pip python3-venv
Vérifiez l'installation :
python3 --version
💡 Version attendue : Python 3.9 ou supérieur (généralement 3.11 sur Debian 12 / Ubuntu 24.04)
Installation des Bibliothèques Python
⚠️ Problème courant : "externally-managed-environment"
Si vous obtenez cette erreur avec pip, utilisez l'une des 3 méthodes ci-dessous.
Méthode 1 : Via les paquets système (RECOMMANDÉE)
sudo apt install -y python3-aprslib python3-tinydb
Pour la bibliothèque "threaded" qui n'est pas dans les dépôts :
sudo pip3 install threaded --break-system-packages
🚨 ATTENTION CRITIQUE : Les tirets
Utilisez bien DEUX TIRETS -- (tirets courts) et NON un tiret long –. Si vous copiez-collez depuis un document PDF ou Word, vérifiez ce point ! Un tiret long fera échouer la commande.
Méthode 2 : Installation complète avec pip
Si python3-tinydb n'est pas disponible :
sudo pip3 install aprslib --break-system-packages sudo pip3 install tinydb --break-system-packages sudo pip3 install threaded --break-system-packages
Méthode 3 : Configuration permanente de pip
sudo mkdir -p /root/.config/pip sudo nano /root/.config/pip/pip.conf
Ajoutez ces lignes dans le fichier :
[global] break-system-packages = true
Sauvegardez avec Ctrl+O, Entrée, puis quittez avec Ctrl+X.
Maintenant vous pouvez installer sans le flag :
sudo pip3 install aprslib tinydb threaded
Vérifiez que les bibliothèques sont installées :
pip3 list | grep -E "aprslib|tinydb|threaded"
3. Installation de pYSFReflector
Téléchargez pYSFReflector depuis GitHub :
cd ~/ysf-install git clone https://github.com/iu5jae/pYSFReflector.git
Créez les répertoires nécessaires :
sudo mkdir -p /opt/ysfreflector sudo mkdir -p /var/log/ysfreflector sudo mkdir -p /usr/local/etc
Copiez les fichiers :
cd pYSFReflector sudo cp YSFReflector /opt/ysfreflector/ sudo cp YSFReflector.ini /opt/ysfreflector/ sudo chmod +x /opt/ysfreflector/YSFReflector
Créez le fichier deny.db :
sudo touch /usr/local/etc/deny.db sudo chmod 644 /usr/local/etc/deny.db
⚠️ Fichier critique : Sans ce fichier deny.db, pYSFReflector génère une erreur au démarrage. Ce fichier contient la liste des utilisateurs bloqués (vide au départ).
Définissez les permissions des logs :
sudo chown -R $USER:$USER /var/log/ysfreflector
4. Configuration de YSFReflector
Éditez le fichier de configuration principal :
sudo nano /opt/ysfreflector/YSFReflector.ini
💡 Raccourcis nano :
- Ctrl+O puis Entrée : Sauvegarder
- Ctrl+X : Quitter
- Ctrl+W : Rechercher
Modifiez la section [General] :
[General] Id=00000 Name=HB9 SUISSE Description=Reflecteur CH
💡 Explications :
Id=00000: Laissez à zéro pour l'instant. Vous le changerez après l'enregistrement sur DVRefName: Maximum 16 caractères (espaces compris)Description: Maximum 14 caractères
Vérifiez la section [Network] :
[Network] Port=42000
⚠️ Port standard YSF : Le port 42000/UDP est le port standard pour YSF. Ne le changez pas sauf nécessité absolue, car cela pourrait causer des problèmes de compatibilité.
Vérifiez la section [Log] :
[Log] FilePath=/var/log/ysfreflector FileRoot=YSFReflector FileLevel=1 DisplayLevel=1 FileRotate=1
Sauvegardez le fichier : Ctrl+O, Entrée, Ctrl+X
5. Installation du Dashboard Web
Pour Ubuntu 24.04 / Debian 12 :
sudo apt install -y apache2 php libapache2-mod-php php-mbstring php-xml php-curl
Pour Ubuntu 22.04 / Debian 11 :
sudo apt install -y apache2 php libapache2-mod-php php8.1-mbstring php8.1-xml php8.1-curl
Activez et démarrez Apache :
sudo systemctl enable apache2 sudo systemctl start apache2
Téléchargez le Dashboard :
cd ~/ysf-install git clone https://github.com/dg9vh/YSFReflector-Dashboard.git
Installez le Dashboard :
sudo rm -rf /var/www/html/* sudo cp -R YSFReflector-Dashboard/* /var/www/html/ sudo rm -f /var/www/html/index.html
Créez le fichier de configuration :
sudo mkdir -p /var/www/html/config sudo nano /var/www/html/config/config.php
Copiez ce contenu (adaptez l'URL à votre situation) :
<?php
// Chemins (SANS slash final)
define("LOGPATH", "/var/log/ysfreflector");
define("LOGPREFIX", "YSFReflector");
define("INIPATH", "/opt/ysfreflector");
define("INIFILENAME", "YSFReflector.ini");
define("REFL_PATH", "/opt/ysfreflector");
// Compatibilité anciennes versions
define("YSFREFLECTORLOGPATH", "/var/log/ysfreflector");
define("YSFREFLECTORLOGPREFIX", "YSFReflector");
define("YSFREFLECTORINIPATH", "/opt/ysfreflector");
define("YSFREFLECTORINIFILENAME", "YSFReflector.ini");
define("YSFREFLECTORPATH", "/opt/ysfreflector");
// Paramètres d'affichage
define("REFRESHAFTER", "10");
define("LOGO", "");
define("URL", "http://votre-domaine.com");
define("LOCALE", "fr_CH.utf8");
define("TIMEZONE", "Europe/Zurich");
// Fonctionnalités
define("SHOWSYSINFO", "1");
define("SHOWNETINFO", "1");
define("ENABLEXTDLOOKUP", "1");
define("QRZAPIKEY", "");
define("SHOWLH", "1");
define("LHLINES", "20");
define("DMRIDDATPATH", ".");
define("ENABLEYSFGATEWAY", "0");
?>Sauvegardez et définissez les permissions :
sudo chown -R www-data:www-data /var/www/html/ sudo chmod -R 755 /var/www/html/ sudo chmod 644 /var/www/html/config/config.php sudo systemctl restart apache2
6. Configuration du Pare-feu (CRITIQUE)
🚨 CRUCIAL : DEUX pare-feu à configurer
Il y a DEUX pare-feu à configurer obligatoirement :
- Pare-feu UFW : Sur votre serveur Linux
- Pare-feu Infomaniak : Dans le panneau de contrôle web
Si vous n'en configurez qu'un seul, le dashboard ne sera PAS accessible depuis Internet !
Partie 1 : Pare-feu UFW (sur le serveur)
🚨 ATTENTION : Autorisez SSH EN PREMIER !
Autorisez SSH AVANT d'activer UFW, sinon vous serez bloqué et ne pourrez plus accéder à votre serveur !
sudo ufw allow 22/tcp sudo ufw allow 42000/udp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status verbose
💡 Ports expliqués :
- 22/tcp : SSH - Accès distant au serveur (CRITIQUE)
- 42000/udp : YSFReflector - Trafic radio System Fusion
- 80/tcp : HTTP - Dashboard web
- 443/tcp : HTTPS - Dashboard sécurisé
Partie 2 : Pare-feu Infomaniak (panneau web)
- Connectez-vous à manager.infomaniak.com
- Allez dans Cloud & Serveurs → Public Cloud
- Sélectionnez votre VPS
- Cliquez sur Pare-feu dans le menu latéral
- Ajoutez ces 4 règles :
- Port 22/TCP - Protocole TCP - Source: Partout - Action: Autoriser
- Port 42000/UDP - Protocole UDP - Source: Partout - Action: Autoriser
- Port 80/TCP - Protocole TCP - Source: Partout - Action: Autoriser
- Port 443/TCP - Protocole TCP - Source: Partout - Action: Autoriser
- Sauvegardez les modifications
7. Configuration du Service Systemd
Créez le fichier service :
sudo nano /etc/systemd/system/ysfreflector.service
Copiez ce contenu :
[Unit] Description=YSFReflector Service After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/ysfreflector ExecStart=/usr/bin/python3 /opt/ysfreflector/YSFReflector /opt/ysfreflector/YSFReflector.ini Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Sauvegardez, puis activez et démarrez le service :
sudo systemctl daemon-reload sudo systemctl enable ysfreflector.service sudo systemctl start ysfreflector.service sudo systemctl status ysfreflector.service
✅ Service actif : Vous devez voir active (running) en vert. Si c'est le cas, votre réflecteur fonctionne !
Commandes Utiles
sudo systemctl status ysfreflector.service: Voir le statutsudo systemctl restart ysfreflector.service: Redémarrersudo journalctl -u ysfreflector.service -f: Logs en temps réel
Test du Dashboard
Ouvrez votre navigateur et allez sur : http://votre-ip-vps/
Vous devriez voir le dashboard avec les informations de votre réflecteur !
📝 Enregistrement sur DVRef
⚠️ Important : L'enregistrement se fait maintenant UNIQUEMENT sur DVRef.com. L'ancien registre YSFReflector.de n'est plus maintenu depuis juin 2024.
Procédure d'Enregistrement
- Allez sur https://dvref.com/ysf/new
- Remplissez le formulaire :
- Name : Nom de votre réflecteur (ex: "HB9 SUISSE")
- Description : Description courte
- Country : Code pays (CH, FR, BE, etc.)
- FQDN/IP : Votre IP ou nom de domaine
- Port : 42000
- Email : Votre adresse email
- Callsign : Votre indicatif radioamateur
- Validez le formulaire
- Vous recevrez un email de confirmation
- Cliquez sur le lien dans l'email pour activer
- Notez votre ID à 5 chiffres (ex: 12345)
Mise à Jour de la Configuration
Éditez le fichier de configuration :
sudo nano /opt/ysfreflector/YSFReflector.ini
Modifiez la ligne Id :
[General] Id=12345 Name=HB9 SUISSE Description=Reflecteur CH
Remplacez 12345 par votre ID réel. Sauvegardez et redémarrez :
sudo systemctl restart ysfreflector.service
⏱️ Délai de propagation : Votre réflecteur apparaîtra dans les listes Pi-Star et WPSD sous 24 à 48 heures. C'est normal, la propagation DNS prend du temps.
🔒 Configuration HTTPS avec Let's Encrypt
⚠️ Nom de domaine requis : Pour HTTPS, vous devez avoir un nom de domaine pointant vers votre VPS. Une simple adresse IP ne suffit pas.
Installation de Certbot
sudo apt update sudo apt install -y certbot python3-certbot-apache
Obtention du Certificat SSL
sudo certbot --apache -d ysf.votredomaine.com
Remplacez ysf.votredomaine.com par votre vrai nom de domaine. Répondez aux questions :
- Email : Entrez votre email
- Terms of Service : Tapez
Y - Share email :
YouN(optionnel) - Redirect HTTP to HTTPS : Choisissez
2pour rediriger automatiquement
Vérification
sudo certbot certificates
Mise à Jour du Dashboard
sudo nano /var/www/html/config/config.php
Modifiez la ligne URL :
define("URL", "https://ysf.votredomaine.com");Sauvegardez et redémarrez Apache :
sudo systemctl restart apache2
Testez : https://ysf.votredomaine.com - Vous devriez voir un cadenas vert dans la barre d'adresse !
🔒 HTTPS activé : Votre dashboard est maintenant sécurisé. Le certificat se renouvellera automatiquement tous les 60 jours via un cron job automatique de Certbot.
🎨 Personnalisation du Dashboard
Ajouter un Logo
Uploadez votre logo (PNG, 200x200px recommandé) :
scp logo.png utilisateur@votre-ip:/home/utilisateur/ ssh utilisateur@votre-ip sudo mv ~/logo.png /var/www/html/logo.png sudo chown www-data:www-data /var/www/html/logo.png
Activez-le dans la configuration :
sudo nano /var/www/html/config/config.php
define("LOGO", "logo.png");Modifier le Nom et la Description
sudo nano /opt/ysfreflector/YSFReflector.ini
[General] Id=12345 Name=MON REFLECTEUR YSF Description=Ma description
Redémarrez le réflecteur :
sudo systemctl restart ysfreflector.service
🔧 Maintenance
Maintenance Mensuelle Recommandée
sudo apt update sudo apt upgrade -y sudo apt autoremove -y
Vérifier l'Espace Disque
df -h
Nettoyer les Anciens Logs
sudo find /var/log/ysfreflector/ -name "*.log" -mtime +30 -delete
Sauvegarde de la Configuration
mkdir -p ~/backups sudo cp /opt/ysfreflector/YSFReflector.ini ~/backups/YSFReflector.ini.$(date +%Y%m%d) sudo cp /var/www/html/config/config.php ~/backups/config.php.$(date +%Y%m%d)
🔧 Dépannage
Problème 1 : Dashboard Page Blanche
sudo tail -50 /var/log/apache2/error.log sudo systemctl status ysfreflector.service ls -la /var/log/ysfreflector/
Problème 2 : Service Ne Démarre Pas
sudo journalctl -u ysfreflector.service -n 100
Si erreur "deny.db not found" :
sudo touch /usr/local/etc/deny.db sudo chmod 644 /usr/local/etc/deny.db sudo systemctl restart ysfreflector.service
Problème 3 : Dashboard Inaccessible
Vérifiez les deux pare-feu :
sudo ufw status | grep 80 sudo systemctl status apache2
Vérifiez aussi dans le panneau Infomaniak que les ports 80 et 443 sont ouverts.
Problème 4 : Pas Visible dans Pi-Star
Checklist :
- ✓ Enregistré sur DVRef.com ?
- ✓ Email de confirmation activé ?
- ✓ ID mis à jour dans YSFReflector.ini ?
- ✓ Port 42000/UDP ouvert (UFW + Infomaniak) ?
- ✓ Service ysfreflector running ?
- ✓ Attendu au moins 24-48h ?
🎯 Conclusion
🎉 Félicitations !
Votre réflecteur YSF est maintenant opérationnel sur votre VPS Infomaniak. Vous disposez d'un serveur professionnel avec dashboard web, HTTPS sécurisé, et enregistrement officiel sur DVRef.
pYSFReflector installé et configuré
Interface accessible 24/7
HTTPS et pare-feu double couche
Visible dans Pi-Star/WPSD
Ressources Utiles
- DVRef.com - Registre officiel YSF
- pYSFReflector sur GitHub
- Dashboard sur GitHub
- Infomaniak VPS
- Let's Encrypt