mirror of
https://github.com/netbirdio/docs.git
synced 2026-04-18 16:36:35 +00:00
279 lines
7.1 KiB
Plaintext
279 lines
7.1 KiB
Plaintext
import {Note} from "@/components/mdx";
|
|
|
|
# Linux Installation
|
|
|
|
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.
|
|
|
|
|
|
## Linux Install Script
|
|
|
|
```bash
|
|
curl -fsSL https://pkgs.netbird.io/install.sh | sh
|
|
```
|
|
|
|
### Ubuntu/Debian (APT)
|
|
1. Add the repository:
|
|
|
|
```bash
|
|
sudo apt-get update
|
|
sudo apt-get install ca-certificates curl gnupg -y
|
|
curl -sSL https://pkgs.netbird.io/debian/public.key | sudo gpg --dearmor --output /usr/share/keyrings/netbird-archive-keyring.gpg
|
|
echo 'deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main' | sudo tee /etc/apt/sources.list.d/netbird.list
|
|
```
|
|
2. Update APT's cache
|
|
|
|
```bash
|
|
sudo apt-get update
|
|
```
|
|
3. Install the package
|
|
|
|
```bash
|
|
# for CLI only
|
|
sudo apt-get install netbird
|
|
# for GUI package
|
|
sudo apt-get install netbird-ui
|
|
```
|
|
|
|
### RHEL/Amazon Linux 2 (RPM)
|
|
|
|
1. Add the repository:
|
|
```bash
|
|
sudo tee /etc/yum.repos.d/netbird.repo <<EOF
|
|
[netbird]
|
|
name=netbird
|
|
baseurl=https://pkgs.netbird.io/yum/
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=https://pkgs.netbird.io/yum/repodata/repomd.xml.key
|
|
repo_gpgcheck=1
|
|
EOF
|
|
```
|
|
2. Install the package
|
|
```bash
|
|
# for CLI only
|
|
sudo yum install netbird
|
|
# for GUI package
|
|
sudo yum install libappindicator-gtk3 libappindicator netbird-ui
|
|
```
|
|
|
|
### Fedora/Amazon Linux 2023 (DNF)
|
|
|
|
1. Create the repository file:
|
|
```bash
|
|
sudo tee /etc/yum.repos.d/netbird.repo <<EOF
|
|
[netbird]
|
|
name=netbird
|
|
baseurl=https://pkgs.netbird.io/yum/
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=https://pkgs.netbird.io/yum/repodata/repomd.xml.key
|
|
repo_gpgcheck=1
|
|
EOF
|
|
```
|
|
2. Import the file
|
|
```bash
|
|
#Fedora 40 or earlier/Amazon Linux 2023** (DNF 4)
|
|
sudo dnf config-manager --add-repo /etc/yum.repos.d/netbird.repo
|
|
#Fedora 41 or later (DNF 5)
|
|
sudo dnf config-manager addrepo --from-repofile=/etc/yum.repos.d/netbird.repo
|
|
```
|
|
3. Install the package
|
|
```bash
|
|
# for CLI only
|
|
sudo dnf install netbird
|
|
# for GUI package
|
|
sudo dnf install libappindicator-gtk3 libappindicator netbird-ui
|
|
```
|
|
On some recent releases, the default behaviour for `libappindicator` was changed, so we need to install `gnome-shell-extension-appindicator` and enable it:
|
|
```
|
|
sudo dnf install gnome-shell-extension-appindicator
|
|
sudo gnome-extensions enable appindicatorsupport@rgcjonas.gmail.com
|
|
```
|
|
Under X11, you may need to restart GNOME Shell (Alt+F2, r, ⏎) after that. Under Wayland you need to logout and login again.
|
|
|
|
|
|
### Universal Blue (Native package)
|
|
|
|
1. Create the repository file:
|
|
```bash
|
|
sudo tee /etc/yum.repos.d/netbird.repo <<EOF
|
|
[netbird]
|
|
name=netbird
|
|
baseurl=https://pkgs.netbird.io/yum/
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=https://pkgs.netbird.io/yum/repodata/repomd.xml.key
|
|
repo_gpgcheck=1
|
|
EOF
|
|
```
|
|
|
|
3. Install the package
|
|
```bash
|
|
# for CLI only
|
|
rpm-ostree install netbird
|
|
# for GUI package
|
|
rpm-ostree install netbird-ui
|
|
# Don't forget to reboot to apply
|
|
```
|
|
4. Start the service
|
|
```bash
|
|
systemctl enable --now netbird
|
|
```
|
|
|
|
|
|
### Fedora Universal Blue / SteamOS (DistroBox)
|
|
1. Create a distrobox container
|
|
```bash
|
|
distrobox create netbird --init --image debian:12 -a "--cap-add=NET_ADMIN" --additional-packages systemd --root
|
|
```
|
|
2. Install inside the container
|
|
```bash
|
|
distrobox enter --root netbird
|
|
curl -fsSL https://pkgs.netbird.io/install.sh | sh
|
|
```
|
|
3. Export the distrobird binary to the host
|
|
```bash
|
|
#from inside the container
|
|
distrobox-export -b /usr/bin/netbird
|
|
```
|
|
|
|
### openSUSE (zypper)
|
|
|
|
1. Add the repository:
|
|
```
|
|
sudo zypper addrepo https://pkgs.netbird.io/yum/ netbird
|
|
```
|
|
2. Install the package / GPG key
|
|
|
|
* Key Fingerprint: `AA9C 09AA 9DEA 2F58 112B 40DF DFFE AB2F D267 A61F`
|
|
* Key ID: `DFFEAB2FD267A61F`
|
|
* Email: `dev@netbird.io`
|
|
```
|
|
# MicroOS (immutable OS with selinux)
|
|
transactional-update pkg in netbird
|
|
reboot
|
|
|
|
# Tumbleweed / Leap
|
|
zypper in netbird
|
|
```
|
|
|
|
### NixOS 22.11+/unstable
|
|
|
|
1. Edit your [`configuration.nix`](https://nixos.org/manual/nixos/stable/index.html#sec-changing-config)
|
|
|
|
```nix
|
|
{ config, pkgs, ... }:
|
|
{
|
|
services.netbird.enable = true; # for netbird service & CLI
|
|
environment.systemPackages = [ pkgs.netbird-ui ]; # for GUI
|
|
}
|
|
```
|
|
2. Build and apply new configuration
|
|
|
|
```bash
|
|
sudo nixos-rebuild switch
|
|
```
|
|
|
|
### Binary Install
|
|
**Installation from binary (CLI only)**
|
|
|
|
1. Checkout NetBird [releases](https://github.com/netbirdio/netbird/releases/latest)
|
|
2. Download the latest release:
|
|
```bash
|
|
curl -L -o ./netbird_<VERSION>.tar.gz https://github.com/netbirdio/netbird/releases/download/v<VERSION>/netbird_<VERSION>_<OS>_<Arch>.tar.gz
|
|
```
|
|
|
|
<Note>
|
|
|
|
You need to replace some variables from the URL above:
|
|
|
|
- Replace **VERSION** with the latest released version.
|
|
- Replace **OS** with "linux", "darwin" for MacOS or "windows"
|
|
- Replace **Arch** with your target system CPU architecture
|
|
|
|
</Note>
|
|
|
|
3. Decompress
|
|
```bash
|
|
tar xzf ./netbird_<VERSION>.tar.gz
|
|
sudo mv netbird /usr/bin/netbird
|
|
sudo chown root:root /usr/bin/netbird
|
|
sudo chmod +x /usr/bin/netbird
|
|
```
|
|
After that you may need to add /usr/bin in your PATH environment variable:
|
|
````bash
|
|
export PATH=$PATH:/usr/bin
|
|
````
|
|
4. Install and run the service
|
|
```bash
|
|
sudo netbird service install
|
|
sudo netbird service start
|
|
```
|
|
|
|
## Updating
|
|
|
|
If your NetBird client was installed through a package manager, use that to update.
|
|
If you used the one-command script to install, you can follow this to update:
|
|
|
|
```bash
|
|
netbird down
|
|
curl -fsSLO https://pkgs.netbird.io/install.sh
|
|
chmod +x install.sh
|
|
./install.sh --update
|
|
netbird up
|
|
```
|
|
|
|
|
|
## Running NetBird with SSO Login
|
|
### Desktop UI Application
|
|
If you installed the Desktop UI client, you can launch it and click on Connect.
|
|
> It will open your browser, and you will be prompt for email and password. Follow the instructions.
|
|
|
|
<p>
|
|
<img src="/docs-static/img/get-started/netbird-sso-login-ui.gif" alt="high-level-dia" className="imagewrapper-big"/>
|
|
</p>
|
|
|
|
### CLI
|
|
Alternatively, you could use command line. Simply run
|
|
```bash
|
|
netbird up
|
|
```
|
|
> It will open your browser, and you will be prompt for email and password. Follow the instructions.
|
|
|
|
<p>
|
|
<img src="/docs-static/img/get-started/netbird-sso-login-cmd.gif" alt="high-level-dia" className="imagewrapper-big"/>
|
|
</p>
|
|
|
|
Check connection status:
|
|
```bash
|
|
netbird status
|
|
```
|
|
|
|
## Running NetBird with a Setup Key
|
|
In case you are activating a server peer, you can use a [setup key](/manage/peers/register-machines-using-setup-keys) as described in the steps below.
|
|
> This is especially helpful when you are running multiple server instances with infrastructure-as-code tools like ansible and terraform.
|
|
|
|
1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/manage/peers/register-machines-using-setup-keys)).
|
|
|
|
```bash
|
|
netbird up --setup-key <SETUP KEY>
|
|
```
|
|
|
|
Alternatively, if you are hosting your own Management Service provide `--management-url` property pointing to your Management Service:
|
|
```bash
|
|
netbird up --setup-key <SETUP KEY> --management-url http://localhost:33073
|
|
```
|
|
|
|
> You could also omit the `--setup-key` property. In this case, the tool will prompt for the key.
|
|
|
|
2. Check connection status:
|
|
```bash
|
|
netbird status
|
|
```
|
|
|
|
3. Check your IP:
|
|
|
|
```bash
|
|
ip addr show wt0
|
|
```
|