Post

TrueNAS CE 25.04 with Plex and qBittorrent

Install TrueNAS Community Edition 25.04 with Plex and qBittorrent

TrueNAS CE 25.04 with Plex and qBittorrent

I had the opportunity to test the Dell OptiPlex 3000 Thin Client with TrueNAS Community Edition 25.04. The machine is equipped with 2 CPUs, 8GB of RAM, and 64GB of eMMC storage.

🕹️ Recorded screen cast:

Installation

TrueNAS

Put the TrueNAS CE 25.04 ISO on a USB stick using balenaEtcher.

Make sure to disable Secure Boot in the BIOS before proceeding.

Boot TrueNAS from the USB stick and follow these steps:

  • Shell
    • Run commands:

      1
      2
      
      sed -i 's/-n3:0:0/-n3:0:+16G/' /usr/lib/python3/dist-packages/truenas_installer/install.py
      exit
      
  • Install/Upgrade
  • Select the disk where TrueNAS will be installed (mmcblk0).
  • Set up the administrative user (e.g., truenas_admin).

Links:

Configuration

TrueNAS

The admin username for the TrueNAS WebUI is truenas_admin, and the password is the same as the root password set during the installation.

Settings

Configure General Settings (GUI, Localization, and Email Settings), Advanced Settings (Access), Services (SMB, SSH), and Shell (Create and Export pool):

graph LR
    subgraph truenas[TrueNAS]
      system[System] --> general_settings[General Settings]
      system --> advanced_settings[Advanced Settings]
      system --> services[Services]
      system --> shell[Shell]
    end
    subgraph general_settings_dashboard[General Settings]
      general_settings --> gui_settings[GUI Settings]
      gui_settings --> web_interface_http_https_redirect[Web Interface HTTP -> HTTPS Redirect]
      general_settings --> localization_settings[Localization Settings]
      localization_settings --> timezone[Timezone: Europe/Prague]
      general_settings --> email_settings[Email Settings]
      email_settings --> send_mail_method[Send Mail Method: GMail OAuth]
    end
    subgraph advanced_settings_dashboard[Advanced Settings]
      advanced_settings --> access_configure[Access Configure]
      access_configure --> session_timeout[Session Timeout: 30000]
    end
    subgraph services_dashboard[Services]
      services --> smb[SMB]
      services --> ssh[SSH]
    end
    subgraph shell_dashboard[Shell]
      shell --> commands[$ sudo su<br># sgdisk -n0:0:0 -t0:BF01 /dev/mmcblk0<br># partprobe<br># zpool create -f -R /mnt -O compression=lz4 -O atime=off my-local-disk-pool /dev/mmcblk0p4<br># zpool export my-local-disk-pool]
    end
    click general_settings "https://truenas.local/ui/system/general"
    click advanced_settings "https://truenas.local/ui/system/advanced"
    click services "https://truenas.local/ui/system/services"
    click shell "https://truenas.local/ui/system/shell"
    style commands text-align:left

Create and Import Storage pool

Import the previously created pool (my-local-disk-pool) and create a new pool named my-pool:

graph LR
    subgraph truenas[TrueNAS]
      storage[Storage]
    end
    subgraph storage_dashboard[Storage Dashboard]
      storage --> import_pool[Import Pool]
      import_pool --> pool[Pool: my-local-disk-pool]
      storage --> create_pool[Create Pool]
      create_pool --> name[Name: my-pool<br>Layout: Stripe<br>]
    end
    click storage "https://truenas.local/ui/storage"
    click create_pool "https://truenas.local/ui/storage/create"

Create Dataset

Create the data dataset in the my-pool pool and the plex dataset in the my-local-disk-pool storage pool, ensuring proper permissions are configured for each:

graph LR
    subgraph truenas[TrueNAS]
      datasets[Datasets]
    end
    subgraph datasets_dashboard[Datasets]
      datasets --> dataset_name_my_pool[Dataset Name: my-pool]
      dataset_name_my_pool --> add_dataset_my_pool[Add Dataset]
      add_dataset_my_pool --> name_data[Name: data]
      add_dataset_my_pool --> dataset_preset_data[Dataset Preset -> SMB]
    end
    subgraph datasets_dashboard[Datasets]
      datasets --> dataset_name_my_local_disk_pool[Dataset Name: my-local-disk-pool]
      dataset_name_my_local_disk_pool --> add_dataset_my_local_disk_pool[Add Dataset]
      add_dataset_my_local_disk_pool --> name_data_plex[Name: plex]
      add_dataset_my_local_disk_pool --> dataset_preset_plex[Dataset Preset -> Apps]
    end
    click datasets "https://truenas.local/ui/datasets"
graph LR
    subgraph truenas[TrueNAS]
      datasets[Datasets]
    end
    subgraph datasets_dashboard[Datasets]
      datasets --> dataset_name[Dataset Name: my-pool -> data]
      dataset_name --> permissions[Permissions -> Edit]
    end
    subgraph edit_acl_dashboard[Edit ACL]
      permissions --> add_item["\+ Add Item"]
      add_item --> who[Who -> Group]
      add_item --> group[Group -> apps]
      add_item --> apply_permissions_recursively[Apply permissions recursively]
      add_item --> save_access_control_list[Save Access Control List]
    end
    click datasets "https://truenas.local/ui/datasets"

Configure Credentials

Create a new user named ruzickap, and update the password and email address for the existing truenas_admin user:

graph LR
    subgraph truenas[TrueNAS]
      credentials[Credentials] --> backup_credentials[Backup Credentials]
      credentials --> users[Users]
    end
    subgraph backup_credentials_dashboard[Backup Credentials]
      backup_credentials --> provider[Provider: Microsoft OneDrive]
      provider --> oauth_authentication[OAuth Authentication -> Log In To Provider]
      backup_credentials --> drives_list[Drives List -> OneDrive]
    end
    subgraph users_dashboard_[Users]
      users --> add[Add]
      add --> add_full_name[Full Name: Petr Ruzicka]
      add --> add_username[Username: ruzickap]
      add --> add_password[Password: my_password]
      add --> add_email[Email: petr.ruzicka\@gmail.com]
      add --> add_confirm_password[Confirm Password: my_password]
      add --> add_confirm_password_auxiliary_groups[Auxiliary Groups: builtin_administrators, docker]
      add --> add_home_directory[Home Directory: /mnt/my-local-disk-pool]
      add --> add_ssh_password_login_enabled[SSH password login enabled]
      add --> add_shell[Shell: bash]
      add --> add_allow_all_sudo_commands[Allow all sudo commands]
      add --> add_allow_all_sudo_commands_with_no_password[Allow all sudo commands with no password]
      add --> add_create_home_directory[Create Home Directory]
      users --> truenas_admin[truenas_admin]
      truenas_admin --> edit[Edit]
      edit --> edit_new_password[New Password: my_password]
      edit --> edit_email[Email: petr.ruzicka\@gmail.com]
      edit --> edit_confirm_new_password[Confirm New Password: my_password]
      edit --> edit_allow_all_sudo_commands_with_no_password[Allow all sudo commands with no password]
    end
    click users "https://truenas.local/ui/credentials/users"
    click backup_credentials "https://truenas.local/ui/credentials/backup-credentials"

Add Applications

Configure the applications to use the my-local-disk-pool pool as their designated storage location:

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> configuration[Configuration]
      configuration --> choose_pool[Choose Pool]
      choose_pool --> pool[Pool: my-local-disk-pool]
    end
    click apps "https://truenas.local/ui/apps/installed"

OpenSpeedTest

Install the OpenSpeedTest application to easily measure network speed and performance:

Open Speed Test

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> discover_apps[Discover Apps]
      discover_apps --> open_speed_test[Open Speed Test]
      open_speed_test --> install[Install]
    end
    click apps "https://truenas.local/ui/apps/installed"

Test the OpenSpeedTest web interface by accessing it through the local instance.

SpeedTest by OpenSpeedTest

File Browser

Add the File Browser application to manage files easily through a user-friendly web interface:

File Browser

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> discover_apps[Discover Apps]
      discover_apps --> file_browser[File Browser]
      file_browser --> install[Install]
      install --> storage_configuration[Storage Configuration]
      storage_configuration --> additional_storage[Additional Storage -> Add]
      additional_storage --> data_storage_type[Type: Host Path]
      additional_storage --> mount_path[Mount Path: /data]
      additional_storage --> host_path[Host Path: /mnt/my-pool/data]
    end
    click apps "https://truenas.local/ui/apps/installed"

Test the File Browser web interface by clicking the File Browser link and using the following login credentials:

  • User: admin
  • Password: admin

qBittorrent

Install the qBittorrent application to download torrents:

qBittorrent

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> discover_apps[Discover Apps]
      discover_apps --> qbittorrent[qBittorrent]
      qbittorrent --> install[Install]
      install --> storage_configuration[Storage Configuration]
      storage_configuration --> qbittorrent_downloads_storage[qBittorrent Downloads Storage]
      qbittorrent_downloads_storage --> qbittorrent_configuration_storage_type[Type: Host Path]
      qbittorrent_downloads_storage --> qbittorrent_configuration_storage_mount_path[Host Path: /mnt/my-pool/data]
    end
    click apps "https://truenas.local/ui/apps/installed"
qBittorrent Configuration

It is necessary to configure qBittorrent to work properly with the configured pools and datasets.

qBittorrent

Obtain the username and password for qBittorrent.

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> qbittorrent[qbittorrent]
      qbittorrent --> workloads[Workloads]
      workloads --> qbittorrent_running[qbittorrent – Running]
      qbittorrent_running --> view_logs[View Logs]
      view_logs --> password[A temporary password is provided for this session: xxxxxx]
    end
    click apps "https://truenas.local/ui/apps/installed"

Access the qBittorrent web interface and log in using the credentials obtained from the logs.

Click the Options icon (typically a gear symbol) at the top and configure the following settings:

graph LR
    options[Options] --> downloads[Downloads]
    options[Options] --> webui[WebUI]
    downloads --> save_path[Delete .torrent files afterwards]
    downloads --> default_save_path[Default Save Path: /downloads/torrents]
    webui --> bypass[Bypass authentication for clients in whitelisted IP subnets: 192.168.1.0/24]

Plex

Install the Plex application for media streaming.

Plex

graph LR
    subgraph truenas[TrueNAS]
      apps[Apps]
    end
    subgraph applications_installed_dashboard[Applications Installed]
      apps --> discover_apps[Discover Apps]
      discover_apps --> plex[Plex]
      plex --> install[Install]
      install --> storage_configuration[Storage Configuration]
      storage_configuration --> plex_data_storage[Plex Data Storage]
      plex_data_storage --> plex_data_storage_type[Type: Host Path]
      plex_data_storage --> plex_data_storage_host_path[Host Path: /mnt/my-pool/data]
      storage_configuration --> plex_configuration_storage[Plex Configuration Storage]
      plex_configuration_storage --> plex_configuration_storage_type[Type: Host Path]
      plex_configuration_storage --> plex_configuration_storage_host_path[Host Path: /mnt/my-local-disk-pool/plex]
    end
    click apps "https://truenas.local/ui/apps/installed"

Plex

Configure Data Protection

Configure Cloud Sync Tasks to back up Plex data to Microsoft OneDrive, and schedule regular S.M.A.R.T. tests:

graph LR
    subgraph truenas[TrueNAS]
      data_protection[Data Protection]
    end
    subgraph data_protection_dashboard[Data Protection]
      data_protection --> cloud_sync_tasks[Cloud Sync Tasks -> Add]
      cloud_sync_tasks --> provider[Credentials: Microsoft OneDrive]
      provider --> what_and_when_direction[Direction: PUSH]
      provider --> what_and_when_directory_files[Directory/Files: /mnt/my-local-disk-pool/plex]
      provider --> what_and_when_folder[Folder: /truenas-backup-plex]
      provider --> what_and_when_schedule[Schedule: Weekly]
      data_protection --> periodic_smart_tests[Periodic S.M.A.R.T. Tests -> Add]
      periodic_smart_tests --> all_disks[All Disks]
      periodic_smart_tests --> type[Type: SHORT]
      periodic_smart_tests --> schedule[Schedule: Weekly]
    end
    click data_protection "https://truenas.local/ui/data-protection"

TrueNAS

Enjoy … 😉

[end of _posts/2025/2025-02-18-truenas-plex-torrent.md]

This post is licensed under CC BY 4.0 by the author.