TrueNAS CE 25.04 with Plex and qBittorrent
Install TrueNAS Community Edition 25.04 with Plex and qBittorrent
I had the opportunity to test the Dell OptiPlex 3000 Thin Client with the TrueNAS Community Edition 25.04. The machine is equipped with 2 CPUs, 8GB of RAM and a 64GB eMMC storage.
🕹️ Recorded screen cast:
Installation
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 the 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 to install TrueNAS (
mmcblk0
) - Administrative user (truenas_admin)
- …
Links:
- How to Install TrueNAS CORE on an SSD NVMe/SATA Partition and Reclaim Unused Boot-Pool Space
- Install TrueNAS SCALE on a partition instead of the full disk
Configuration
The admin username for the TrueNAS WebUI is
truenas_admin
, and the password is the same as the root password set during installation.
Settings
Configure General Settings (GUI, Localization and Email Settings), Advanced Settings (Access), Services (SMB, SSH), and Shell (Create + 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
and the plex
dataset in the my-local-disk-pool
storage pools, 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 my-local-disk-pool
pool as the 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"
Open Speed Test
Install the Open Speed Test application to easily measure network speed and performance:
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 Open Speed Test web interface by accessing it through the local instance.
File Browser
Add the File Browser application to easily manage files through a user-friendly web interface:
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 on the File Browser link and use the following login credentials:
- User:
admin
- Password:
admin
qBittorrent
Install qBittorrent application to download torrents:
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 the qBittorrent to work properly with pools and datasets.
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 provided credentials.
Click the Options icon 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:
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"
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"
Enjoy … 😉