Flex is a collection of curated services that aims to provide a complete home media server solution.
[!NOTE]
You may refer to Orked for help with setting up a Kubernetes cluster that meets all the following prerequisites.
[!NOTE]
The following configuration recommendations might not be the default settings for this chart but are highly recommended. Please carefully consider them before configuring your installation.
Disable qBittorrent and use an external qBittorrent server.
Set up an external qBittorrent server. Refer to this guide on how to do so.
Exclude qBittorrent from the Flex installation by setting qbt.enabled: false
in the values.yaml
file.
[!IMPORTANT]
Using an external qBittorrent server will require you to use SMB for either the global storage (Preferred) or alternatively, the downloads storage. Otherwise, you will encounter issues with Flex services such as Radarr and Sonarr not being able to access the downloaded media from the external qBittorrent server.
Using an external qBittorrent server helps avoid potential throttling issues with download/upload speeds.
Use the global storage instead of the downloads and media storage combo.
Enable the global storage by setting storage.global.enabled: true
in the values.yaml
file.
[!NOTE]
Using the global storage will automatically override the downloads and media storage settings and their roles.
Using the global storage is highly recommended to ensure that features such as hard linking (in Radarr and Sonarr) work as intended. Otherwise, downloaded media from the downloads storage will be copied over to the media storage, consuming more storage space and time.
Use SMB with the global storage.
Going this route will require you to set up an external SMB share on your network or use an existing one. This SMB storage will be used as the primary storage for your media files.
Prepare a directory layout such as this on the root of your SMB share for your media files and downloads:
Flex
├── Downloads
│ ├── complete
│ └── incomplete
└── Media
├── Movies
└── TV
[!IMPORTANT]
Using SMB with a Flex storage means that the SMB share must be available and accessible on your network at all times for the Flex services to function properly.
Enable SMB for the Flex installation by setting smb.enabled: true
in the values.yaml
file.
Enable SMB for the global storage by setting storage.global.smb: true
in the values.yaml
file.
Configure the smb
settings in the values.yaml
file accordingly.
Update the storage.global.subPath
setting in the values.yaml
file to point to the root of your Flex directory on the SMB share.
[!TIP]
From the sample directory layout above, thestorage.global.subPath
value should be set to"Flex"
.
Using SMB (for the global storage) is highly recommended (and in some cases, required) for several benefits:
Access and interact with your media files easily from any devices on your network.
Manage your storage space more effectively i.e. expanding and using the SMB share for other purposes, rather than allocating that storage space solely for the Flex installation.
Using SMB is required for Flex services to be able to access media files and downloads they need for their tasks when relying on an external server i.e. Plex or qBittorrent.
Use Ingress for hosting Flex services.
Enable Ingress for the Flex installation by setting ingress.enabled: true
in the values.yaml
file.
Enable Ingress and specify the registered domain name for each Flex service by setting their corresponding ingress
and domain
settings in the values.yaml
file:
[!IMPORTANT]
Replace the sample domain names with your actual domain names that have been registered to your DNS provider and pointed to your Kubernetes cluster.
Jackett: jackett.ingress: true
and jackett.domain: "jackett.example.com"
.
Overseerr: overseerr.ingress: true
and overseerr.domain: "overseerr.example.com"
.
Plex: plex.ingress: true
and plex.domain: "plex.example.com"
.
[!TIP]
If you are using an external Plex server, you may exclude Plex from these configurations.
qBittorrent: qbt.ingress: true
and qbt.domain: "qbt.example.com"
.
[!TIP]
If you are using an external qBittorrent server as recommended, you may exclude qBittorrent from these configurations.
Radarr: radarr.ingress: true
and radarr.domain: "radarr.example.com"
.
Sonarr: sonarr.ingress: true
and sonarr.domain: "sonarr.example.com"
.
Configure the ingress.clusterIssuer
setting in the values.yaml
file according to the name of the cluster issuer you have set up for your Ingress on your Kubernetes cluster. It currently defaults to "letsencrypt-dns-prod"
.
This is recommended for easier access to the Flex services from any devices from outside your network.
Add the repo to your local helm client:
helm repo add mika https://irfanhakim-as.github.io/charts
Update the repo to retrieve the latest versions of the packages:
helm repo update
[!IMPORTANT]
To prevent a potential issue with attaching/mounting volumes to multiple nodes, you may need to set the value ofreplicaCount
to"0"
in thevalues.yaml
file before upgrading. After the upgrade is complete, revert the value back to its previous setting and upgrade the chart once again to complete the upgrade process.
Get the values file of the Flex chart or an existing installation (release).
Get the latest Flex chart values file for a new installation:
helm show values mika/flex > values.yaml
Alternatively, get the values file of an existing Flex release:
helm get values ${releaseName} --namespace ${namespace} > values.yaml
Replace ${releaseName}
and ${namespace}
accordingly.
Edit your Flex values file with the intended configurations:
nano values.yaml
Pay extra attention to the descriptions and sample values provided in the chart values file.
Install a new release for Flex or upgrade an existing Flex release:
helm upgrade --install ${releaseName} mika/flex --namespace ${namespace} --create-namespace --values values.yaml --wait
Replace ${releaseName}
and ${namespace}
accordingly.
Verify that your Flex release has been installed:
helm ls --namespace ${namespace} | grep "${releaseName}"
Replace ${namespace}
and ${releaseName}
accordingly. This should return the release information if the release has been installed.
[!CAUTION]
Uninstalling a release will irreversibly delete all the resources associated with the release, including any persistent data.
Uninstall the desired release:
helm uninstall ${releaseName} --namespace ${namespace} --wait
Replace ${releaseName}
and ${namespace}
accordingly.
Verify that the release has been uninstalled:
helm ls --namespace ${namespace} | grep "${releaseName}"
Replace ${namespace}
and ${releaseName}
accordingly. This should return nothing if the release has been uninstalled.
[!NOTE]
The following steps require you to have set up and configured Radarr and Sonarr before proceeding.
Launch the Bazarr web interface.
In the General page under the Settings section, configure the following:
Authentication: Form
.
Username: Fill in the desired username.
Password: Fill in a secure password.
Leave the rest of the settings as default.
Click the Save button.
Configure Radarr/Sonarr:
Click the Radarr or Sonarr menu item under the Settings section.
Use Radarr/Sonarr: Toggle the Enabled switch to enable Radarr/Sonarr.
API Key: Get the API key from the Radarr/Sonarr web interface at Settings > General > Security > API Key
and paste it in this field.
Click the Test button to verify the settings.
Click the Save button.
If you are using an external server for Bazarr and have different paths to your media with Radarr/Sonarr, configure the Path Mapping settings:
/flex/Media/Movie
or /flex/Media/TV
./movie
or /tv
.Configure the subtitle languages:
Click the Languages menu item under the Settings section.
Languages Filter: Type and select the desired language(s) for your subtitles i.e. English
.
Languages Profiles: Click the Add New Profile button to add a new profile.
In the Edit Languages Profile form:
Master
.English
.Under the Default Settings section:
Master
.Master
.Click the Save button.
Configure the subtitle providers:
Click the Providers menu item under the Settings section.
Under the Providers section, click the + button to add a new provider.
In the Provider form:
Select the desired provider from the dropdown and fill in the required fields accordingly (if any).
[!TIP]
Recommended providers includeOpenSubtitles.com
,Subscenter
,Supersubtitles
,TVSubtitles
,Wizdom
, andYIFY Subtitles
.
Click the Save button.
Click the Save button.
Configure the subtitles:
Click the Subtitles menu item under the Settings section.
Under the Basic Options section, configure the following:
.sdh
.Under the Subzero Modifications section, configure the following:
Under the Synchronizarion / Alignement section, configure the following:
Leave the rest of the settings as default.
Click the Save button.
Configure the scheduler settings:
Click the Scheduler menu item under the Settings section.
Under the Disk Indexing section, configure the following:
Daily
.4:00
Daily
.5:00
Leave the rest of the settings as default.
Click the Save button.
Create a backup of the Bazarr configuration:
Click the System menu item on the left, and then click the Backups link.
Click the Backup Now button.
Wait for the backup to be created, then click the name (link) of the newly created backup file to download it.
Store the backup file in a safe location.
Launch the Jackett web interface.
Configure the following in the Jackett Configuration section:
Admin password: Add a secure password and click the Set Password button.
Blackhole directory: /downloads/
or /flex/Downloads/
.
FlareSolverr API URL: http://localhost:8191
.
[!IMPORTANT]
The FlareSolverr API URL value assumes that you include the built-in FlareSolverr server (flaresolverr.enabled: true
) in your installation. If you are using an external FlareSolverr server, replace the value with the actual address to the FlareSolverr server. If neither is the case, you may leave said field empty.
Click the Apply server settings button.
Add indexers to the Jackett server:
From the dashboard, click the Add Indexer button.
In the Select an indexer to setup popup, expand the Type dropdown and select Public.
Expand the Categories dropdown and select the TV category.
Select the checkbox corresponding to the desired indexers, and click the Add Selected button at the bottom of the list.
Repeat these steps for the Movies category.
Test the indexers by clicking the Test All button on the dashboard.
Remove any indexer that consistently fails the test by clicking the Delete (trash can) button corresponding to the indexer.
[!NOTE]
The following steps require you to have set up and configured Plex, Radarr, and Sonarr before proceeding.
Launch the Overseerr web interface and login using your Plex account.
In the Configure Plex page:
Configure Plex Settings:
Server: Manual configuration
.
Hostname or IP Address: localhost
.
[!NOTE]
If you are using an external Plex server, replace the value with the actual address to the Plex server.
Port: 32400
.
Use SSL: Disabled
.
Web App URL: Enter the domain name of the Plex server i.e. https://plex.example.com
.
[!NOTE]
You may skip this setting if you are using an external Plex server.
Click the Save Changes button.
Configure Plex Libraries:
Click the Continue button.
In the Configure Services page:
Radarr Settings:
Enabled
.Disabled
.Radarr
.localhost
.7878
.Disabled
.Settings > General > Security > API Key
and paste it in this field.HD-1080p
./data/Movies
or /flex/Media/Movies
.Announced
.Enabled
.Enabled
.Sonarr Settings:
Enabled
.Disabled
.Sonarr
.localhost
.8989
.Disabled
.Settings > General > Security > API Key
and paste it in this field.HD-1080p
./data/TV
or /flex/Media/TV
.Deprecated
.HD-1080p
./data/TV
or /flex/Media/TV
.Deprecated
.Enabled
.Enabled
.Enabled
.Click the Finish Setup button.
To request a Movie or TV series to be added to your Plex server:
In the Discover page of the Overseerr web interface, search for the Movie or TV series.
From the Search Results, locate and click the Movie or TV series.
In the selected media’s details page, click the Request button.
Click the Request button in the confirmation modal.
[!IMPORTANT]
Some of the following steps can be skipped or modified if you are using an external Plex server.
Log in and acquire the secret Claim Token from Plex. This token is required to authenticate the server with your Plex account, and is only valid for 4 minutes. Use this token for the plex.claim
setting in your installation.
[!NOTE]
Skip this step if you are using an external Plex server.
Launch the Plex web interface.
Go through the initial server setup, and disable the Allow me to access my media outside my home option.
Head to Settings > Server > Network and configure the following:
Enable Relay: Disabled
.
Custom server access URLs: Enter the domain name of the Plex server i.e. https://plex.example.com
.
[!NOTE]
You may skip this setting if you are using an external Plex server.
Click the Save Changes button.
Head to Settings > Server > Libraries and configure the following:
Click the Add Library button.
Select type:
Movies
.Movies
.English
.Add folders:
/data/Movies
or /flex/Media/Movies
.Repeat the same steps for the TV Shows library with the corresponding folder where your TV media is stored i.e. /data/TV
or /flex/Media/TV
.
[!NOTE]
Even if you are using an external qBittorrent server, follow these steps to ensure said server is properly configured.
Log into the qBittorrent web interface using the temporary password provided in the logs.
Click the Options button (gear cog icon).
In the newly opened Options window, navigate to the Web UI tab:
Navigate to the Downloads tab and configure the following:
Default Torrent Management Mode: Automatic
.
When Torrent Category changed: Relocate torrent
.
When Default Save Path changed: Relocate affected torrents
.
When Category Save Path changed: Relocate affected torrents
.
Use Subcategories: Enabled
.
Default Save Path: /downloads/complete
or /flex/Downloads/complete
.
Keep incomplete torrents in: /downloads/incomplete
or /flex/Downloads/incomplete
.
Run external program on torrent finished: /usr/bin/unrar x -r -y "%D*.rar" "%D"
[!IMPORTANT]
If you are using an external qBittorrent server, ensure thatunrar
is installed on the server.
Navigate to the BitTorrent tab and configure the following:
Torrent Queueing: Enabled
.
Maximum active downloads: 5
.
Maximum active uploads: 5
.
Maximum active torrents: 10
.
Do not count slow torrents in these limits: Enabled
.
When ratio reaches: 1
.
When total seeding time reaches: 1440 minutes
.
then: Pause torrent
.
Click the Save button to apply the changes.
[!NOTE]
The following steps require you to have set up and configured Jackett, Plex, and qBittorrent before proceeding.
Launch the Radarr/Sonarr web interface.
In the Authentication Required form:
Authentication Method: Forms (Login Page)
.
Authentication Required: Enabled
.
Username: Fill in the desired username.
Password: Fill in a secure password.
Password Confirmation: Repeat the password for confirmation.
Click the Save button.
Add indexers to Radarr/Sonarr:
Click the Settings menu item on the left, and then click the Indexers link.
Under the Indexers section, click the + button to add a new indexer.
Under Torrents, click Torznab.
In the Add Indexer - Torznab form:
Name: Pick an indexer you have added to Jackett and add its name to this field.
URL: Pick an indexer you have added to Jackett and paste the URL acquired from the indexer’s corresponding Copy Torznab Feed button here.
[!TIP]
If your Jackett service runs on a domain i.e. through Ingress, you may replace the domain name (i.e.https://jackett.example.com
) with localhost and Jackett’s service port (i.e.http://localhost:9117
).
API Key: Copy the API key from Jackett and paste it in this field.
Categories: Expand the dropdown and select all Movie (Radarr) or TV and Anime (Sonarr) related categories.
Anime Categories (Sonarr): Expand the dropdown and select all Anime related categories.
Anime Standard Format Search (Sonarr): Enabled
if the indexer has Anime related categories selected.
Leave the rest of the fields as default.
Click the Test button to verify the settings and wait for a green checkmark indicating that the test was successful.
Click the Save button.
Repeat the last step for each indexer you wish to add from Jackett.
Add a download client to Radarr/Sonarr:
Click the Settings menu item on the left, and then click the Download Clients link.
Under the Download Clients section, click the + button to add a new download client.
Under Torrents, click qBittorrent.
In the Add Download Client - qBittorrent form:
Host: The address of the qBittorrent server i.e. localhost
(if qbt.enabled: true
) or the address of the external qBittorrent server.
Port: The port of the qBittorrent server i.e. 8080
.
Username: Fill in the username you set for qBittorrent.
Password: Fill in the password you set for qBittorrent.
Remove Completed: Enabled
.
Leave the rest of the fields as default.
Click the Test button to verify the settings and wait for a green checkmark indicating that the test was successful.
Click the Save button.
If you’re using an external qBittorrent server and require path mapping, locate the Remote Path Mappings section in the Download Clients page:
Click the + button to add a new path mapping.
In the Add Remote Path Mapping form:
Host: Expand the dropdown and select the qBittorrent server.
Remote Path: Set the parent folder where your Movie media (Radarr) or TV media (Sonarr) is downloaded to on the qBittorrent server i.e. /downloads/
.
Local Path: Set the path to the same parent folder where it is mounted on the Radarr/Sonarr container i.e. /flex/Downloads/
.
Click the Save button.
Add a connection to Plex from Radarr/Sonarr:
Click the Settings menu item on the left, and then click the Connect link.
Under the Connections section, click the + button to add a new connection.
Under Add Connection, click Plex Media Server.
In the Add Connection - Plex Media Server form:
Host: localhost
.
[!NOTE]
If you are using an external Plex server, replace the value with the actual address to the Plex server.
Authenticate with Plex.tv: Click the corresponding button and log in with your Plex account.
Click the Test button to verify the settings and wait for a green checkmark indicating that the test was successful.
If you’re using an external Plex server and require path mapping:
Map Paths From: Add the path to the parent folder where your Movie media (Radarr) and TV media (Sonarr) are stored on Flex i.e. /flex/Media
.
Map Paths To: Add the path to the parent folder where your Movie media (Radarr) and TV media (Sonarr) are stored on the external Plex server i.e. /data
.
Click the Save button.
Configure the media management settings on Radarr/Sonarr:
Click the Settings menu item on the left, and then click the Media Management link.
Under the Importing section:
Import Extra Files: Toggle the corresponding checkbox to enable it.
Import Extra Files: Add a comma-separated list of file extensions you wish to include in the import i.e. srt
.
Click the Add Root Folder button to add a folder.
In the File Browser form, locate and select the folder where your Movie media (Radarr) (i.e. /data/Movies
or /flex/Media/Movies
) or TV media (Sonarr) (i.e. /data/TV
or /flex/Media/TV
) is stored (same as the one used for Plex), and click the Ok button.
Under the Movie Naming (Radarr) or Episode Naming (Sonarr) section, set the Rename Movies/Episodes option to Enabled
.
Click the Save Changes button.
Configure quality profiles on Radarr/Sonarr:
Click the Settings menu item on the left, and then click the Profiles link.
Under the Quality Profiles section, delete any profiles you may not want i.e. Any
, HD - 720p/1080p
, HD-720p
, SD
, and Ultra-HD
by opening said profile and clicking the Delete button.
[!TIP]
You may also configure any existing profiles or add new ones to better suit your preferences, make sure to click the Save button after making any changes.
Create a backup of the Radarr/Sonarr configuration:
Click the System menu item on the left, and then click the Backup link.
In the Backup page, click the Backup Now button.
Wait for the backup to be created, then click the name (link) of the newly created backup file to download it.
Store the backup file in a safe location.
Add a Movie (Radarr) or TV series (Sonarr) for download (using qBittorrent) and streaming (using Plex):
Click the Movies (Radarr) or Series (Sonarr) menu item on the left, and then click the Add New link.
In the provided search bar, search for a Movie (Radarr) or TV series (Sonarr) you wish to download and add to Plex, and select it from the search results.
In the show’s details modal, leave the form as default or configure accordingly, and click the Add Movie/{Show Name} button.
[!TIP]
If you’d like it to start searching and downloading, click the Start search for missing movie/episodes button in the form.
Alternatively, the recommended method of adding Movies (Radarr) or TV series (Sonarr) is to use Overseerr to request them.
[!NOTE]
Refer to the chart values file directly for more detailed configuration options including their descriptions and sample values.
Key | Type | Default | Description |
---|---|---|---|
bazarr.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Bazarr container. |
bazarr.dataStorage | string | "" |
The amount of persistent storage allocated for the Bazarr data storage. |
bazarr.domain | string | "" |
The ingress domain name that hosts the Bazarr server. |
bazarr.enabled | bool | true |
Specifies whether Bazarr should be deployed or excluded in case an external Bazarr server is used. |
bazarr.ingress | bool | false |
Specifies whether Bazarr should be hosted using an Ingress. |
flaresolverr.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the FlareSolverr container. |
flaresolverr.enabled | bool | true |
Specifies whether FlareSolverr should be deployed or excluded in case an external FlareSolverr server is used. |
flaresolverr.logHtml | string | "" |
Specifies whether to log all HTML that passes through the proxy. Default: "false" . |
flaresolverr.logLevel | string | "" |
The verbosity level of the FlareSolverr logs. Default: "info" . |
flaresolverr.timezone | string | "" |
The timezone used in the FlareSolverr logs and web browser. Default: "UTC" . |
global.gid | string | "" |
The group ID used to run the Flex containers. Default: "1000" . |
global.initScript | string | "" |
Custom init script to run before the Flex containers start. |
global.uid | string | "" |
The user ID used to run the Flex containers. Default: "1000" . |
image.bazarr.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Bazarr container image. Default: "IfNotPresent" . |
image.bazarr.registry | string | "" |
The registry where the Bazarr container image is hosted. Default: "lscr.io" . |
image.bazarr.repository | string | "" |
The name of the repository that contains the Bazarr container image used. Default: "linuxserver/bazarr" . |
image.bazarr.tag | string | "" |
The tag that specifies the version of the Bazarr container image used. Default: "v1.4.2-ls239" . |
image.flaresolverr.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the FlareSolverr container image. Default: "IfNotPresent" . |
image.flaresolverr.registry | string | "" |
The registry where the FlareSolverr container image is hosted. Default: "ghcr.io" . |
image.flaresolverr.repository | string | "" |
The name of the repository that contains the FlareSolverr container image used. Default: "flaresolverr/flaresolverr" . |
image.flaresolverr.tag | string | "" |
The tag that specifies the version of the FlareSolverr container image used. Default: "v3.3.13" . |
image.init.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Init container image. Default: "IfNotPresent" . |
image.init.registry | string | "" |
The registry where the Init container image is hosted. Default: "docker.io" . |
image.init.repository | string | "" |
The name of the repository that contains the Init container image used. Default: "busybox" . |
image.init.tag | string | "" |
The tag that specifies the version of the Init container image used. Default: "1.34" . |
image.jackett.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Jackett container image. Default: "IfNotPresent" . |
image.jackett.registry | string | "" |
The registry where the Jackett container image is hosted. Default: "lscr.io" . |
image.jackett.repository | string | "" |
The name of the repository that contains the Jackett container image used. Default: "linuxserver/jackett" . |
image.jackett.tag | string | "" |
The tag that specifies the version of the Jackett container image used. Default: "0.21.1700" . |
image.overseerr.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Overseerr container image. Default: "IfNotPresent" . |
image.overseerr.registry | string | "" |
The registry where the Overseerr container image is hosted. Default: "lscr.io" . |
image.overseerr.repository | string | "" |
The name of the repository that contains the Overseerr container image used. Default: "linuxserver/overseerr" . |
image.overseerr.tag | string | "" |
The tag that specifies the version of the Overseerr container image used. Default: "v1.33.2-ls95" . |
image.plex.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Plex container image. Default: "IfNotPresent" . |
image.plex.registry | string | "" |
The registry where the Plex container image is hosted. Default: "index.docker.io" . |
image.plex.repository | string | "" |
The name of the repository that contains the Plex container image used. Default: "plexinc/pms-docker" . |
image.plex.tag | string | "" |
The tag that specifies the version of the Plex container image used. Default: Chart appVersion . |
image.qbt.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the qBittorrent container image. Default: "IfNotPresent" . |
image.qbt.registry | string | "" |
The registry where the qBittorrent container image is hosted. Default: "lscr.io" . |
image.qbt.repository | string | "" |
The name of the repository that contains the qBittorrent container image used. Default: "linuxserver/qbittorrent" . |
image.qbt.tag | string | "" |
The tag that specifies the version of the qBittorrent container image used. Default: 4.6.3-r0-ls310 . |
image.radarr.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Radarr container image. Default: "IfNotPresent" . |
image.radarr.registry | string | "" |
The registry where the Radarr container image is hosted. Default: "lscr.io" . |
image.radarr.repository | string | "" |
The name of the repository that contains the Radarr container image used. Default: "linuxserver/radarr" . |
image.radarr.tag | string | "" |
The tag that specifies the version of the Radarr container image used. Default: 5.2.6.8376-ls202 . |
image.sonarr.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Sonarr container image. Default: "IfNotPresent" . |
image.sonarr.registry | string | "" |
The registry where the Sonarr container image is hosted. Default: "lscr.io" . |
image.sonarr.repository | string | "" |
The name of the repository that contains the Sonarr container image used. Default: "linuxserver/sonarr" . |
image.sonarr.tag | string | "" |
The tag that specifies the version of the Sonarr container image used. Default: 4.0.1.929-ls224 . |
imagePullSecrets | list | [] |
Credentials used to securely authenticate and authorise the pulling of container images from private registries. |
ingress.clusterIssuer | string | "" |
The name of the cluster issuer for Ingress. Default: "letsencrypt-dns-prod" . |
ingress.customAnnotations | list | [] |
Additional configuration annotations to be added to the Ingress resource. |
ingress.enabled | bool | false |
Specifies whether Ingress should be enabled for hosting Flex services. |
jackett.autoUpdate | bool | true |
Specifies whether to allow Jackett to automatically update itself inside the container. |
jackett.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Jackett container. |
jackett.dataStorage | string | "" |
The amount of persistent storage allocated for the Jackett data storage. |
jackett.domain | string | "" |
The ingress domain name that hosts the Jackett server. |
jackett.ingress | bool | false |
Specifies whether Jackett should be hosted using an Ingress. |
overseerr.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Overseerr container. |
overseerr.dataStorage | string | "" |
The amount of persistent storage allocated for the Overseerr data storage. |
overseerr.domain | string | "" |
The ingress domain name that hosts the Overseerr server. |
overseerr.ingress | bool | false |
Specifies whether Overseerr should be hosted using an Ingress. |
plex.claim | string | "" |
The secret claim token used to claim ownership of the Plex server. Get it from https://www.plex.tv/claim. |
plex.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Plex container. |
plex.dataStorage | string | "" |
The amount of persistent storage allocated for the Plex data storage. |
plex.domain | string | "" |
The ingress domain name that hosts the Plex server. |
plex.enabled | bool | true |
Specifies whether Plex should be deployed or excluded in case an external Plex server is used. |
plex.ingress | bool | false |
Specifies whether Plex should be hosted using an Ingress. |
qbt.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the qBittorrent container. |
qbt.dataStorage | string | "" |
The amount of persistent storage allocated for the qBittorrent data storage. |
qbt.domain | string | "" |
The ingress domain name that hosts the qBittorrent server. |
qbt.enabled | bool | true |
Specifies whether qBittorrent should be deployed or excluded in case an external qBittorrent server is used. |
qbt.ingress | bool | false |
Specifies whether qBittorrent should be hosted using an Ingress. |
radarr.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Radarr container. |
radarr.dataStorage | string | "" |
The amount of persistent storage allocated for the Radarr data storage. |
radarr.domain | string | "" |
The ingress domain name that hosts the Radarr server. |
radarr.ingress | bool | false |
Specifies whether Radarr should be hosted using an Ingress. |
replicaCount | string | "" |
The desired number of running replicas for Flex. Default: "1" . |
resources.bazarr | object | {} |
Bazarr container resources. |
resources.flaresolverr | object | {} |
FlareSolverr container resources. |
resources.jackett | object | {} |
Jackett container resources. |
resources.overseerr | object | {} |
Overseerr container resources. |
resources.plex | object | {} |
Plex container resources. |
resources.qbt | object | {} |
qBittorrent container resources. |
resources.radarr | object | {} |
Radarr container resources. |
resources.sonarr | object | {} |
Sonarr container resources. |
service.type | string | "" |
The type of service used for Flex services. Default: "ClusterIP" . |
smb.enabled | bool | false |
Specifies whether to enable persistent storage to be provisioned in the form of an SMB share. |
smb.mountOptions | list | [] |
The additional mount options used to mount the SMB share volume. |
smb.pvStorage | string | "" |
The amount of persistent storage available on the SMB share volume. Default: "100Gi" . |
smb.pvcStorage | string | "" |
The amount of persistent storage allocated for the SMB share storage. Default: "1Gi" . |
smb.secretName | string | "" |
The name of the existing secret containing the credentials used to authenticate with the SMB share. Default: "smbcreds" . |
smb.secretNamespace | string | "" |
The namespace where the secret containing the credentials used to authenticate with the SMB share is located. Default: "default" . |
smb.share | string | "" |
The SMB share address and name to mount as a persistent volume. |
smb.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the SMB share storage. Default: "smb" . |
sonarr.customConfigs | list | [] |
Optional custom configurations to be mounted as a file inside the Sonarr container. |
sonarr.dataStorage | string | "" |
The amount of persistent storage allocated for the Sonarr data storage. |
sonarr.domain | string | "" |
The ingress domain name that hosts the Sonarr server. |
sonarr.ingress | bool | false |
Specifies whether Sonarr should be hosted using an Ingress. |
storage.data.enabled | bool | true |
Specifies whether persistent storage should be provisioned for data storage. |
storage.data.mountPath | string | "" |
The path where the data storage should be mounted on the container. Default: "/config" . |
storage.data.storage | string | "" |
The default amount of persistent storage allocated for each data storage. Default: "1Gi" . |
storage.data.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the data storage. Default: "longhorn" . |
storage.data.subPath | string | "" |
The subpath within the data storage to mount to the container. Leave empty if not required. |
storage.downloads.enabled | bool | false |
Specifies whether persistent storage should be provisioned for downloads storage. |
storage.downloads.mountPath | string | "" |
The path where the downloads storage should be mounted on the container. Default: "/downloads" . |
storage.downloads.smb | bool | false |
Specifies whether to use an SMB share for the downloads storage. |
storage.downloads.storage | string | "" |
The amount of persistent storage allocated for the downloads storage. This setting is ignored if SMB is enabled for said storage. Default: "1Gi" . |
storage.downloads.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the downloads storage. This setting is ignored if SMB is enabled for said storage. Default: "longhorn" . |
storage.downloads.subPath | string | "" |
The subpath within the downloads storage to mount to the container. Leave empty if not required. |
storage.global.enabled | bool | true |
Specifies whether persistent storage should be provisioned for global storage. This storage will override the downloads and media storage. |
storage.global.mountPath | string | "" |
The path where the global storage should be mounted on the container. Default: "/flex" . |
storage.global.smb | bool | false |
Specifies whether to use an SMB share for the global storage. |
storage.global.storage | string | "" |
The amount of persistent storage allocated for the global storage. This setting is ignored if SMB is enabled for said storage. Default: "1Gi" . |
storage.global.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the global storage. This setting is ignored if SMB is enabled for said storage. Default: "longhorn" . |
storage.global.subPath | string | "" |
The subpath within the global storage to mount to the container. Leave empty if not required. |
storage.media.enabled | bool | false |
Specifies whether persistent storage should be provisioned for media storage. |
storage.media.mountPath | string | "" |
The path where the media storage should be mounted on the container. Default: "/data" . |
storage.media.smb | bool | false |
Specifies whether to use an SMB share for the media storage. |
storage.media.storage | string | "" |
The amount of persistent storage allocated for the media storage. This setting is ignored if SMB is enabled for said storage. Default: "1Gi" . |
storage.media.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the media storage. This setting is ignored if SMB is enabled for said storage. Default: "longhorn" . |
storage.media.subPath | string | "" |
The subpath within the media storage to mount to the container. Leave empty if not required. |