Documentation

Everything you need to install, configure, and manage JRMPanel.

Installation

JRMPanel can be installed on AlmaLinux 9.x/10.x or Rocky Linux 9.x/10.x with a single command. The installer automatically configures all dependencies including Node.js 20, MariaDB, Pure-FTPd, Liquidsoap, and the JRMPanel application.

System Requirements:

  • AlmaLinux 9.x / 10.x or Rocky Linux 9.x / 10.x
  • Minimum 2 GB RAM (4 GB recommended)
  • 20 GB disk space
  • Root SSH access
  • Active JRMPanel license

Quick Install:

curl -o install -L https://jrmpanel.com/install
bash install JRMP-XXXX-XXXX-XXXX-XXXX

Replace JRMP-XXXX-XXXX-XXXX-XXXX with your license key. Installation typically completes in 5-10 minutes.

Installer Options:

bash install JRMP-XXXX --hostname yourdomain.com --email admin@mail.com
  • --hostname — Automatically sets up SSL with Let's Encrypt
  • --email — Admin account email
  • --port-start — Base port (default: 3080)

After Installation: On first access, the Setup Wizard will automatically guide you step-by-step to configure your license, admin account, branding, and SMTP email settings.

License Activation

Every JRMPanel installation requires an active license. Licenses are validated in real-time against the JRMPanel server.

License Types:

  • Starter — Up to 50 stations, basic features
  • Professional — Up to 500 stations, all features including AutoDJ, SSL, Resellers, and WHMCS

Activate Your License:

  1. During installation: Pass your key as an installer argument
  2. Setup Wizard: The first step of the setup wizard validates your license
  3. Admin Panel: Settings > License

Key Format: JRMP-XXXX-XXXX-XXXX-XXXX

Validation:

  • License is validated in real-time against jrmpanel.com
  • Automatic revalidation every 2 minutes
  • 72-hour grace period if the license server is unreachable
  • License is bound to the server IP and can be migrated from the JRMPanel dashboard

Setup Wizard

After installing JRMPanel, the Setup Wizard runs automatically the first time you access the admin panel. This wizard guides the administrator through 5 steps to get the panel production-ready.

Step 1 — Activate License Enter your license key in JRMP-XXXX-XXXX-XXXX-XXXX format. The key is validated in real-time against the JRMPanel server. If the key is invalid, expired, or already in use on another server, a specific error message is displayed.

Step 2 — Admin Account Create the main administrator account:

  • Username (Email): The email address you will use to log in
  • Password: Minimum 8 characters (stored with Argon2id hash)
  • Confirm Password: Must match the entered password

Step 3 — Panel Branding Customize your panel appearance:

  • Panel Name: Displayed in the header, login, and public pages
  • Primary Color: Main interface color
  • Accent Color: Secondary color for details and highlights
  • You can upload a custom logo later in Settings > Branding

Step 4 — Email Configuration (SMTP) Configure the mail server for notifications and system emails:

  • SMTP Host, Port, Security (TLS/SSL/None)
  • SMTP Username and Password
  • From Email address
  • This step is optional — you can click "Skip" and configure it later in the Email Settings page

Step 5 — Complete Setup summary. Clicking "Go to Dashboard" finalizes the wizard and redirects to the admin dashboard. The wizard will not appear again on future logins.

Notes:

  • The wizard blocks access to all other panel pages until completed
  • If you need to re-run the wizard, delete the setup_complete key from the jrmpanel_config database table
  • The wizard works even without an activated license (step 1 is specifically for activating it)

Server Configuration

After installation, access the Admin Panel at https://your-server:3087 (HTTPS) or http://your-server:3086 (HTTP).

Setup Wizard (First Run): The first time you access the panel, the setup wizard will guide you through 5 steps:

  1. License — Activate your license key (real-time validation)
  2. Admin Account — Create your admin username and password
  3. Branding — Customize your panel name and colors
  4. SMTP Email — Configure email delivery (optional, can be done later)
  5. Complete — Finish setup and access the dashboard

Key Configuration:

  • Hostname: Set your server hostname and default domain
  • Ports: Panels run on dedicated ports: Admin (3086/3087), Client (3082/3083), DJ (3080/3081)
  • Storage: Define music upload paths and storage limits
  • Firewall: JRMPanel auto-configures firewalld rules for all ports
  • SSL: Let's Encrypt certificates with automatic renewal
  • Backup: Schedule automated backups to local or remote storage

Shoutcast Setup

JRMPanel supports Shoutcast DNAS v1 and v2 (including v2.6). Creating a Shoutcast station takes seconds from the admin panel.

Creating a Station:

  1. Navigate to Stations > Create New
  2. Select "Shoutcast v2" as the engine
  3. Set the port, bitrate, and maximum listeners
  4. Configure the source password and admin password
  5. Click "Create" — the station starts automatically

Features:

  • Multi-mount support (multiple streams per station)
  • AAC+ and MP3 encoding
  • Stream relay and auto-failover
  • Public directory listing (YP) management

Icecast Setup

JRMPanel fully supports Icecast 2.4 with SSL streaming, multiple mountpoints, and relay configuration.

Creating an Icecast Station:

  1. Navigate to Stations > Create New
  2. Select "Icecast 2.4" as the engine
  3. Configure mountpoints (e.g., /stream, /mobile)
  4. Set encoding format (OGG Vorbis, MP3, OPUS, FLAC)
  5. Enable SSL if you have configured Let's Encrypt

HLS Streaming: JRMPanel can generate HLS streams from Icecast sources, enabling playback on iOS Safari and other HLS-compatible players.

AutoDJ (Liquidsoap)

JRMPanel uses Liquidsoap as the AutoDJ engine, providing professional-grade automated broadcasting.

Setting Up AutoDJ:

  1. Enable AutoDJ on the station settings page
  2. Upload music via the web interface or FTP (Pure-FTPd)
  3. Create playlists: General Rotation, Scheduled, Jingles
  4. Configure crossfade timing and jingle insertion rules
  5. Set fallback behavior when live DJ disconnects

Playlist Scheduling:

  • Time-based scheduling (play specific playlists at specific hours)
  • Weight-based rotation (control how often songs play)
  • Smart shuffle (avoids repetition)
  • Jingle insertion every N songs

SSL Certificates

JRMPanel integrates with Let's Encrypt to provide free SSL certificates for all your stations.

Auto-SSL Setup:

  1. Ensure your domain points to the server IP
  2. Navigate to Settings > SSL
  3. Enter your domain and click "Generate Certificate"
  4. JRMPanel automatically deploys the certificate to all stations
  5. Certificates auto-renew 30 days before expiration

SSL Streaming: Once SSL is enabled, listeners can connect via HTTPS streams, which is required for modern web players and eliminates mixed-content browser warnings.

WHMCS Integration

JRMPanel provides a native WHMCS module for automated provisioning, suspension, and termination of radio hosting accounts.

Setup:

  1. Download the WHMCS module from your JRMPanel dashboard
  2. Upload to your WHMCS /modules/servers/jrmpanel/ directory
  3. Configure the server connection in WHMCS (hostname, API key)
  4. Create products linked to JRMPanel plans

Automated Actions:

  • Create: Provisions station + client account on order activation
  • Suspend: Suspends station when invoice is overdue
  • Unsuspend: Reactivates station when payment received
  • Terminate: Removes station on cancellation

Reseller Panel

JRMPanel includes a dedicated reseller panel that allows your distributors to manage their own radio accounts.

Reseller Features:

  • Dashboard with their station statistics
  • Create/edit/delete radio accounts within their limit
  • Custom branding (name, logo, colors)
  • Package management and resource limits
  • Independent access at https://your-server:3087/reseller

Admin Setup:

  1. Navigate to Resellers > Create New
  2. Assign a username, password, and company name
  3. Define the maximum number of stations they can create
  4. Assign available packages for the reseller

Packages: Each package defines per-station resources: max bitrate, listeners, disk space, AutoDJ enabled/disabled, streaming engine (Shoutcast/Icecast).

API Reference

JRMPanel exposes a REST API for programmatic control of stations, clients, and server resources.

Authentication: All API requests require a valid API key passed in the Authorization header.

Key Endpoints:

  • GET /api/stations — List all stations
  • POST /api/stations — Create a new station
  • GET /api/stations/{id} — Get station details
  • POST /api/stations/{id}/restart — Restart a station
  • GET /api/stations/{id}/listeners — Current listeners
  • GET /api/stats — Server-wide statistics

Full API documentation is available within your JRMPanel admin panel under Settings > API.

Troubleshooting

Station won't start:

  • Check if the port is already in use: ss -tlnp | grep PORT
  • Verify firewalld allows the port: firewall-cmd --list-ports
  • Check station logs in the admin panel

AutoDJ not playing:

  • Ensure music files are uploaded and playlists are not empty
  • Check Liquidsoap process: systemctl status liquidsoap@STATION_ID
  • Verify file formats are supported (MP3, OGG, FLAC)

SSL certificate errors:

  • Ensure domain DNS points to the server IP
  • Check port 80 is accessible (required for Let's Encrypt validation)
  • Try manual renewal: Settings > SSL > Renew

High CPU usage:

  • Check number of active transcoding streams
  • Consider upgrading to a higher plan for more resources
  • Monitor with htop and check per-process usage