Complete documentation for installing, configuring, and managing the AzuraCast WHMCS Module — the most comprehensive automation solution for radio hosting businesses powered by AzuraCast and WHMCS.
Overview
The AzuraCast WHMCS Module automates the entire lifecycle of radio stations — from order to termination. When a customer places an order, the module automatically provisions a fully configured AzuraCast station, creates user credentials, assigns permissions, and sends a welcome email with all connection details.
It integrates seamlessly into both the WHMCS Admin Area (for operators) and the WHMCS Client Area (for customers), providing a premium self-service experience with an embedded radio player, SSO deep-linking, and real-time station management.
Key Features
⚡
Auto-Provisioning
Automatically create AzuraCast stations, users, roles, and mount points when an order is placed.
🛠
5-Step Setup Wizard
Guided wizard configures servers, products, custom fields, and email templates in minutes — no manual setup required.
🔒
SSO Deep-Linking
One-click login to AzuraCast panel features directly from the WHMCS client area — no separate credentials needed.
🔄
Lifecycle Management
Suspend, unsuspend, terminate, and upgrade stations automatically based on WHMCS service status.
🎧
Client Self-Service
Embedded radio player, live now-playing, start/stop controls, password reset, and broadcast credentials.
💻
Embed Widgets
Embeddable HTML player, now-playing widgets, schedule displays, and request forms for customer websites.
📊
Admin Sync Tool
Detect and resolve inconsistencies between AzuraCast stations and WHMCS services with one click.
📨
Email Integration
Custom email template with 10+ merge fields for station credentials, stream URLs, and login details.
System Requirements
💻
WHMCS Version
8.x or 9.x
⚙
PHP Version
8.1 – 8.4
🔒
IonCube Loader
Required
🔑
License Key
Required
ℹ️ IonCube Loader
The module ships with encoded files for PHP 8.1 and PHP 8.3 (covering 8.1–8.4). Make sure IonCube Loader is installed and active on your web server. Most hosting panels (Plesk, cPanel) include IonCube by default.
AzuraCast Server
AzuraCast installed via Docker (recommended) or Ansible
API Key with full administrator permissions
Network access between your WHMCS server and AzuraCast server (HTTPS recommended)
AzuraCast version 0.19+ (tested up to 0.23.x)
💡 Tip
If your AzuraCast server is behind a CDN or proxy (e.g., Cloudflare), you can provide both the hostname and the direct IP address during setup. The module will use the direct IP for API calls.
Download & Installation
After purchasing the module, download the ZIP archive from your client area or the link provided in your order confirmation email.
Extract the Archive
Extract the downloaded ZIP file. You will see the module folder containing three subdirectories that mirror the WHMCS root structure:
Downloaded ZIP archive and extracted module folder
Module folder structure: global-email-template, includes, and modules
📁 Folder Structure
The three folders map directly to your WHMCS installation root:
modules/ — Server module + Addon module files
includes/ — Hook files for client area integration
Upload all three folders to your WHMCS root directory, merging them with the existing folder structure. You can use FTP/SFTP, SCP, or your hosting panel's file manager.
Option A: Via FTP / SCP
Upload via FTP/SCP — merge modules/ and includes/ into WHMCS root
Option B: Via Plesk / cPanel File Manager
Upload via Plesk File Manager — navigate to httpdocs/ and upload
⚠️ File Permissions
After uploading, ensure the files have the correct ownership matching your WHMCS installation. On Plesk, this is typically your-domain_username:psacln. Wrong permissions can cause “500 Internal Server Error” or “Oops” pages.
Verify Installation
After upload, confirm these paths exist on your server:
After uploading the files, activate the AzuraCast Manager addon module in your WHMCS admin panel.
Navigate to Addon Modules
Go to Configuration → Addon Modules in the WHMCS admin area. Find “AzuraCast Manager” in the list and click the Activate button.
Click “Activate” on the AzuraCast Manager addon
Configure the Addon
After activation, the configuration panel expands. Enter your license key, select which admin roles should have access, and click Save Changes.
Enter license key, set access control, and save
⚠️ Database Cleanup
The “Database Cleanup” checkbox permanently deletes ALL AzuraCast data (products, fields, config options, templates, servers). Only use this when completely removing the module. This cannot be undone.
License Setup
A valid license key is required for the module to function. You receive your license key after purchase. Enter it in the addon configuration field and click Save.
Verify License
After saving, click the “License Active” badge to view your license details including the registered owner, product, email, issue date, and expiration.
License verification popup showing active status
Setup Wizard
The Setup Wizard guides you through the complete initial configuration in 5 easy steps. It automatically creates your server connection, products, custom fields, and email template.
Step 1: Connect Your AzuraCast Server
Enter your AzuraCast server connection details:
Server Name — A friendly name for display in WHMCS admin (e.g., “AzuraCast Production”)
Hostname or IP — Your AzuraCast server address without https://
Direct Server IP (optional) — Only needed if the hostname is behind a CDN/proxy
Click “Test Connection & Add Server” to verify the connection. On success, you’ll see the AzuraCast version and the server will be added to WHMCS.
Connection test passed — server added with status “Active”
✔ Multi-Server Support
You can add multiple AzuraCast servers. Click “Add Another Server” to connect additional servers before proceeding.
Step 2: Create Radio Hosting Products
The wizard creates 4 pre-configured example products with sensible defaults for common radio hosting plans:
Package
Bitrate
Listeners
Mounts
Storage
Monthly
Starter
64 kbps
50
1
1 GB
€2.50
Basic
128 kbps
100
2
5 GB
€4.99
Pro
256 kbps
500
5
15 GB
€9.99
Enterprise
320 kbps
Unlimited
10
50 GB
€19.99
Step 2: Preview of the 4 example products before creation
Products created successfully with assigned WHMCS IDs
ℹ️ Note
These are example products. You can modify names, pricing, and all configuration options later in Products/Services. You can also skip this step and create products manually.
Step 3: Create Custom Fields
Each AzuraCast product requires 14 custom fields (9 admin-only + 5 customer-facing). The wizard scans all products and creates any missing fields automatically.
Step 3: Custom field status before creation
All custom fields created — 14/14 per product
Custom Field Types
Field
Type
Purpose
station_id
Admin-only
AzuraCast station ID
azuracast_email
Admin-only
AzuraCast login email
azuracast_user_id
Admin-only
AzuraCast user ID
azuracast_role_id
Admin-only
AzuraCast role ID
azuracast_password
Admin-only
Panel login password (encrypted)
source_password
Admin-only
Broadcast source password (encrypted)
admin_password
Admin-only
Admin password (encrypted)
Stream URL
Admin-only
Direct stream URL
Public Page URL
Admin-only
Public player page URL
Station Name
Customer
Station name (order form)
Station Description
Customer
Station description (order form)
Station Genre
Customer
Music genre (order form)
Station Website
Customer
Station website URL (order form)
Broadcasting Software
Customer
Preferred streaming software (order form)
Step 4: Email Template
The wizard creates a custom email template “AzuraCast Station Credentials” that is sent to customers when their station is provisioned. It includes all connection details, login credentials, and stream URLs.
Step 4: Email template created with custom merge fields
Step 5: Setup Complete
All done! The wizard summarizes everything that was configured: servers, products, custom fields, and email template.
Setup complete — all components configured and ready
🎉 Ready to Go!
Your module is fully configured. New orders will automatically provision AzuraCast stations. You can now review the Dashboard or customize your products.
Dashboard
The AzuraCast Manager Dashboard provides a centralized overview of your license status, server connections, product health, email template configuration, and quick actions.
License Information
The top section displays your license key, activation status, registered owner, product type, billing cycle, and expiration date. A green License Active badge confirms your license is valid.
Dashboard: License info, server configuration, and product status overview
Servers
Lists all configured AzuraCast servers with hostname, IP, HTTPS status, and connection status. Click Edit to modify server settings or Remove to delete a server connection.
Product Status
Shows all AzuraCast products with their custom field health. Each product should show 14/14 Complete. If fields are missing, use the “Create All Missing Fields” quick action.
Product status and email template management
Email Template
Displays the current email template status. Use “Set on All Products” to assign the template as the welcome email for all AzuraCast products, or “Reset Template” to recreate it with default content.
Available Merge Fields
Lists all custom merge fields provided by the module for use in email templates:
Merge Field
Description
{$azuracast_station_name}
Station Name
{$azuracast_station_id}
Station ID
{$azuracast_login_url}
Panel Login URL
{$azuracast_email}
Login Email
{$azuracast_password}
Login Password (decrypted)
{$azuracast_source_password}
Source / DJ Password (decrypted)
{$azuracast_admin_password}
Admin Password (decrypted)
{$azuracast_stream_url}
Direct Stream URL
{$azuracast_public_url}
Public Player Page URL
{$azuracast_portal_url}
Client Portal Link
Merge fields, Sync Tool section, and Quick Actions
Quick Actions
Create All Missing Fields — Scans all AzuraCast products and creates any missing custom fields. Existing fields are not modified.
Run Setup Wizard Again — Reopens the step-by-step wizard to review or reconfigure your server, products, fields, and email templates.
Open Sync Tool — Launch the Sync Tool to detect and resolve inconsistencies between AzuraCast and WHMCS.
Product Configuration
Each radio hosting product can be individually configured with pricing, module settings, and custom fields. The Setup Wizard creates sensible defaults, but you can customize everything.
Product Details
Navigate to Configuration → Products/Services to see all your AzuraCast products under the “Radio Hosting” group.
Products/Services page — Radio Hosting group
Click on a product to edit its details including name, description, product group, and order form settings.
Product Details tab — name, description, and display settings
Pricing
Configure recurring pricing for each billing cycle (monthly, quarterly, semi-annually, annually, etc.).
Pricing tab — configure billing cycles and amounts
Module Settings
The Module Settings tab controls how each product provisions stations on AzuraCast. These 12 configurable options define the station specifications:
#
Option
Description
1
Station Prefix
Prefix for auto-generated station names (e.g., “Station”)
2
Default Bitrate
Stream bitrate in kbps (64, 128, 256, 320)
3
Streaming Engine
Icecast or SHOUTcast v2
4
Max Listeners
Maximum concurrent listeners (0 = unlimited)
5
AutoDJ
Enable automatic playback with Liquidsoap
6
Max Mounts
Maximum number of mount points
7
Public Page
Enable the public station page on AzuraCast
8
Storage (GB)
Media storage quota
9
Live DJs
Allow live DJ/streamer connections
10
Podcast Storage (GB)
Podcast storage quota
11
Song Requests
Allow listeners to request songs
12
Recording Storage (GB)
Recording storage quota
Module Settings — all 12 configurable station options
ℹ️ Auto Setup
Set the “Auto Setup” option at the bottom to control when stations are provisioned: on order, on first payment, on pending order acceptance, or manually.
Custom Fields
The Custom Fields tab shows all 14 fields for the product. The 5 customer-facing fields appear on the order form and let customers personalize their station during checkout.
Custom Fields — customer-facing fields on the order form
⚠️ Important
Do not rename or delete admin-only custom fields (snake_case names). The module relies on these exact field names for station provisioning and data storage.
Email Templates
The module provides a custom email template that is automatically sent to customers when their radio station is provisioned.
Template Editor
Navigate to Configuration → Email Templates and find “AzuraCast Station Credentials” under Product/Service Messages.
Email Templates list — AzuraCast Station Credentials
Click to edit the template. The default template includes sections for:
Welcome message with client and service information
Panel login credentials (URL, email, password)
Broadcast passwords (source, admin)
Stream URLs (direct stream, public player page)
Client portal link for station management
Email template editor with subject line and body
Available Merge Fields
The module registers custom merge fields that you can use in any email template. They are available in the “Available Merge Fields” panel on the right side of the template editor.
Available merge fields in the template editor sidebar
Server Configuration
The AzuraCast server is automatically configured during the Setup Wizard. You can review and modify it at Configuration → System Settings → Servers.
Server configuration — AzuraCast server and server group
Key settings include:
Server Name — Display name in admin panel
IP Address — AzuraCast server IP for API connections
Server Group — Used to assign products to this server
Fill Type — “Add to the least full server” for multi-server setups
💡 API Key Storage
The AzuraCast API key is stored in the server’s Access Hash field (encrypted in the WHMCS database). The module automatically decrypts it when making API calls.
Client Area
The module provides a premium client area experience with an embedded radio player, SSO deep-linking to AzuraCast features, and all station management tools in one place. The annotated screenshots below use numbered markers to identify each UI element.
Hero Player & Controls (1–23)
Client area hero banner — annotated UI elements (1–23)
#
Element
Description
1
Actions Sidebar
Left sidebar with action links: Start Station, Stop Station, Reset Password, Request Cancellation
2
Breadcrumb Navigation
Portal Home → Client Area → My Products & Services → Product Details
3
Play Button
Glass-effect play button — starts the in-browser audio player
4
Stop Button
Glass-effect stop button — stops audio playback
5
Radio Player SSO
SSO deep-link button to the AzuraCast public radio player page
6
Dashboard SSO
SSO deep-link button to the AzuraCast station dashboard
7
Station Manager SSO
SSO deep-link button to the AzuraCast station manager
8
Status Badge
ONLINE / IDLE / OFFLINE real-time station status
9
Station Name & Tagline
Station title and subtitle/genre description
10
Station Metadata
Streaming engine (Icecast/SHOUTcast) and Station ID
11
Album Art
Cover artwork of the currently playing track (fetched from AzuraCast)
12
Elapsed Time
Current playback position timestamp
13
Progress Bar
Audio playback progress indicator
14
Total Duration
Total track duration timestamp
15
Now Playing Info
Song title and artist of the currently playing track
16
Artist Name
Artist name displayed below the track info
17
Listener Count
Real-time number of current listeners
18
Request a Track
Link to request a song (if song requests are enabled)
19
Recent Tracks List
Scrollable list of the last 5 played tracks
20
Dashboard Credentials Header
“AzuraCast Dashboard Credentials” card for manual AzuraCast login
21
Email Field
AzuraCast login email address (with copy button)
22
Password Field
AzuraCast login password (masked, with show/copy buttons)
23
Reset Password Button
Generates a new random password and updates AzuraCast
Radio player close-up — now playing, controls, and SSO buttons
Station Features & Stream Connection (24–44)
Station features, stream connection, and station status — annotated (24–44)
Station Features Grid (24–34)
Each tile is an SSO deep-link — customers click and are automatically logged in to the corresponding AzuraCast page:
#
Feature Tile
Description
24
Section Header
“Station Features” section title
25
Music Files
Upload & manage audio files on AzuraCast
26
Playlists
Create & schedule playlists
27
Podcasts
Manage podcast episodes
28
Web DJ
Broadcast live directly from the browser
29
DJ Accounts
Manage DJ/streamer login credentials
30
Web Hooks
Configure Discord, Telegram, and other webhook integrations
31
Mount Points
Manage stream mount points and formats
32
Station Settings
Configure station options and preferences
33
Branding
Customize station look & feel
34
Embed Widgets
Generate embeddable players and widgets for external websites
Stream Connection (35–39)
#
Element
Description
35
Section Header
“Stream Connection” section with stream details
36
Stream URL
Direct stream URL with one-click copy button
37
Primary Mount Point
Main mount point with bitrate badge (e.g., /radio.mp3 128kbps)
38
Stream Name
Named stream alias with bitrate indicator
39
Player Links
Download buttons for M3U and PLS playlist files
Station Status (40–44)
#
Element
Description
40
Section Header
“Station Status” overview panel
41
Public Page
Enabled / Disabled — Public station page visibility
42
Song Requests
Enabled / Disabled — Listener song request feature
43
Live DJs
Enabled / Disabled — Live DJ/streamer connections
44
Stream Type
Icecast or SHOUTcast — Frontend streaming engine
Broadcast Credentials (45–51)
Connection details for broadcasting software (BUTT, Mixxx, OBS, SAM Broadcaster, etc.), with separate Icecast and Shoutcast formats:
Broadcast credentials — annotated (45–51)
#
Element
Description
45
Section Header
Collapsible “Broadcast Credentials” section with toggle
46
Icecast Server
AzuraCast hostname for Icecast clients (with Direct IP below)
47
Icecast Port
Station port for Icecast connections
48
Icecast Mount Name
Mount point path (default: /)
49
Shoutcast Server
AzuraCast hostname for Shoutcast clients (with Direct IP below)
50
Shoutcast Port
Station port for Shoutcast connections (note: some clients need port +1)
51
Source Password
Direct source connection password (masked, with show/copy buttons). DJ format: dj_username:dj_password
ℹ️ Full Page Overview
For a complete view of all client area sections, see the screenshot below showing the entire page layout.
Complete client area page — full overview from hero to broadcast credentials
Sync Tool
The Sync Tool compares all stations on your AzuraCast server with the corresponding WHMCS services. It detects and helps you resolve inconsistencies.
Dashboard
Access the Sync Tool from the AzuraCast Manager Dashboard or via Addons → AzuraCast Manager → Open Sync Tool. The dashboard shows:
Total Stations — All stations on the AzuraCast server
Linked — Stations properly connected to an active WHMCS service
Unlinked — Stations on AzuraCast without a matching WHMCS service
Missing — WHMCS services referencing stations that no longer exist
Status Mismatch — Suspend/unsuspend status differs between WHMCS and AzuraCast
Unused Roles — Leftover user roles no longer assigned to any user
Sync Tool dashboard — station sync overview
For each unlinked station, you can:
Link — Associate it with an existing WHMCS service
Restart — Restart the station’s services
Delete — Remove the station from AzuraCast
Maintenance Actions
The Maintenance dropdown provides advanced cleanup and repair functions:
Maintenance dropdown with repair and cleanup actions
Action
Description
Fix Domain Fields
Copies the station ID into the WHMCS domain field for each service. Needed for correct internal linking.
Clear Old Credentials
Removes leftover login data from a previous module version. Safe to run — current module uses custom fields.
Cleanup Unused Roles
Deletes AzuraCast user roles not assigned to any user. Typically leftover after station deletions.
Sync Suspend Status
Ensures each station’s enabled/disabled state matches the WHMCS service status.
Frequently Asked Questions
How does auto-provisioning work?
When a customer places an order and pays (or based on your auto-setup setting), the module automatically: creates a new AzuraCast station with the configured settings, creates a user account with the customer’s email, assigns a custom role with appropriate permissions, sets up mount points and storage quotas, generates source/admin passwords, and sends the welcome email with all credentials.
Which AzuraCast versions are supported?
The module is tested with AzuraCast 0.19+ through 0.23.x. It uses the AzuraCast REST API which maintains backward compatibility. Both Docker and Ansible installations are supported.
Can I use the module with multiple AzuraCast servers?
Yes. Add multiple servers during the Setup Wizard (Step 1) or later via the Dashboard. Create a server group and WHMCS will distribute new stations across servers using the “least full” algorithm.
What happens when a service is suspended?
The module disables the station on AzuraCast (stops streaming) and locks the user account. When unsuspended, everything is restored automatically.
What happens when a service is terminated?
The module deletes the station, user account, and role from AzuraCast, and clears all custom field data in WHMCS. If the station was already manually deleted on AzuraCast, the module handles the 404 gracefully and still cleans up WHMCS data.
Can I customize the client area template?
Yes. The client area is rendered from templates/client/overview.tpl inside the server module directory. You can modify the Smarty template to match your brand, but be careful not to break the JavaScript functionality.
How does SSO (Single Sign-On) work?
When a customer clicks an SSO button (e.g., “Music Files” or “Dashboard”), the module generates an AzuraCast login token, uses an iframe bridge to set the session cookie, and then redirects the customer to the target page. This works seamlessly because the AzuraCast panel and the login token share the same domain.
How do I update the module?
Download the latest version, upload and overwrite the files (same process as initial installation), and clear the Smarty template cache. No database changes are needed — the module handles migrations automatically.
The connection test fails. What should I check?
Verify the hostname/IP is correct and reachable from your WHMCS server
Ensure the API key has full administrator permissions
Check that HTTPS is enabled if using a secure connection
If behind Cloudflare, provide the direct server IP in the optional field
Check firewall rules allow outbound HTTPS from WHMCS to AzuraCast
How do I get support?
Contact us via the support ticket system in your client area. Include your license key and any error messages for faster resolution.