nuckrelay is a Netbird relay server written in Rust.
It works for my personal use
Features:
- WebSocket
- TLS
- Let's Encrypt
- QUIC
- Proper healthcheck
- Metrics
It is currently only tested on Docker-based installations provided by the NetBird self-hosting quickstart guide.
Assuming that the NetBird installation directory is $HOME
:
git clone https://github.com/iwanbk/nuckrelay.git
cd nuckrelay
make alpine-release
cp target/x86_64-unknown-linux-musl/release/nuckrelay $HOME/netbird-relay
Modify the relay
section in the docker-compose.yml
file:
relay:
image: alpine:latest
restart: unless-stopped
networks: [netbird]
volumes:
# Mount current directory to /app in the container
- ./:/app
entrypoint: ["/bin/sh", "-c"]
command:
- |
cd /app
set -a
source ./relay.env
set +a
chmod +x ./netbird-relay
./netbird-relay
logging:
driver: "json-file"
options:
max-size: "500m"
max-file: "2"
Stop the old containers and start the new ones:
sudo docker compose down
sudo docker compose up -d caddy zitadel
sudo docker compose up -d