diff --git a/public/docs-static/img/get-started/truenas/truenas-config-setupkey.png b/public/docs-static/img/get-started/truenas/truenas-config-setupkey.png new file mode 100644 index 00000000..be22ffc1 Binary files /dev/null and b/public/docs-static/img/get-started/truenas/truenas-config-setupkey.png differ diff --git a/public/docs-static/img/get-started/truenas/truenas-install-netbird.png b/public/docs-static/img/get-started/truenas/truenas-install-netbird.png new file mode 100644 index 00000000..e1d203f2 Binary files /dev/null and b/public/docs-static/img/get-started/truenas/truenas-install-netbird.png differ diff --git a/public/docs-static/img/get-started/truenas/truenas-refresh-catalog.png b/public/docs-static/img/get-started/truenas/truenas-refresh-catalog.png new file mode 100644 index 00000000..8640ba40 Binary files /dev/null and b/public/docs-static/img/get-started/truenas/truenas-refresh-catalog.png differ diff --git a/src/components/NavigationDocs.jsx b/src/components/NavigationDocs.jsx index a901cb20..d11c5cbd 100644 --- a/src/components/NavigationDocs.jsx +++ b/src/components/NavigationDocs.jsx @@ -48,6 +48,7 @@ export const docsNavigation = [ links: [ { title: 'Proxmox VE', href: '/get-started/install/proxmox-ve' }, { title: 'Synology', href: '/get-started/install/synology' }, + { title: 'TrueNAS', href: '/get-started/install/truenas' }, { title: 'pfSense', href: '/get-started/install/pfsense' }, { title: 'OPNsense', href: '/get-started/install/opnsense' }, { title: 'Raspberry Pi', href: '/get-started/install/raspberrypi' }, diff --git a/src/pages/get-started/install/index.mdx b/src/pages/get-started/install/index.mdx index 8fe6f8ad..a724f535 100644 --- a/src/pages/get-started/install/index.mdx +++ b/src/pages/get-started/install/index.mdx @@ -17,6 +17,7 @@ The NetBird client (agent) allows a peer to join a pre-existing NetBird deployme ## Additional Platforms * [Install on Synology](/get-started/install/synology) +* [Install on TrueNAS](/get-started/install/truenas) * [Install on pfSense](/get-started/install/pfsense) * [Install on OPNSense](/get-started/install/opnsense) * [Install on Raspberry Pi](/get-started/install/raspberrypi) diff --git a/src/pages/get-started/install/truenas.mdx b/src/pages/get-started/install/truenas.mdx new file mode 100644 index 00000000..cf3996c0 --- /dev/null +++ b/src/pages/get-started/install/truenas.mdx @@ -0,0 +1,65 @@ +import {Note} from "@/components/mdx"; + +# Install NetBird on TrueNAS + +NetBird can now be installed on TrueNAS via [TrueNAS Apps](https://apps.truenas.com/catalog/netbird-client/) (the built-in app catalog). + + +The NetBird app on TrueNAS runs in a Docker container. You **cannot** use the peer's NetBird IP address or [NetBird domain (hostname)](/manage/dns/index) to connect directly to your TrueNAS instance traffic to those addresses reaches the container, not the TrueNAS host. See [Access TrueNAS via NetBird Networks](#access-truenas-via-netbird-networks) below for the full steps. + + +## Install NetBird from Catalog + +1. In TrueNAS, go to **Apps** and search for **NetBird**. If it doesn't appear, refresh the catalog (e.g., **Discover Apps** or the catalog refresh option in your TrueNAS version). + +Refresh TrueNAS catalog and search for NetBird + +2. Click **Install** and configure the app as described below. Most defaults are fine; the main fields you need to set are **Hostname** and **Setup Key**. + +Install NetBird app on TrueNAS + +3. After installation, confirm the app is **Running** in the Apps list. +4. Open your [NetBird dashboard](https://app.netbird.io/) and go to **Peers**. You should see your TrueNAS peer listed. Rename it (e.g., "TrueNAS" or "NAS") if you like for easier identification. + +### App configuration + +When you install the NetBird app, TrueNAS shows an **Edit Netbird Client** form. Use this as a guide: + +NetBird client configuration form with Setup Key + + +**Netbird Client Configuration** + +- **Application name**: Display name in TrueNAS (e.g., "NetBird" or "Netbird Client"). Default is fine. +- **Timezone**: Leave default unless you need a specific timezone for logs. +- **Hostname**: Name this peer will use in NetBird (e.g., "truenas" or "nas"). Pick something you’ll recognize in the dashboard. +- **Setup Key** *(required)*: Paste the setup key you created in [Generate your Setup Key](#generate-your-setup-key). This registers the TrueNAS peer with your NetBird network. +- **Userspace**: Leave default (userspace networking). Only change if you have a specific need. +- **Management URL** *(optional)*: Leave empty for NetBird Cloud (`https://api.netbird.io`). Set this only if you use a [self-hosted](/selfhosted/selfhosted-quickstart) management server. +- **Additional Environment Variables**: Leave empty unless you need extra [environment variables](/get-started/cli#environment-variables). + +**Network Configuration** + +- **Host Network**: Enable **Host Network** so the NetBird container uses the TrueNAS host's network stack. Without it, the container only has its own network and cannot reach your LAN or act as a [routing peer](/manage/networks/homelab/access-home-network#choose-or-add-a-routing-peer-in-your-lan). Turn this on unless you have a specific reason to keep the peer isolated (e.g. you only need the peer in the mesh with no LAN access). + +**Storage Configuration** + +- **State Storage**: Use the default (e.g., **ixVolume**) so NetBird can persist its state. This keeps the peer identity and config across app restarts. + +**Resources Configuration** + +- **CPUs** and **Memory (MB)**: Defaults are usually sufficient. Increase if you have many peers or heavy routing. + +You can leave **Labels** and **Additional Storage** empty unless you use them for access policies or custom storage. + +## Access TrueNAS via NetBird Networks + +Because NetBird on TrueNAS runs inside a Docker container, you cannot connect directly to the TrueNAS host or its services by IP as you would to a normal peer. To reach TrueNAS or other devices on the same LAN, use [NetBird Networks](/manage/networks/homelab/access-home-network): + +1. **Create a NetBird Network**: In the dashboard, go to **Networks** → **Add Network**. Name it (e.g., "Home LAN" or "TrueNAS LAN"). +2. **Add the TrueNAS peer as a routing peer**: In that network, click **Add Routing Peer** and select the TrueNAS peer. This makes TrueNAS the gateway for traffic into your local subnet. +3. **Add a network resource**: Click **Add Resource**. Either: + - Add your **entire LAN subnet** (e.g., `192.168.1.0/24`) so you can reach TrueNAS and any other device on that subnet, or + - Add a **single resource** (e.g., `192.168.1.100/32`) if you only need access to the TrueNAS host. + +After you define an [access control policy](/manage/networks/homelab/access-home-network#create-an-access-control-policy) that allows the right peers or groups to reach this network, you can access TrueNAS and other resources on that subnet through the TrueNAS routing peer. \ No newline at end of file