Netbird
Purpose¶
Netbird is a free and open-source VPN server and client platform. The following document will illustrate how to deploy Netbird into a homelab or business environment.
Assumptions
It is assumed that you are running Rocky Linux 10. You can technically use anything, but the command syntax will be different depending on the platform, and this document will not outline every possible operating system.
Install Prerequisites¶
You need to install a few things before we can begin with the deployment of Netbird. Run the following commands set up the server environment before Netbird deployment. This also assumes that you opened all of the necessary ports listed in the official Netbird deployment documentation as well as set up a reverse proxy pointing to port 80 on the Netbird server.
Run as Non-Sudo
Run all of the commands below as a normal user, do not use sudo su
when deploying Netbird.
# Update system & install necessary packages
sudo dnf update -y
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin jq
sudo systemctl enable docker --now
# Configure normal user to have docker privileges
sudo usermod -aG docker nicole
# Logout and log back in via SSH
exit
ssh [email protected]
# Create Netbird project directory and pull down installation files
sudo mkdir -p /srv/containers/netbird
sudo chmod -R 770 /srv/containers/netbird
sudo chown -R nicole:docker /srv/containers/netbird
cd /srv/containers/netbird
curl -sSLO https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh
# Deploy Netbird
export NETBIRD_DOMAIN=vpn.bunny-lab.io
bash getting-started-with-zitadel.sh
Example Deployment Output¶
If everything is working correctly, you can go make some coffee and come back. When everything is done getting set up, you will see output similar to the below: