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:
- During installation: Pass your key as an installer argument
- Setup Wizard: The first step of the setup wizard validates your license
- 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_completekey from thejrmpanel_configdatabase 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:
- License — Activate your license key (real-time validation)
- Admin Account — Create your admin username and password
- Branding — Customize your panel name and colors
- SMTP Email — Configure email delivery (optional, can be done later)
- 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:
- Navigate to Stations > Create New
- Select "Shoutcast v2" as the engine
- Set the port, bitrate, and maximum listeners
- Configure the source password and admin password
- 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:
- Navigate to Stations > Create New
- Select "Icecast 2.4" as the engine
- Configure mountpoints (e.g., /stream, /mobile)
- Set encoding format (OGG Vorbis, MP3, OPUS, FLAC)
- 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:
- Enable AutoDJ on the station settings page
- Upload music via the web interface or FTP (Pure-FTPd)
- Create playlists: General Rotation, Scheduled, Jingles
- Configure crossfade timing and jingle insertion rules
- 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:
- Ensure your domain points to the server IP
- Navigate to Settings > SSL
- Enter your domain and click "Generate Certificate"
- JRMPanel automatically deploys the certificate to all stations
- 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:
- Download the WHMCS module from your JRMPanel dashboard
- Upload to your WHMCS
/modules/servers/jrmpanel/directory - Configure the server connection in WHMCS (hostname, API key)
- 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:
- Navigate to Resellers > Create New
- Assign a username, password, and company name
- Define the maximum number of stations they can create
- 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 stationsPOST /api/stations— Create a new stationGET /api/stations/{id}— Get station detailsPOST /api/stations/{id}/restart— Restart a stationGET /api/stations/{id}/listeners— Current listenersGET /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
htopand check per-process usage