Add Platforms to Navigation and Pages for Proxmox and RaspberryPi (#506)

* Refactor installation documentation and navigation structure

- Updated the NavigationDocs component to reorganize installation links for NetBird, separating platforms into distinct sections for better clarity.
- Added new installation options for Raspberry Pi and Proxmox VE, enhancing the documentation for additional platforms.
- Improved the installation index page to include a dedicated section for additional platforms, ensuring users can easily find relevant installation instructions.

* Moved info from KH

* Enhance Proxmox VE installation documentation

- Added an introduction to Proxmox VE, explaining its features and suitability for running NetBird.
- Included detailed steps for downloading a container template, emphasizing popular Linux distributions.
- Added a video tutorial section and links to additional resources for setting up Proxmox with NetBird.

* Update NavigationDocscs

* Added <div className="videowrapper">

* Update TUN passthrough instructions for clarity

Clarify instructions for enabling /dev/tun passthrough in Proxmox VE.
This commit is contained in:
Brandon Hopkins
2025-12-03 10:17:48 -08:00
committed by GitHub
parent e1dd6fffde
commit c309000266
4 changed files with 202 additions and 16 deletions

View File

@@ -30,20 +30,25 @@ export const docsNavigation = [
links: [
{ title: 'Quickstart Guide', href: '/get-started' },
{
title: 'Install NetBird',
isOpen: true,
href: '/get-started/install',
links: [
{ title: 'Linux', href: '/get-started/install/linux' },
{ title: 'Windows', href: '/get-started/install/windows' },
{ title: 'MacOS', href: '/get-started/install/macos' },
{ title: 'Android', href: '/get-started/install/android' },
{ title: 'iOS', href: '/get-started/install/ios' },
{ title: 'Docker', href: '/get-started/install/docker' },
{ title: 'Synology', href: '/get-started/install/synology' },
{ title: 'pfSense', href: '/get-started/install/pfsense' },
{ title: 'OPNsense', href: '/get-started/install/opnsense' },
],
title: 'Install NetBird', isOpen: true, href: '/get-started/install',
links: [
{ title: 'Linux', href: '/get-started/install/linux' },
{ title: 'Windows', href: '/get-started/install/windows' },
{ title: 'MacOS', href: '/get-started/install/macos' },
{ title: 'Docker', href: '/get-started/install/docker' },
{ title: 'iOS', href: '/get-started/install/ios' },
{ title: 'Android', href: '/get-started/install/android' },
],
},
{
title: 'Platforms', isOpen: false,
links: [
{ title: 'Proxmox VE', href: '/get-started/install/proxmox-ve' },
{ title: 'Synology', href: '/get-started/install/synology' },
{ title: 'pfSense', href: '/get-started/install/pfsense' },
{ title: 'OPNsense', href: '/get-started/install/opnsense' },
{ title: 'Raspberry Pi', href: '/get-started/install/raspberrypi' },
]
},
{ title: 'CLI', href: '/get-started/cli' },
],

View File

@@ -9,14 +9,19 @@ If you're a new user you should visit the [Quickstart Guide](https://docs.netbir
The NetBird client (agent) allows a peer to join a pre-existing NetBird deployment. If a NetBird deployment is not yet available, there are both managed and [self-hosted](https://docs.netbird.io/selfhosted/selfhosted-quickstart) options available.
## Install and Update Instructions
* [Install on Linux](/get-started/install/linux)
* [Install on macOS](/get-started/install/macos)
* [Install on Windows](/get-started/install/windows)
* [Install on Synology](/get-started/install/synology)
* [Install on Android](/get-started/install/android)
* [Install on iOS](/get-started/install/iOS)
## Additional Platforms
* [Install on Synology](/get-started/install/synology)
* [Install on pfSense](/get-started/install/pfsense)
* [Install on OPNSense](/get-started/install/opnsense)
* [Install on Raspberry Pi](/get-started/install/raspberrypi)
* [Install on Proxmox VE](/get-started/install/proxmox-ve)
## Running NetBird with SSO Login
### Desktop UI Application
If you installed the Desktop UI client, you can launch it and click on Connect.

View File

@@ -0,0 +1,119 @@
import {Note} from "@/components/mdx";
# Install NetBird on Proxmox VE
Proxmox VE (Virtual Environment) is an open-source server virtualization platform that combines KVM-based virtualization and LXC containerization. It provides a web-based management interface for deploying and managing virtual machines and containers, making it ideal for running the NetBird agent in a containerized environment.
## Installing in an LXC
### Downloading a Container Template
Before creating an LXC container, you'll need to download a container template. NetBird runs on a majority of Linux distributions, so you can choose any Linux template you're comfortable with. Popular choices include Ubuntu, Debian, CentOS, Alpine, and others.
To download a container template:
1. In the Proxmox web interface, navigate to your **local storage** (usually `local` or `local-lvm`)
2. Click on **CT Templates** in the left sidebar
3. Click the **Templates** button at the top
4. Browse the available templates and select your preferred Linux distribution
- For stability, many users prefer LTS versions (e.g., Ubuntu 22.04 LTS)
- The template list includes various distributions and versions
5. Click **Download** next to your chosen template
6. Wait for the download to complete (this may take a few minutes depending on your internet connection)
Once the template is downloaded, you're ready to create your LXC container.
### Container Setup
Once we have a template ready, we can click the "Create CT" button on the top right. Then input all of your settings. If you're only using this container for NetBird, the required specs will be relatively low and you can always change things in the future.
1. **General tab:**
- Set CT ID (e.g., 100)
- Enter hostname
- Set password or upload SSH key
- Setup as unprivileged
2. **Template tab:**
- Select the downloaded template
3. **Disks tab:**
- Set disk size to **8 GB** or higher
- Choose storage location (SSD/NVME storage is best)
4. **CPU tab:**
- Set cores as needed (1-2 cores)
5. **Memory tab:**
- Set memory to **1024 MB** (1GB)
- Set swap as desired (512 MB recommended)
6. **Network tab:**
- Configure network interface (usually bridge vmbr0)
- Set IPv4 to DHCP to manage with your router or a static IP.
7. **DNS tab:**
- Configure DNS servers if needed
8. **Confirm** - Review settings and click "Finish"
The container will be created and ready to start. Head into the options for this LXC and enable the start-on-boot option so this container will automatically run if the Proxmox Node reboots.
### Enable /dev/tun Passthrough
TUN provides an interface for user applications, such as NetBird, to deal with the raw network traffic. By default, since we set this up as an unprivileged container, there is no access to this interface. To fix this, we'll need to bind the host's TUN device into the container and grant the container permission to use it. The lines below mount /dev/net and /dev/net/tun from the Proxmox host into the LXC and allow the TUN character device (10:200) so NetBird can create virtual network interfaces inside the container.
Under your main node, access the shell. Find your container number, for example, mine is 100. Use nano or another text editor to open the configuration.
```bash
nano /etc/pve/lxc/100.conf
```
Now add these lines to the bottom.
```bash
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,create=dir
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
```
Now, restart the container and you can check within the shell for the container to see if the interface is available.
```bash
ls /dev/net
```
### Installing NetBird
Before we install NetBird, we are going to want to generate a one-off setup key to use with our LXC installation. While [NetBird's documentation offers comprehensive guidance on this process](https://docs.netbird.io/manage/peers/register-machines-using-setup-keys), let's quickly review the essential steps:
- Access your [NetBird dashboard](https://app.netbird.io/)
- Navigate to the `Setup Keys` section
- Click the `Create Setup Key` button on the right
- Name your key (e.g., "ProxmoxLXC")
- Set an expiration date (recommended for enhanced security)
- Configure auto-assigned groups if needed (e.g., "Homelab")
- Click `Create Setup Key` to generate the setup key
- Copy the generated key and store it securely as you'll need it for the next steps
Access the shell for your container. You can log in as root and use the password from the initial setup wizard. We are going to need to update our system and install curl so the installation script will work. The command below is for Ubuntu/Debian, change this if needed.
```bash
apt update && apt upgrade -y && apt install curl -y
```
Now that our system is updated, we can install NetBird with the following command.
```bash
curl -fsSL https://pkgs.netbird.io/install.sh | sh
```
Now that NetBird is installed, we can connect our peer to our account using the setup key we generated earlier.
```bash
netbird up --setup-key <SETUP KEY>
```
Now you should see a successful connection message and you're good to go! Now if you want to access your entire network using this LXC with NetBird, check out the docs to learn more about NetBird Networks!
## Proxmox Setup Tutorial
<div className="videowrapper">
<iframe src="https://www.youtube.com/embed/KMNS_JoHFhg" allow="fullscreen;"></iframe>
</div>
## Additional Resources
If you want to set up your own Proxmox machine, check out our [Knowledge Hub post on Proxmox](https://netbird.io/knowledge-hub/proxmox-getting-started-guide). This comprehensive guide covers the basics of getting Proxmox up and running, setting up a LXC container with NetBird for remote connectivity, and diving into some more advanced tips and tricks such as setting up a ZFS pool and enabling IOMMU for GPU passthrough.

View File

@@ -0,0 +1,57 @@
import {Note} from "@/components/mdx";
# Install NetBird on the Raspberry Pi
<div className="videowrapper">
<iframe src="https://www.youtube.com/embed/P0aAdYnex80" allow="fullscreen;"></iframe>
</div>
Start by downloading [Raspberry Pi Imager](https://www.raspberrypi.com/software/) for your operating system and inserting a microSD card with at least 8GB of capacity, though 32GB is recommended for breathing room.
Open Raspberry Pi Imager and choose Ubuntu Server 24.04 LTS (64-bit) from the "Other general-purpose" OS section under Ubuntu. Select your microSD card as the storage destination, then click the gear icon to configure the advanced options. Here you'll set your hostname to something memorable like `netbird-pi`, enable SSH with password authentication, and configure your username and password. If you're not using Ethernet, add your WiFi credentials here as well, along with your locale and timezone settings.
Write the image to the card, insert it into your Pi, and power it on. It may take a couple minutes to complete its first boot sequence.
## Post-Install Setup and NetBird Installation
### Initial Connection
Once your Pi boots, which typically takes 2-3 minutes on first run, connect via SSH using either the hostname you configured or the IP address assigned by your router:
```bash
ssh username@netbirdpi.local
# Or use the IP address if mDNS isn't working
ssh username@192.168.1.xxx
```
### System Updates
First, ensure your system is up to date:
```bash
sudo apt update && sudo apt upgrade -y
```
### Install NetBird with One Command
NetBird provides a simple one-line installation script that detects your system architecture, adds the NetBird repository, installs the latest stable version, and configures the service to start on boot:
```bash
curl -fsSL https://pkgs.netbird.io/install.sh | sh
```
### Connect to Your NetBird Network
Run the following to authenticate and join your network:
```bash
sudo netbird up
```
This will present you with an Authentication URL. Open it in your browser, log in with your NetBird account, and approve the device. Alternatively, you can authenticate with a **setup key**. Learn more about generating setup key, learn more about that [here](https://docs.netbird.io/how-to/setup-keys-add-servers-to-network#creating-a-setup-key-in-your-net-bird-account).
Once the device is connected it should show up under the **Peers** page on the NetBird dashboard. Here we can quickly assign the Raspberry Pi a group. Within the **Groups** column click the pencil to edit and add the peer to a new group, this can be something like “RaspberryPi”.