about summary refs log tree commit diff
path: root/nixpkgs/nixos/modules/services/networking/netbird.md
blob: e1f6753cbd30ccae2aa657e34cd059cb2be05bd7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Netbird {#module-services-netbird}

## Quickstart {#module-services-netbird-quickstart}

The absolute minimal configuration for the netbird daemon looks like this:

```nix
{
  services.netbird.enable = true;
}
```

This will set up a netbird service listening on the port `51820` associated to the
`wt0` interface.

It is strictly equivalent to setting:

```nix
{
  services.netbird.tunnels.wt0.stateDir = "netbird";
}
```

The `enable` option is mainly kept for backward compatibility, as defining netbird
tunnels through the `tunnels` option is more expressive.

## Multiple connections setup {#module-services-netbird-multiple-connections}

Using the `services.netbird.tunnels` option, it is also possible to define more than
one netbird service running at the same time.

The following configuration will start a netbird daemon using the interface `wt1` and
the port 51830. Its configuration file will then be located at `/var/lib/netbird-wt1/config.json`.

```nix
{
  services.netbird.tunnels = {
    wt1 = {
      port = 51830;
    };
  };
}
```

To interact with it, you will need to specify the correct daemon address:

```bash
netbird --daemon-addr unix:///var/run/netbird-wt1/sock ...
```

The address will by default be `unix:///var/run/netbird-<name>`.

It is also possible to overwrite default options passed to the service, for
example:

```nix
{
  services.netbird.tunnels.wt1.environment = {
    NB_DAEMON_ADDR = "unix:///var/run/toto.sock";
  };
}
```

This will set the socket to interact with the netbird service to `/var/run/toto.sock`.