Skip to content

PU5KOD/XLX_Installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

364 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 XLX Debian Installer - Documentation

XLX Version Dashboard Version Debian License Maintained

Automated installation script for XLX multi-mode reflectors
Supporting D-Star β€’ C4FM β€’ DMR protocols

Features β€’ Quick Start β€’ Installation β€’ Configuration β€’ User Manager


πŸ“– About the Project

This project simplifies the installation of XLX reflectors with minimal user intervention. Developed by Daniel K. (PU5KOD), this installer automates the setup of the XLX reflector created by LX3JL and includes a customized dark theme dashboard. The goal is to make deploying an XLX reflector easy, reliable, and maintainable!

Upon completion, you'll have a fully functional public D-Star/YSF/DMR XLX reflector with monitoring dashboard! πŸŽ‰

🎯 Key Highlights

  • βœ… No AMBE hardware needed for C4FM and DMR interoperability (since early 2020)
  • βœ… Complete systemd service integration replacing legacy init.d scripts
  • βœ… Dark theme dashboard with improvements and modern UI
  • βœ… Lightweight - it ever runs on Raspberry Pi Zero!
  • βœ… Optional Echo Test (Parrot) service to audio tests
  • βœ… Compatible with Debian 10+ (13 recommended), Ubuntu, RaspiOS, Armbian, etc...
  • βœ… Full uninstall support
  • βœ… Built-in User Manager for whitelist, dashboard access and RadioID database

Note: D-Star integration with other modes still requires AMBE chips. For D-Star-only or YSF/DMR reflectors, no additional hardware is needed.


✨ Features

Feature Description
πŸ”„ Multi-Protocol Native support for D-Star, C4FM (YSF), and DMR
🎨 Custom Dashboard Dark theme with enhanced monitoring capabilities
πŸ”Š Echo Test Optional Parrot service for audio testing
πŸ”’ SSL Ready Automated SSL certificate setup with Certbot
πŸ“Š Real-time Monitoring Live connection tracking and statistics
🌍 YSF Auto-link Configurable automatic linking for YSF
🎯 Auto-update Automatic real-time users database setup
πŸ‘₯ User Manager Terminal tool to manage users, whitelist and passwords

βœ” Dashboard Features

The included dashboard is a dark-theme fork with major improvements:

  • Real-time multi-TX module detection with pulsing highlight animation and live TX timers
  • Live duration counter for connected stations, updating every second without page reload
  • Responsive layout for desktop and mobile
  • 30‑day activity history and module activity chart (via Chart.js, independent 60-second refresh)
  • SQLite operator database (call, name, city) displayed in Recent Activity and Connected Stations tabs
  • Filter-aware auto-refresh β€” pauses when a callsign or module filter is active
  • Browser tab badge showing connected station count and active TX callsign
  • Hidden tabs support and others via config.inc.php

βœ” Systemd Integration

The installer provides native systemd services, replacing original XLXD init.d behavior:

  • xlxd.service
  • xlx_log.service
  • update_XLX_db.service (update timers)
  • xlxecho.service (if Echo Test is enabled)

This brings better reliability, logging, restart behavior, and dependency control.


πŸ“‹ Requirements

Before installation, ensure you have:

  • Debian-based system or VPS with latest updates
  • Stable internet connection with fixed public IP
  • Firewall management capabilities
  • FQDN for dashboard (e.g., xlxbra.net)
  • Unique 3-digit XLX ID (check availability here)

πŸ” Finding Available Reflector Suffixes

Visit any active reflector dashboard to see which XLX suffixes are in use. Any unlisted suffix is available!


πŸ“¦ Installation process

Step 1: Configure Firewall Ports

Before running the installer, ensure all required ports are open and forwarded (see Firewall Configuration).

Step 2: Run Installation

Execute the commands from the Quick Start section above.

Step 3: Configuration Prompts

The installer will request the following information:

# Prompt Example Default
01 3-digit XLX reflector 300, US1, BRA -
02 Dashboard FQDN xlxbra.net -
03 Sysop email address xlxref@gmail.com -
04 Sysop callsign PU5KOD -
05 Reflector country Germany -
06 Time Zone Europe/Berlin Detected
07 Comment for XLX list XLX300 Reflector... -
08 Custom tab name XLXBRA Dashboard... -
09 Custom footnote Maintained by... -
10 Install SSL? Y/N Y
11 Install Echo Test? Y/N Y
12 Number of modules 1-26 5
13 YSF UDP port 1-65535 42000
14 YSF Wires-X frequency (Hz) 433125000 433125000
15 Enable YSF auto-link? Y/N Y
16 YSF auto-link module A-Z C

Step 4: Completion βœ…

The installation proceeds automatically. Once complete, your reflector will be operational and ready to accept connections!


πŸš€ Quick Start

# Update system sudo apt update && sudo apt full-upgrade -y # Install prerequisites sudo apt install git -y # Clone repository cd /usr/src/ sudo git clone https://github.com/PU5KOD/XLX_Installer.git # Run installer cd XLX_Installer/ && sudo chmod +x *.sh sudo ./installer.sh

πŸ›‘οΈ Firewall Configuration

Required Open Ports

Port Type Description
22 TCP SSH
80 TCP HTTP
443 TCP HTTPS
8080 TCP RepNeT
20001-20005 TCP DPlus protocol
40001 TCP ICom G3
8880 UDP DMR+ DMO mode
10001 UDP JSON interface XLX Core
10002 UDP XLX interlink
10100 UDP AMBE controller
10101-10199 UDP AMBE transcoding
12345-12346 UDP ICom Terminal presence/request
20001-20005 UDP DPlus protocol
21110 UDP Yaesu IMRS protocol
30001 UDP DExtra protocol
30051 UDP DCS protocol
40000 UDP Terminal DV
42000 UDP YSF protocol
62030 UDP MMDVM protocol

πŸ“‚ File Locations

Type Location
Installation /xlxd/
Source Folders /usr/src/xlxd/
/usr/src/XLXEcho/
/usr/src/XLX_Dark_Dashboard/
/usr/src/XLX_Installer/
Log Files /var/log/xlxd*
/var/log/xlx.log
/var/log/xlxecho.log
/usr/local/bin/xlx_log.sh
/etc/logrotate.d/xlx_logrotate.conf
Services /etc/systemd/system/xlxd.service
/etc/systemd/system/xlxecho.service
/etc/systemd/system/xlx_log.service
update_XLX_db.service
update_XLX_db.timer
Dashboard /var/www/html/xlxd/
Configuration /var/www/html/xlxd/pgs/config.inc.php
User Manager /xlxd/users_db/reflector_user_manager.sh
RadioID Database /xlxd/users_db/users_base.csv
Whitelist /xlxd/xlxd.whitelist
Dashboard Access /var/www/restricted/.htpasswd

πŸ”§ Managing the Reflector

Service Control

# Start the reflector sudo systemctl start xlxd.service # Stop the reflector sudo systemctl stop xlxd.service # Restart the reflector sudo systemctl restart xlxd.service # Check status sudo systemctl status xlxd.service

Real-time Monitoring

# Watch live logs sudo tail -f /var/log/xlx.log

πŸ‘₯ User Manager

The installer includes reflector_user_manager.sh, a unified terminal tool for all user administration tasks. Instead of running separate scripts, everything is available from a single two-level interactive menu.

sudo /xlxd/users_db/reflector_user_manager.sh

Menu Structure

Main menu β”œβ”€β”€ 1) Database (RadioID) β”‚ β”œβ”€β”€ 1) Add / Edit record β”‚ β”œβ”€β”€ 2) Delete record β”‚ β”œβ”€β”€ 3) List records by Callsign β”‚ β”œβ”€β”€ 4) Search records (filter) β”‚ β”œβ”€β”€ 5) Create / Update SQL database β”‚ └── X) Back └── 2) Access Control β”œβ”€β”€ 1) Add user (whitelist + dashboard) β”œβ”€β”€ 2) Reset password (dashboard) β”œβ”€β”€ 3) Remove user (whitelist + dashboard) β”œβ”€β”€ 4) Look up user (whitelist + dashboard) β”œβ”€β”€ 5) List pending (password not yet changed) β”œβ”€β”€ 6) List whitelist (all callsigns) └── X) Back 

Key Capabilities

Feature Description
πŸ“‹ RadioID Database Add, edit, delete and search records in users_base.csv
πŸ” Filtered Search Case-insensitive partial search by callsign, DMRID, name, city or country β€” with pagination (25 records/page)
πŸ”‘ Password Management Generate and reset secure 12-character dashboard passwords
πŸ“‘ Whitelist Control Add and remove callsigns from xlxd.whitelist with confirmation
πŸ—‚οΈ Whitelist Listing Display all active whitelist entries in auto-sized columns
⏳ Pending List Track users who have not yet changed their initial password
πŸ”„ SQL Sync Trigger create_user_db.php to rebuild the SQLite database from the CSV

For full documentation see REFLECTOR_USER_MANAGER.md.


🎯 Optional Steps

πŸ“ Register Your YSF Reflector

To list your reflector on YSF hosts:

  1. Visit dvref.com
  2. Follow the registration instructions

πŸ”’ Manual SSL Setup

If you skipped automatic SSL during installation:

  1. Visit the Certbot website
  2. Follow the simple instructions
  3. Ensure TCP ports 80 and 443 are open and forwarded

🧹 Uninstall (Full Removal)

To remove all traces of the installation:

cd /usr/src/xlx_installer sudo ./uninstaller.sh

This removes:

  • systemd services
  • dashboard
  • reflector core
  • config files
  • Apache integration
  • cron/timers
  • logs
  • directories

No leftovers.


🀝 Credits & Related Projects

Project Author Description
XLX Reflector LX3JL Original XLX reflector software
XLX Forum Home LX1IQ Official XLX Forum / Support
XLX Dark Dashboard PU5KOD Dark themed XLX dashboard
Original Installer Idea N5AMD Initial Debian installer concept
YSF Registration KC1AWV YSF Reflector registration service
Echo Test Service Narspt XLX Echo Test implementation
SSL Certification Certbot Free SSL/TLS certificates
This Installer PU5KOD Automated installation script

πŸ“ž Support

If you encounter issues or have questions:

  • πŸ“§ Contact the maintainer: PU5KOD
  • πŸ› Open an issue on GitHub
  • πŸ’¬ Join the amateur radio community discussions

πŸ“„ License

This project is open source and available for use by the amateur radio community. MIT License – free to use and modify.


⭐ Community Support

Made with ❀️ by the Amateur Radio Community

⭐ If you find this project useful, please consider starring it on GitHub! Contributions and pull requests are welcome.

About

A script that automates the installation of a XLX multiprotocol / multimode amateur radio reflector (DCS protocol) with integrated echo-test server as well its corresponding personalized dashboard.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages