Installation d'un Réflecteur XLX Multi-mode

YSF, DMR, D-Star, C4FM sur Ubuntu 22.04 / 24.04 ou Debian 12

Guide complet et mis à jour - Octobre 2025

1. Introduction

Qu'est-ce que XLX ?

XLX est un réflecteur multiprotocole et multi-mode pour les modes numériques de radioamateur. Il permet de créer un serveur qui supporte simultanément :

  • D-Star (avec les protocoles DPlus/REF, DCS, DExtra/XRF)
  • DMR (Digital Mobile Radio)
  • YSF/C4FM (Yaesu System Fusion)

Avantages de XLX

  • Multi-mode natif : Les utilisateurs DMR et YSF peuvent communiquer sans matériel de transcodage
  • Jusqu'à 26 modules (salles A à Z)
  • Tableau de bord en temps réel
  • Interconnexion possible entre réflecteurs
  • Open source et compatible Pi-Star
Pour permettre la communication entre D-Star et les autres modes, vous aurez besoin de puces AMBE matérielles (environ 90€ l'unité, minimum 2 requises). DMR ↔ YSF fonctionne nativement depuis 2020.

2. Prérequis

Serveur

  • Serveur VPS ou dédié avec Ubuntu 22.04/24.04 ou Debian 12
  • CPU : 1-2 vCPU minimum
  • RAM : 1-2 Go minimum
  • Stockage : 20 Go minimum
  • Fournisseurs recommandés : Linode, DigitalOcean, OVH (5€/mois)

Réseau

  • Adresse IP publique fixe (IPv4 obligatoire)
  • Nom de domaine complet (FQDN) : exemple xlx.votre-domaine.fr
  • Ports réseau accessibles

Numéro XLX

Choisissez un numéro à 3 chiffres (000-999) non utilisé. Vérifiez sur : https://xlx.n5amd.com/index.php?show=reflectors

Utilisez UNIQUEMENT des chiffres, pas de lettres. Votre réflecteur s'appellera XLX###.

3. Préparation du système

Connexion au serveur

ssh root@votre-serveur.com

Mise à jour du système

sudo apt update -y sudo apt upgrade -y sudo apt dist-upgrade -y

Création d'un utilisateur administrateur

apt install sudo -y adduser votre-callsign usermod -aG sudo votre-callsign su - votre-callsign cd ~
À partir de maintenant, utilisez cet utilisateur pour toutes les commandes.

4. Installation des dépendances

sudo apt install -y \ git git-core apache2 php libapache2-mod-php \ php-cli php-xml php-mbstring php-curl php-mysql \ build-essential g++ make ufw certbot python3-certbot-apache

Vérification des versions

php -v # PHP 8.x apache2 -v # Apache 2.4.x gcc -v # GCC 11.x ou supérieur

5. Téléchargement et configuration de XLX

Téléchargement des sources

cd ~ git clone https://github.com/LX3JL/xlxd.git cd xlxd/src nano main.h

Paramètres à modifier dans main.h

1. Activation de l'auto-link YSF

Changez :

#define YSF_AUTOLINK_ENABLE 0

En :

#define YSF_AUTOLINK_ENABLE 1

2. Adresse IP du serveur

Trouvez votre IP :

curl ifconfig.me

Puis modifiez :

#define IP_ADDRESS "123.45.67.89" // Votre IP publique

3. Nombre de modules (optionnel)

#define NB_OF_MODULES 26 // Pour activer A-Z

Sauvegardez : Ctrl + X, puis Y, puis Entrée

6. Compilation du réflecteur

make clean make sudo make install sudo chmod +x /xlxd/xlxd

Téléchargement de la base DMR ID

sudo wget -O /xlxd/dmrid.dat http://xlxapi.rlx.lu/api/exportdmr.php

7. Configuration du service système

sudo cp ~/xlxd/scripts/xlxd /etc/init.d/xlxd sudo nano /etc/init.d/xlxd

Modifiez la ligne ARGUMENTS :

ARGUMENTS="XLX### votre.ip.publique 127.0.0.1"

Exemple :

ARGUMENTS="XLX123 203.0.113.45 127.0.0.1"

Activation :

sudo update-rc.d xlxd defaults

8. Installation du tableau de bord web

sudo cp -r ~/xlxd/dashboard /var/www/xlxd sudo nano /var/www/xlxd/pgs/config.inc.php

Paramètres essentiels

1. Informations de contact

$PageOptions['ContactEmail'] = 'votre-email@domaine.com'; $PageOptions['MetaDescription'] = 'XLX### - Réflecteur Multi-mode'; $PageOptions['MetaAuthor'] = 'VOTRE-CALLSIGN';

2. Configuration Calling Home (IMPORTANT)

$CallingHome['Active'] = true; $CallingHome['MyDashBoardURL'] = 'xlx.votre-domaine.fr'; $CallingHome['Country'] = 'FR'; $CallingHome['Comment'] = 'Réflecteur Multi-mode Français'; $CallingHome['HashFile'] = '/xlxd/callinghome.php';
$CallingHome['Active'] DOIT être à true pour apparaître dans les listes publiques.

Attribution des permissions

sudo chown -R www-data:www-data /var/www/xlxd/ sudo chown -R www-data:www-data /xlxd/

9. Configuration du serveur web Apache

sudo nano /etc/apache2/sites-available/xlx.votre-domaine.fr.conf

Contenu :

<VirtualHost *:80> ServerName xlx.votre-domaine.fr ServerAdmin votre-email@domaine.com DocumentRoot /var/www/xlxd <Directory /var/www/xlxd> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>

Activation :

sudo a2ensite xlx.votre-domaine.fr.conf sudo systemctl reload apache2

10. Configuration du pare-feu

Ports TCP

sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS sudo ufw allow 22/tcp # SSH sudo ufw allow 10001/tcp # XLX Core sudo ufw allow 10002/tcp # Interconnexion sudo ufw allow 42000/tcp # YSF sudo ufw allow 30001/tcp # DExtra sudo ufw allow 20001/tcp # DPlus sudo ufw allow 30051/tcp # DCS

Ports UDP

sudo ufw allow 8880/udp # DMR+ sudo ufw allow 10001/udp # XLX sudo ufw allow 42000/udp # YSF sudo ufw allow 30001/udp # DExtra sudo ufw allow 20001/udp # DPlus sudo ufw allow 30051/udp # DCS

Activation :

sudo ufw enable sudo ufw status verbose
Pour les VPS cloud, ouvrez aussi ces ports dans le pare-feu du fournisseur.

11. Démarrage et vérification

sudo service xlxd start sudo systemctl status xlxd sudo chown -R www-data:www-data /var/log/xlxd.xml sudo systemctl restart apache2

Test du tableau de bord

http://xlx.votre-domaine.fr

Vous devriez voir votre réflecteur XLX### avec la version v2.5.3.

12. Configuration SSL (recommandé)

sudo apt install certbot python3-certbot-apache -y sudo certbot --apache -d xlx.votre-domaine.fr sudo certbot renew --dry-run
Accédez maintenant à https://xlx.votre-domaine.fr

13. Enregistrement dans les listes publiques

Avec $CallingHome['Active'] = true, votre réflecteur s'enregistre automatiquement.

Délai : 2 à 48 heures pour apparaître dans les listes publiques.

Vérifiez sur : https://xlx.n5amd.com/index.php?show=reflectors

14. Dépannage

Le service ne démarre pas

sudo journalctl -u xlxd -n 50 cat /etc/init.d/xlxd ls -la /xlxd/xlxd sudo chmod +x /xlxd/xlxd

Le tableau de bord est vide

sudo systemctl status apache2 sudo chown -R www-data:www-data /var/www/xlxd/ sudo tail -f /var/log/apache2/xlx-error.log

Pas dans les listes

  1. Vérifier $CallingHome['Active'] = true
  2. Vérifier le FQDN
  3. Attendre 24-48 heures
  4. Vérifier les logs

15. Maintenance

Mise à jour de XLX

sudo systemctl stop xlxd cd ~/xlxd && git pull cd src && make clean && make sudo make install sudo systemctl start xlxd

Mise à jour base DMR

sudo wget -O /xlxd/dmrid.dat http://xlxapi.rlx.lu/api/exportdmr.php sudo systemctl restart xlxd

16. Connexion au réflecteur

Depuis Pi-Star (D-Star)

  1. Configuration → Expert → MMDVMHost
  2. Section D-Star Network :
    • Protocole : XLX
    • Hostname : xlx.votre-domaine.fr
    • Port : 30001
    • Module : B

Codes DTMF

  • *###A → Module A
  • *###B → Module B
  • *U → Déconnexion

17. Conclusion

Félicitations ! Votre réflecteur XLX multi-mode est opérationnel.

Prochaines étapes

  1. Testez avec votre hotspot
  2. Configurez des modules dédiés
  3. Ajoutez du transcodage AMBE si nécessaire
  4. Promouvez votre réflecteur

Bonnes pratiques

  • Documentez votre configuration
  • Mettez à jour régulièrement
  • Surveillez les logs
  • Maintenez la sécurité (SSL, updates)
  • Partagez vos connaissances
73 et bon trafic sur votre nouveau réflecteur XLX !