Skip to content

Latest commit

 

History

History
293 lines (201 loc) · 11.6 KB

File metadata and controls

293 lines (201 loc) · 11.6 KB
title TrueNAS Community Edition
description This article will describe how to set up a TrueNAS server to be compatible will services described in this wiki.
published true
date 2025-07-20 20:08:40 UTC
tags
editor markdown
dateCreated 2024-02-23 13:25:40 UTC

This page was built to describe TrueNAS CE Fangtooth 25.04.1 {.is-info}

Installation

YouTube Basic Walkthrough

See the playlist here: https://youtube.com/playlist?list=PL6zQmF2gDqDT7SHyBe7ni1P2S4NzyJpD6

{.tabset}

Dashboard

Dashboard

Storage

Storage

Renaming a Pool

This is strongly recommended if you have a pool name with spaces or capitalization in it {.is-warning}

If you have any apps or shares accessing the pool, stop them before starting these steps {.is-danger}

  1. Navigate to Storage → Pool

  2. Click on the Export/Disconnect button to export the pool without destroying any of the data:

  3. Next, in the shell, run these commands as root replacing the original name of the pool with the new name you have chosen.:

    zpool import original_name new_name
  4. to confirm the new name is working:

    zpool status new_name
  5. so we can import it in the GUI again:

    zpool export new_name
  6. Lastly, navigate to the Storage → Pool tab and click the button for Import Pool in the top right corner. Select the new pool you have just renamed.

If you had any apps using hostpath for the old pool they will have to be edited/recreated. Same goes for rsync tasks, shares, snapshots, etc.
{.is-warning}

https://youtu.be/mm3lyPQcseE

Adding a Single Disk

To add a single disk to an existing RAIDZ(1,2,3) pool, use the Extend button in the devices menu.

devicesmirrorvdevselected.png

Note that you will not be able to gain 100% of the usable space from that disk until you run the rebalancing script. You can calculate how much capacity you will gain by using the calculator.

To view progress of the expansion, run this command in the shell:

zpool status pool_name

Watch Lawrence do it:

Datasets

Datsets

For snapshots and rollbacks at a granular level, datasets should be set up in the pool for each individual app.

Host Path Config Storage

Apps running on Scale should use the Host Path Config option to store their data. You will find this option in the right hand menu under Storage Configuration > Type. This allows for the rapid redeployment of apps with no loss to their configurations, which can be considerable for some. Each app uses its respective host path from the example above. For a video explanation and example of this:
https://youtu.be/JZ9zbcyLcDo

Permissions

In order for the apps to write to the dataset properly, make sure to select the ‘Apps’ option for the dataset preset:

Once the dataset has been created, you can still modify its permissions like below:

For a video walkthrough on permissions:
https://youtu.be/qAGN0_73cV4

Shares

Shares

Data Protection

Data Protection

Network

Network

Adding a Static IP

Having a static IP to your server will prove necessary if you refer to your apps as IP:Port as shown in most of this wiki. If the IP of the server were to change, all of your apps would become unreachable.

  1. Navigate to Network > Interfaces
  2. Click the Pencil icon next to your ethernet adapter
  3. Uncheck the box for DHCP
  4. Click Add for the Aliases. Enter your IP address, then select /24.

Make sure the IP address you select is available {.is-warning}

As long as you are accessing the WebGUI from the address you just selected, you should be given a prompt to Save Changes.

If you are coming from a different IP address, you will need to log back in within 60 seconds to the WebGUI at the new address you just chose, navigate to the Network page, then Save Changes. {.is-warning}

DNS Servers

We need to change the Nameservers away from our local to something more reliable.

  1. Navigate to Network > Global Configuration
  2. Click Settings
  3. Change Nameserver 1 to 1.1.1.1 and Nameserver 2 to 9.9.9.9.

Building a Bridge

Before we setup the VM, we have to build a network bridge. This is necessary because without it, our VM won't be able to see anything on our TrueNAS host. Follow the docs or even better, follow this YouTube video:

Instances

Instances

Upgrading VMs From Previous Versions

Right now this is difficult to do with Windows but has been fairly straight forward with Linux. With Linux I notice the ethernet device changes upon migration, so if you are having issues use VNC to look at the console and troubleshoot your networking.

For Windows this migration guide should help. I didn't write it, but it seems to work for many people.

Changing Default Port 53

By default, Incus runs on port 53, which will conflict with any DNS servers you want to run. To change the default port for Incus, run this command in the TrueNAS shell:

sudo incus network set incusbr0 raw.dnsmasq="port=5354"

Also, if you use a bridge and set Incus to use the bridge, it also solves the conflict.

Incus Helper Scripts

Note that this repo is under development so not everything is functional! {.is-warning}

Starting on Fangtooth, the ability to launch LXCs via the TrueNAS command line is now a thing. Similar to Proxmox, the creation of pre-built containers is vastly simplified by the use of scripts. See this website for a list of scripts available.

Installing the CLI

In order to use the scripts you must first install the Helper Scripts CLI.

  1. Create a dataset for the CLI (unmodified general permissions will be fine)
  2. Navigate to the TrueNAS shell
  3. Enter these commands, assuming the path of the dataset is /mnt/tank/scripts:
cd /mnt/tank/scripts
wget https://github.com/bketelsen/IncusScripts/releases/download/v0.2.1/scripts-cli_Linux_x86_64.tar.gz
tar -xzvf scripts-cli_Linux_x86_64.tar.gz
echo 'export PATH=$PATH:/mnt/tank/scripts' >> ~/.zshrc
source ~/.zshrc
echo 'export PATH=$PATH:/mnt/tank/scripts' >> ~/.bashrc
source ~/.bashrc

Uninstalling the CLI

In the event you want to remove the scripts, simple delete the dataset you downloaded the to CLI in the above step. If you are still having issues, trying running this command in the TrueNAS shell:

incus profile rm scriptcli-storage

Creating a Windows VM

  1. Download the .iso file for the version of Windows you want. These .iso files were compiled in May 2025 with the virtio drivers built in:

  2. Create a New Instance

  3. Give it a name

  4. Click VM and select the radio button for Upload ISO, import a zvol or use another volume

  5. Click Upload ISO and select the ISO you just downloaded

  6. You should see it mounted in the Volumes box and can click Select

  7. Assign CPU and Memory

  8. In Storage select Virtio-SCSI as the Root Disk I/O Bus

  9. Give it 60 GiB or more Root Disk Size

  10. Click the box to Enable VNC

  11. Click Create

  12. You now must jump to the VNC quickly so you can press any key to boot from the CD!!

  13. Go through the install per usual a. In the event you are stopped because there is no internet hit SHIFT F10 then type oobe\bypassnro

  14. Once you have successfully booted into Windows, shutdown the VM

  15. Add the VirtIO Drivers ISO from above to the Disks with a Boot Priority of 2 and an I/O Bus of Virtio-SCSI

  16. Start the VM

  17. Navigate to Device Manager and right-click the Ethernet Device

  18. Click Update Driver

  19. Click Browse my Computer for Drivers then click Browse

  20. Select the drive which has the VirtIO disk mounted in it

  21. Click Next then Finish

  22. To enable RDP type settings into the Start Bar

  23. Search for remote desktop

  24. Click Remote Desktop Settings and the flip the switch to Enable Remote Desktop

Activation information can be found here {.is-info}

Apps

Apps

Check out the new TrueNAS Apps directory and guide! {.is-success}

Per-App IP Addresses

  1. Go to your router page and find an open IP in your subnet
  2. Navigate to the Network Tab and edit the interface your server is running on
  3. Add the open IP address as an additional Alias
  4. Navigate to the app you want to assign the IP address to
  5. Click Edit and scroll to the Network Configuration section, then the Host IPs subsection, then click Add
  6. Select the new IP address and click Save at the bottom

Note that the WebUI button will not open the correct IP when you click it; you must navigate to the app manually {.is-warning}

Migrating Apps to Another Pool

Always make sure you are using host path configuration for your volumes and take a backup of compose files first (if you are using them)! {.is-warning}

Follow this guide from Stux

System

General Settings

Managing Your Configuration File

You should be taking regular backups of your Configuration File. Especially when upgrading versions, which you will be prompted to do before you start the upgrade.

To take a backup, click Manage Configuration → Download File. In the event you ever need to restore from that file, click Upload File.

When uploading a config file it will overwrite your current settings with the saved ones from the file! {.is-warning}

GUI

Some apps like Nginx Proxy Manager require ports 80 and 443. By default, TrueNAS uses these for the webGUI. Change them by clicking the Settings button to any other open port.

After you save the changes you will lose connection to the UI and have to navigate to the new port in the URL.

Hardening

Lawrence does a great job of going over some basic security hardening tasks. Watch his video for some tips.
https://youtu.be/u0btB6IkkEk?feature=shared