# Jellyfin Family WHMCS module

# Description

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

Thanks to the module, the company can now offer public media services to its customers based on Jellyfin accounts with added flexibility.  
  
The module facilitates the creation of customer accounts on a pre-prepared Jellyfin server. Now, it empowers users to define and manage multiple media accounts, allowing for more tailored offerings and increased customer satisfaction. Each account corresponds to a selected package, enabling customers to access varied media content at different price points. Notably, clients can now possess multiple independent media accounts, broadening their media access options.

<p class="callout info">For the correct operation of the module, a pre-prepared Jellyfin installation is required (the module does not assist in the installation of the Jellyfin server and assumes that such installation is ready for operation through API.) Module use Jellyfin API to manage clients account.</p>

<p class="callout info">We have prepared a detailed installation manual for the module, including all the steps needed to implement the module, including the preparation of the Jellyfin server, including all installation steps such as PHP, Jellyfin, SSL certificates etc.</p>

### Functions:

- Auto create and deploy client account
- Multi-Account Support: Enable users to manage multiple media accounts within a single service
- The module uses only the API to manage the accounts
- Module supports multilingualism **(Arabic, Azerbaijani, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Farsi, French, German, Hebrew, Hungarian, Italian, Macedonian, Norwegian, Polish, Romanian, Spanish, Swedish, Turkish, Ukrainian)**
- The module shows all user info: enabled user libraries, active devices etc.
- Link to instructions for setting up the service in the client area.

### Available options in the admin panel:

- Create users
- Suspend users
- Terminate users
- Unsuspend users
- Change users password
- Change Package
- Drop all devices
- Unblock user
- API connection status
- List of active devices
- List of enabled user libraries
- List of Media Accounts

### Available options in the client panel:

- List of active devices
- List of enabled user libraries
- Drop all devices
- Unblock user
- Change the Jellyfin user password
- Add/Management/Delete Media Account
- Drop Account Devices
- List of Media Accounts

- - - - - -

<p class="callout warning">WHMCS minimal version: 8 +</p>

<p class="callout warning">Jellyfin minimal version: 10+</p>

[![image-1720788124259.png](https://doc.puq.info/uploads/images/gallery/2024-07/scaled-1680-/image-1720788124259.png)](https://doc.puq.info/uploads/images/gallery/2024-07/image-1720788124259.png)

[![image-1714990713817.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714990713817.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714990713817.png)# Changelog

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

####  

#### v2.1 Released 14-10-2025

1. Adding availability to create a rule about custom username
2. Adding availability to create a rule about custom password
3. Supported php8.2+ version
4. Support for custom admin path

<p class="callout danger">You should save the 'Module Setting' in your products for the module to function correctly.</p>

- - - - - -

##### v2.0 Released 24-09-2024

<p class="callout info">**Module is coded ionCube v13**</p>

Supported php version:

- php 7.4 WHMCS 8.11.0 -
- php 8.1 WHMCS 8.11.0 +
- php 8.2 WHMCS 8.11.0 +

- - - - - -

#### v1.3.2 Released 13-08-2024

1. Fixed bug with password, when "Show password" is "no"
2. Fixed a bug with sub-accounts. Now, if the number of media accounts equals 0, when "Change package" is clicked, the sub-accounts are removed.

- - - - - -

##### v1.3.1 Released 31-07-2024

1. Fixed a bug with adding sub-accounts when the allowed count of media sub-accounts is 0

- - - - - -

##### v1.3 Released 31-07-2024

1. Fixed bug with header template
2. Fixed bug with updating sub-account password in database

- - - - - -

##### v1.2 Released 12-07-2024

1. Client area more adapted for mobile version
2. Buttons for copying login and password have been added to the client area
3. Fixed bug with edit sub-account

- - - - - -

##### v1.1 Released 15-05-2024

1. Fixed a bug where purchasing a new service would alter the parameters of all accounts on the server.
2. Translate some phrases
3. Some changes in client area

- - - - - -

##### v1.0 Released 02-05-2024

First version# Installation and configuration guide



# WHMCS setup(install/update)

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

<p class="callout info">**Module is coded ionCube v13**</p>

Supported php version:

- php 7.4 WHMCS 8.11.0 -
- php 8.1 WHMCS 8.11.0 +
- php 8.2 WHMCS 8.11.0 +

<p class="callout info">To install and update a module, you must perform one and the same action.</p>

##### 1. Download the latest version of the module.

PHP 8.2

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

PHP 8.1

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

PHP 7.4

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

<p class="callout info">All versions are available via link: [http://download.puqcloud.com/WHMCS/servers/PUQ\_WHMCS-Jellyfin-Family/](http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/)</p>

##### 2. Unzip the archive with the module.

```Powershell
unzip PUQ_WHMCS-Jellyfin-Family-latest.zip
```

##### 3. Copy and Replace "puqJellyfinFamily" to "WHMCS\_WEB\_DIR/modules/servers/"

# Setup guide: Jellyfin setup

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

#### 1. Install Jellyfin on your server

To simplify deployment and help automate this for as many users as possible, we provide a BASH script to handle repo installation as well as installing Jellyfin. All you need to do is run this command on your system

```
 wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
```

#### 2. SSL certificate generation:

```
sudo apt install nginx certbot python3-certbot-nginx
```

```
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email YOUR_EMAIL -d DOMAIN_NAME
```

```
echo "0 0 * * *  root  certbot renew --quiet --no-self-upgrade --post-hook 'systemctl reload nginx'" | sudo tee -a /etc/cron.d/renew_certbot
```

#### 3. Configure nginx from a subdomain

Create a file named jellyfin.conf.

```
cd /etc/nginx/conf.d/
nano jellyfin.conf
```

Then, insert the following text, replacing <span style="color: #ff0000;">DOMAIN\_NAME</span> with your domain.

```Nginx
# Uncomment the commented sections after you have acquired a SSL Certificate
server {
	listen 80;
	listen [::]:80;
	server_name DOMAIN_NAME;

	# Uncomment to redirect HTTP to HTTPS
	return 301 https://$host$request_uri;
}

server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name DOMAIN_NAME;

	## The default `client_max_body_size` is 1M, this might not be enough for some posters, etc.
	client_max_body_size 20M;

	# use a variable to store the upstream proxy
	# in this example we are using a hostname which is resolved via DNS
	# (if you aren't using DNS remove the resolver line and change the variable to point to an IP address e.g `set $jellyfin 127.0.0.1`)
	set $jellyfin 127.0.0.1;
	resolver 127.0.0.1 valid=30;

	ssl_certificate /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem;
	include /etc/letsencrypt/options-ssl-nginx.conf;
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
	add_header Strict-Transport-Security "max-age=31536000" always;
	ssl_trusted_certificate /etc/letsencrypt/live/DOMAIN_NAME/chain.pem;
	ssl_stapling on;
	ssl_stapling_verify on;

	# Security / XSS Mitigation Headers
	# NOTE: X-Frame-Options may cause issues with the webOS app
	add_header X-Frame-Options "SAMEORIGIN";
	add_header X-XSS-Protection "0"; # Do NOT enable. This is obsolete/dangerous
	add_header X-Content-Type-Options "nosniff";

	# COOP/COEP. Disable if you use external plugins/images/assets
	add_header Cross-Origin-Opener-Policy "same-origin" always;
	add_header Cross-Origin-Embedder-Policy "require-corp" always;
	add_header Cross-Origin-Resource-Policy "same-origin" always;

	# Permissions policy. May cause issues on some clients
	add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()" always;

	# Tell browsers to use per-origin process isolation
	add_header Origin-Agent-Cluster "?1" always;


	# Content Security Policy
	# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
	# Enforces https content and restricts JS/CSS to origin
	# External Javascript (such as cast_sender.js for Chromecast) must be whitelisted.
	# NOTE: The default CSP headers may cause issues with the webOS app
	#add_header Content-Security-Policy "default-src https: data: blob: http://image.tmdb.org; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'";

	location = / {
		return 302 http://$host/web/;
		#return 302 https://$host/web/;
	}

	location / {
		# Proxy main Jellyfin traffic
		proxy_pass http://$jellyfin:8096;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Protocol $scheme;
		proxy_set_header X-Forwarded-Host $http_host;

		# Disable buffering when the nginx proxy gets very resource heavy upon streaming
		proxy_buffering off;
	}

	# location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/
	location = /web/ {
		# Proxy main Jellyfin traffic
		proxy_pass http://$jellyfin:8096/web/index.html;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Protocol $scheme;
		proxy_set_header X-Forwarded-Host $http_host;
	}

	location /socket {
		# Proxy Jellyfin Websockets traffic
		proxy_pass http://$jellyfin:8096;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Protocol $scheme;
		proxy_set_header X-Forwarded-Host $http_host;
	}
}
```

#### Restarting nginx

```
sudo service nginx restart
```

# Setup guide: WHMCS setup

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

##### 1. Download the latest version of the module.

PHP 8.1

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

PHP 7.4

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

<p class="callout info">All versions are available via link: [http://download.puqcloud.com/WHMCS/servers/PUQ\_WHMCS-Jellyfin-Family/](http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/)</p>

##### 2. Unzip the archive with the module.

```Powershell
unzip PUQ_WHMCS-Jellyfin-Family-latest.zip
```

##### 3. Copy "puqJellyfinFamily" to "WHMCS\_WEB\_DIR/modules/servers/"

##### 4. Create new server Jellyfin in WHMCS (System Settings-&gt;Products/Services-&gt;Servers)

```
System Settings->Servers->Add New Server
```

- Enter the correct **Name** and **Hostname**

[![2023-11-02_14-40.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-02-14-40.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-02-14-40.png)

- In the **Server Details** section, select the "**PUQ Jellyfin Family**" module and enter the correct **username**, **password** and **access hash (API key)** for the **Jellyfin web interface**.
- To check, click the **"Test connection"** button

[![image-1714985395240.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714985395240.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714985395240.png)

##### 5. Create a new Products/Services

```
System Settings->Products/Services->Create a New Product
```

In the **Module settings** section, select the **"PUQ Jellyfin Family"** module

[![image-1714985504828.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714985504828.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714985504828.png)

- **License key:** A pre-purchased license key for the **"PUQ Jellyfin Family"** module. For the module to work correctly, the key must be active

##### Media Accounts Configuration

- **Count of media accounts**<span style="color: #444444;">: Available number of media accounts for creation by user.</span>

##### Libraries:

- **Use All Libraries**: Choosing all of libraries from your Jellyfin server
- **Libraries**: The libraries you want to make available to customers of this product.  
    <span style="color: #ff0000;"> **(IMPORTANT! Start a new line for each new library)**</span>  
    Example:  
    "Movies  
    Beginner`s Programming Course  
    Comedy"  
    <span style="color: #ff0000;"> **IMPORTANT!** </span>If you have a folder named "-", please enter it not as the first one or rename it.  
    If you don't want any folder to be accessible, type "-".

##### <span style="font-size: 1.4em; font-weight: 400;">User Configuration:</span>

- **Streaming bitrate limit:** An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.
- **SyncPlay access:** The SyncPlay feature enables to sync playback with other devices. Select the level of access this user has to the SyncPlay
- **Remote control:** Remote control of shared devices (DLNA devices are considered shared until a user begins controlling them)
- **Media downloads:** Users can download media and store it on their devices. This is not the same as a sync feature. Book libraries require this enabled to function properly.
- **User sessions:** Set the maximum number of simultaneous user sessions. <div>A value of 0 will disable the feature.</div>
- **Failed login attempts:** Determine how many incorrect login tries can be made before lockout occurs. <div>A value of zero means inheriting the default of three tries for normal users and five for administrators. Setting this to -1 will disable the feature.</div>
- **Username prefix/Username suffix:** Necessary in order to generate a username for the service, in the format: **prefix&lt;client\_id&gt;-&lt;service\_id&gt;suffix**

##### Allow playback (Restricting access to transcoding may cause playback failures in clients due to unsupported media formats)

- **media**
- **audio that requires transcoding**
- **video that requires transcoding**
- **video that requires conversion without re-encoding**

##### Feature access:

- **Allow Live TV access**
- **Allow Live TV recording management**
- **Force transcoding of remote media sources such as Live TV**

##### Links

- **Link to instruction:** Link to the instruction, if filled out, it will be reflected in the client area

# Add server (Jellyfin server)

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

##### Add a new server to the system WHMCS.

```
System Settings->Servers->Add New Server
```

- Enter the correct **Name** and **Hostname**

[![2023-11-02_14-40.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-02-14-40.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-02-14-40.png)

- In the **Server Details** section, select the "**PUQ Jellyfin Family**" module and enter the correct **username**, **password** and **access hash (API key)** for the **Jellyfin web interface**.
- To check, click the **"Test connection"** button

[![image-1714985395240.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714985395240.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714985395240.png)

# Product Configuration

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

##### Create a new Products/Services

```
System Settings->Products/Services->Create a New Product
```

In the **Module settings** section, select the **"PUQ Jellyfin Family"** module

[![image-1714985504828.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714985504828.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714985504828.png)

- **License key:** A pre-purchased license key for the **"PUQ Jellyfin Family"** module. For the module to work correctly, the key must be active

##### Media Accounts Configuration

- **Count of media accounts**<span style="color: #444444;">: Available number of media accounts for creation by user.</span>

##### Libraries:

- **Use All Libraries**: Choosing all of libraries from your Jellyfin server
- **Libraries**: The libraries you want to make available to customers of this product.  
    <span style="color: #ff0000;"> **(IMPORTANT! Start a new line for each new library)**</span>  
    Example:  
    "Movies  
    Beginner`s Programming Course  
    Comedy"  
    <span style="color: #ff0000;"> **IMPORTANT!** </span>If you have a folder named "-", please enter it not as the first one or rename it.  
    If you don't want any folder to be accessible, type "-".

##### <span style="font-size: 1.4em; font-weight: 400;">User Configuration:</span>

- **Streaming bitrate limit:** An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.
- **SyncPlay access:** The SyncPlay feature enables to sync playback with other devices. Select the level of access this user has to the SyncPlay
- **Remote control:** Remote control of shared devices (DLNA devices are considered shared until a user begins controlling them)
- **Media downloads:** Users can download media and store it on their devices. This is not the same as a sync feature. Book libraries require this enabled to function properly.
- **User sessions:** Set the maximum number of simultaneous user sessions. <div>A value of 0 will disable the feature.</div>
- **Failed login attempts:** Determine how many incorrect login tries can be made before lockout occurs. <div>A value of zero means inheriting the default of three tries for normal users and five for administrators. Setting this to -1 will disable the feature.</div>
- **Username prefix/Username suffix:** Necessary in order to generate a username for the service, in the format: **prefix&lt;client\_id&gt;-&lt;service\_id&gt;suffix**

##### Allow playback (Restricting access to transcoding may cause playback failures in clients due to unsupported media formats)

- **media**
- **audio that requires transcoding**
- **video that requires transcoding**
- **video that requires conversion without re-encoding**

##### Feature access:

- **Allow Live TV access**
- **Allow Live TV recording management**
- **Force transcoding of remote media sources such as Live TV**

##### Links

- **Link to instruction:** Link to the instruction, if filled out, it will be reflected in the client area

# Add new library/item in Jellyfin

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

### New library:

To create a new library, you should to **create a folder** in your jellyfin server.

First, navigate to the root of your project "/" and enter the following commands:

```
cd mnt
```

```
mkdir LIBRARY_NAME
```

**LIBRARY\_NAME** - The name of the new library.

##### After creating a folder, let's create a library in Jellyfin: 

Add a new library:

[![2023-11-03_10-33.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-03-10-33.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-03-10-33.png)

Assign the appropriate folder to this library:

[![2023-11-03_10-34_1.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-03-10-34-1.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-03-10-34-1.png)

[![2023-11-03_10-34_2.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-03-10-34-2.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-03-10-34-2.png)

###  

### New item:

To download a new item, navigate to the root of your project "/" and enter the following commands:

```
cd mnt/LIBRARY_NAME
```

```
wget DOWNLOAD_ITEM_URL
```

**LIBRARY\_NAME** - The name of the library.

**DOWNLOAD\_ITEM\_URL** - The download URL of the item you want to upload to the server.

###  

### After all

Scan all libraries by clicking on the "Scan All Libraries" button, or scan the specific library by clicking on the three dots and selecting "Scan Library."

[![2023-11-03_10-35.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-03-10-35.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-03-10-35.png)[![2023-11-03_10-45.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-03-10-45.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-03-10-45.png)

# Getting Access Hash (API key)

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

```
Dashboard -> API Keys
```

##### Create a new API Key

[![123.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/123.png)](https://doc.puq.info/uploads/images/gallery/2023-11/123.png)

##### Whrite an App Name

[![2023-11-02_12-27.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/2023-11-02-12-27.png)](https://doc.puq.info/uploads/images/gallery/2023-11/2023-11-02-12-27.png)

##### Now you can getting an API key

[![1.png](https://doc.puq.info/uploads/images/gallery/2023-11/scaled-1680-/1.png)](https://doc.puq.info/uploads/images/gallery/2023-11/1.png)

# Client Area



# Home screen

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

The end customer, after logging in to his own customer panel, has access to the following information and options

- Link to the user manual (which was defined by the administrator when setting up the service.).
- Jellyfin server address
- Authorization data
- User informations
- List of active devices
- List of enabled user libraries
- Drop all devices
- Unblock user
- Change the Jellyfin user password
- Add/Management/Delete Media Account
- Drop Account Devices
- List of Media Accounts

[![image-1720788138760.png](https://doc.puq.info/uploads/images/gallery/2024-07/scaled-1680-/image-1720788138760.png)](https://doc.puq.info/uploads/images/gallery/2024-07/image-1720788138760.png)

# Add Media Account

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

[![image-1714989768737.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714989768737.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714989768737.png)

**Username** - Set a media account username. It consists of the username of the main account and a unique name for this media account.

**Password** - Write a password for registering the media account, or generate one by clicking Generate.

**Disable libraries** - Here are all the libraries available to the main account. If you want to restrict access for this media account to any of the libraries, simply select that library.

<p class="callout info">Press **Ctrl** to select multiple libraries.  
Press **Shift** to select all libraries.</p>

# Management Media account

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

[![image-1714989933793.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714989933793.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714989933793.png)

**Enabled** - Update account status.

**Username** - Set a media account username. It consists of the username of the main account and a unique name for this media account.

**Password** - Write a password for registering the media account, or generate one by clicking Generate.

**Disable libraries** - Here are all the libraries available to the main account. If you want to restrict access for this media account to any of the libraries, simply select that library.

<p class="callout info">Press **Ctrl** to select multiple libraries.  
Press **Shift** to select all libraries.</p>

#### Media account active devices

Here is a list of active devices for this account.

<p class="callout info">Press "Drop Account Devices" to sign out from the devices.</p>

[![image-1714989930833.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714989930833.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714989930833.png)

<div id="bkmrk--1"><div></div></div>

# Admin Area



# Product Information

### Jellyfin Family module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-jellyfin-family.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Jellyfin-Family/) | [FAQ](https://faq.puqcloud.com/)

##### Here is the data presented for the service admin in WHMCS

[![image-1714990081742.png](https://doc.puq.info/uploads/images/gallery/2024-05/scaled-1680-/image-1714990081742.png)](https://doc.puq.info/uploads/images/gallery/2024-05/image-1714990081742.png)

