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, Nginx, 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
Quick Install:
wget -O install.sh https://jrmstream.com/install && bash install.sh
The installation typically completes in 5 minutes.
Server Configuration
After installation, access the Admin Panel at https://your-server:3083 to configure your server settings.
Key Configuration:
- Hostname: Set your server hostname and default domain
- Ports: Configure Shoutcast/Icecast port ranges (default: 8000-9000)
- Storage: Define music upload paths and storage limits
- Firewall: JRMPanel auto-configures firewalld rules for all ports
- 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 (ProFTPD)
- 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
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