PUQ Mautic

Jellyfin Family WHMCS module

WHMCS module that automates Jellyfin media-server accounts with a family / sub-account system. Sell Jellyfin access as a WHMCS product: each service maps to a main Jellyfin user whose library access, playback and transcoding policy, Live TV, SyncPlay, session limits and lockout are driven by the product configuration. On top of that, clients can create a configurable number of media accounts — additional Jellyfin sub-users, each with its own password, enabled state and library subset — and manage them, and their devices, from the client area over AJAX. Supports PHP 7.4 / 8.1 / 8.2+.

Description

Jellyfin Family module WHMCS

Order now | Download | Community

Jellyfin Family WHMCS module

The Jellyfin Family WHMCS module turns your WHMCS into an automated platform for selling Jellyfin media-server accounts with a family / sub-account system. Each WHMCS service is mapped to a main Jellyfin user whose access is fully driven by the product configuration: which libraries the user can see, what playback and transcoding is allowed, Live TV access, SyncPlay, streaming bitrate limit, maximum active sessions and failed-login lockout.

On top of the main account, the Family edition lets the client create a configurable number of media accounts — additional named Jellyfin sub-users (username-name), each with its own password, enabled state and restricted set of libraries. Clients add, edit and delete their media accounts, and drop their devices, directly from the client area — all over AJAX.

Account provisioning is automatic — on Create the module generates the username and password, creates the Jellyfin user and applies the configured policy. Suspend / Unsuspend / Change package / Terminate keep the main user and every media account in sync with the WHMCS service lifecycle. Clients manage everything from the WHMCS client area.

Client area overview


What's new in v3.0

Version 3.0 is a complete rewrite that brings the module up to the modern PUQ standard:


Main features


System requirements & compatibility

The module supports PHP 7.4, 8.1 and 8.2+, shipped as a separate ionCube build per PHP version. Download the build that matches the PHP version your WHMCS runs on.

WHMCS version PHP version Module build
WHMCS 8.x 7.4 php74
WHMCS 8.x 8.1 php81
WHMCS 8.x 8.2 php82
WHMCS 9.x 8.2 php82

Match the build to the server's PHP version, not to the WHMCS version. PHP 8.2 and any newer PHP → always use php82. Requires ionCube Loader v13+.

A reachable Jellyfin server, version 10.11.10 or newer, with an administrator account and API key is required. The module uses the modern Authorization: MediaBrowser scheme and the current user/password API routes, so it stays compatible with Jellyfin 10.12/10.13 where the legacy authorization headers are removed.

Changelog

Jellyfin Family module WHMCS

Order now | Download | Community

v3.0 (01-07-2026)

Full rewrite onto the PUQ module skeleton (shared with the other PUQ WHMCS modules).

Added

Changed

Fixed

Removed

v2.1

Installation and Configuration Guide

Step-by-step instructions for installing and configuring the Jellyfin Family WHMCS module: WHMCS deployment, connecting your Jellyfin server, creating the product and configuring the access policy.

Installation and Configuration Guide

WHMCS setup (install/update)

Jellyfin Family module WHMCS

Order now | Download | Community

Technical requirements

The PUQ Jellyfin Family module is encoded with ionCube Loader v13 (or newer) and is published as a separate build for each supported PHP major version. Installation and updates follow the same procedure.

PHP version WHMCS version Module build
PHP 7.4 8.11.0 - php74
PHP 8.1 8.11.0 + php81
PHP 8.2 (or newer) 8.11.0 + and 9+ php82

Pick the build that matches the PHP runtime of your WHMCS server, not the WHMCS version — PHP 8.2 and any newer PHP always use php82. Not sure which PHP version your WHMCS runs on? Check Utilities → System → PHP Info in the WHMCS admin area.

A reachable Jellyfin server, version 10.11.10 or newer, with an administrator account and an API key, is also required.


Download

A separate build is published for each PHP major version. All versions and historical builds are available in the index:

Direct "latest" downloads

PHP 8.2

wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/php82/PUQ_WHMCS-Jellyfin-Family-latest.zip

PHP 8.1

wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/php81/PUQ_WHMCS-Jellyfin-Family-latest.zip

PHP 7.4

wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/php74/PUQ_WHMCS-Jellyfin-Family-latest.zip

Installation

Step 1: Extract the archive

On your WHMCS server (or locally, before uploading):

unzip PUQ_WHMCS-Jellyfin-Family-latest.zip

Step 2: Deploy the module

Copy and replace the puqJellyfinFamily folder into the WHMCS servers module directory, so the module lives at WHMCS_WEB_DIR/modules/servers/puqJellyfinFamily/:

puqJellyfinFamily  →  WHMCS_WEB_DIR/modules/servers/puqJellyfinFamily/

Example:

cp -r puqJellyfinFamily /var/www/html/whmcs/modules/servers/

Make sure ionCube Loader v13+ is enabled for the PHP version WHMCS runs on. On first load the module self-creates its database tables (puq_license and puqJellyfinFamily_media_account) — there is no SQL to run manually.

Step 3: Next steps

  1. Add a Jellyfin server in WHMCS — connect WHMCS to your Jellyfin server.
  2. Product configuration — create the PUQ Jellyfin Family product, enter the license key and configure the access policy.

Update

Installation and updates follow the same procedure. To update an existing installation:

  1. Back up the WHMCS database and the modules/servers/puqJellyfinFamily/ directory.
  2. Download the new build that matches the current PHP version and overwrite all files in modules/servers/puqJellyfinFamily/.
  3. Open any WHMCS admin page once — the module verifies and creates any missing database tables automatically.

Upgrading from v2.x: no reconfiguration is required. The module reads existing product settings from the legacy configoption2configoption8 slots (including Media Accounts Configuration in configoption2) until you save the product once through the new form, at which point they are consolidated into configoption24.

Tip: always back up your WHMCS installation before performing an update.

Installation and Configuration Guide

Add a Jellyfin server in WHMCS

Jellyfin Family module WHMCS

Order now | Download | Community

Configure the connection to your Jellyfin server under System Settings → Servers → Add New Server.

Field Value
Name A label for the server.
Hostname / IP Address The Jellyfin server hostname or IP.
Module PUQ Jellyfin Family.
Username A Jellyfin administrator username.
Password That administrator's password.
Access Hash A Jellyfin API key (Jellyfin Dashboard → API Keys).
Secure (SSL) Enable if Jellyfin is served over HTTPS.
Port Jellyfin port (default 8096, or 443 when SSL is enabled).

In the Server Details section select Module → PUQ Jellyfin Family, fill in the Username, Password and Access Hash (API key), tick Secure for SSL and set the Port.

Server Details — PUQ Jellyfin Family module + Test Connection

Use Test Connection to confirm WHMCS can reach Jellyfin and authenticate. The module authenticates with the username / password + API key to obtain an access token, then calls System/Info to verify connectivity. On success some fields are auto-filled and the status shows Connection successful.

Finally, assign the server (or a server group that contains it) to your Jellyfin Family product under the product's Module Settings.

Installation and Configuration Guide

Product configuration

Jellyfin Family module WHMCS

Order now | Download | Community

Create a product of type PUQ Jellyfin Family (Setup → Products/Services), assign the Jellyfin server on the Module Settings tab, then configure the access policy in the injected configuration panel.

Product configuration

Media Accounts Configuration

Each media account is a separate Jellyfin user named mainusername-name. It inherits the product's playback / transcoding / Live TV / SyncPlay / session settings, but its library access is limited to a subset of the main account's libraries (chosen per media account). Setting the count to 0 removes all existing media accounts on the next Change package.

Media Accounts Configuration

Libraries Configuration

The dynamic list requires the product to be saved with a Server Group that contains a reachable Jellyfin server. Until then the panel shows a hint to select and save a Server Group.

Libraries — dynamic checkbox picker

User Configuration

User Configuration

Allow Playback

Toggle media playback, audio transcoding, video transcoding and video conversion without re-encoding.

Allow Playback

Feature Access

Live TV access, Live TV recording management, and force transcoding of remote media sources.

Feature Access

Links

Client Area

Client Area settings

Settings are stored as a single JSON document in configoption24. After saving, Create/Change actions push the resulting policy to Jellyfin.

Client Area

What the customer sees and can do on the Jellyfin Family service page in the WHMCS client area.

Client Area

Client area overview

Jellyfin Family module WHMCS

Order now | Download | Community

The client opens their Jellyfin Family service from clientarea.php → My Services → (service) → Information. The page loads its data over AJAX and renders a set of cards.

Client area overview

Actions

Account

Info

Libraries & Devices

Media Accounts

When the product allows media accounts, a Media Accounts card lists the client's sub-users with a used / limit count badge.

Media Accounts in the client area

A media account's available libraries are always a subset of the main account's libraries, and it inherits the product's playback/transcoding/feature settings.

All actions use AJAX and report the result with a toast notification — the page never reloads.

Admin Area

Managing a Jellyfin Family service from the WHMCS admin area.

Admin Area

Service page

Jellyfin Family module WHMCS

Order now | Download | Community

On the WHMCS admin service page (Clients → (client) → Products/Services) the module adds an information tab and the standard module command buttons.

Admin service page

Module commands

Custom buttons

Information tab

All lifecycle actions are license-gated: if the license cache is stale and the license server is unreachable, the action is refused with the license error.