GitHub - DVSwitch/Modern-Reflector-Dashboard · GitHub
Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

DVSwitch Universal Reflector Dashboard (Modernized)

A high-performance, mode-agnostic real-time dashboard for P25, YSF, and NXDN reflectors. Optimized for the MMDVM ecosystem.

Key Features & Architecture (v3.2)

  • 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.php wizard automatically identifies your infrastructure by scanning binaries, .ini headers, 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.php web portal that intercepts the local README.md and 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.

System Requirements

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

Installation

  1. Clone the repository:

    git clone https://github.com/DVSwitch/Modern-Reflector-Dashboard
    cd Modern-Reflector-Dashboard
  2. Run the Intelligent Setup Wizard: Point the setup wizard to the directory containing your reflector .ini files (typically /opt).

    php setup.php /opt/P25Reflector
  3. 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
  4. Configure Permissions:

    chmod -R 755 config/
    chmod -R 777 db/

Usage

  • 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.

Credits

Reflector by G4KLX. Dashboard by DVSwitch. Modernized and Optimized for high-volume reflector systems.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages