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:

  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 (ProFTPD)
  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

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