A high-performance, mode-agnostic real-time dashboard for P25, YSF, and NXDN reflectors. Optimized for the MMDVM ecosystem.
- Universal Mode Support: Automatically detects and parses logs for P25, YSF, and NXDN using a unified log ingestion engine.
- Triple-Check Discovery Engine: The
setup.phpwizard automatically identifies your infrastructure by scanning binaries,.iniheaders, and filename patterns simultaneously. - Multi-Tenant Switcher: Host unlimited reflectors from a single codebase. Instantly swap dashboards using the global "Switcher" menu without reloading the page.
- Tenant-Aware Telemetry: The UI automatically surfaces the Active Profile and active network port.
- Enhanced User Identity: Hover-activated tooltips projecting from callsigns expose Name and Location from a high-speed SQLite database. Built with a global downward-drop physics engine to guarantee tooltips remain visible on all screen sizes without triggering horizontal scrollbars. If a user is not mapped, an elegant diagnostic fallback is displayed.
- Dynamic ID Translation: Unmapped numeric network IDs (e.g., DMR IDs) appearing in the data stream are instantaneously intercepted and translated into alphanumeric Callsigns via the SQLite database, ensuring clean UI presentation and preserving accurate QRZ lookups.
- Local Documentation Engine: Includes an integrated
help.phpweb portal that intercepts the localREADME.mdand visually parses it into a rich, responsive experience via a client-side markdown interpreter, ensuring documentation matches your native deployment version perfectly. - Disk Usage Telemetry: The System Stats card now reports real-time disk consumption (used/total GB and percentage) for instant infrastructure awareness.
- GDPR Callsign Anonymization: A config toggle (
GDPR_MODE) that masks all callsigns at the API level (e.g.,N4***) and strips PII (name, location) before any data reaches the browser. Designed for European operators requiring GDPR compliance. - Glassmorphism UI: A premium, responsive design with "Command Center" aesthetics and live pulsating status indicators.
To ensure all features (including the ID database and Pretty URLs) work correctly, the following PHP modules are required:
php-cli(to run the setup wizard and database updater)php-sqlite3(crucial for high-speed user ID lookups)php-curl(to download the latest ID databases)php-mbstring(for international character support)
Ubuntu/Debian Installation Example:
Install the unversioned meta-packages so APT pulls your distro's current default PHP (8.5 on Ubuntu 26.04, 8.3 on Debian 13 / Ubuntu 24.04). Avoid pinning to an old version like php8.2-*.
sudo apt install php-cli php-sqlite3 php-curl php-mbstring
# After installing, make sure to restart your web server processor!
sudo systemctl restart php8.5-fpm
# (Use the version APT installed, e.g., php8.3-fpm on Ubuntu 24.04)
# OR
sudo systemctl restart apache2-
Clone the repository:
git clone https://github.com/DVSwitch/Modern-Reflector-Dashboard cd Modern-Reflector-Dashboard -
Run the Intelligent Setup Wizard: Point the setup wizard to the directory containing your reflector
.inifiles (typically/opt).php setup.php /opt/P25Reflector
-
Initialize the User ID Database: Download the master user lists (DMR and NXDN) from RadioID.net. You must run this command for hover names to work!
php update_db.php
-
Configure Permissions:
chmod -R 755 config/ chmod -R 777 db/
- Main Dashboard: Open your browser to the root directory. Use the Switch ▼ menu on the top right to hot-swap between multiple running reflectors.
- User Discovery: Hover your mouse over any callsign across any table (Last Heard, Gateways, Transmitting) to see the user's name and location from the local ID database.
- Directory Access: The API parses URL parameters natively. Access specific dashboards directly via
?conf=ProfileName.
Reflector by G4KLX. Dashboard by DVSwitch. Modernized and Optimized for high-volume reflector systems.
