NetBird Management Service Web UI Panel
620
stars
603
commits
TypeScript
primary language
Sep 11, 2026
updated
This project is the UI for NetBird's Management service.
Hosted version: https://app.netbird.io/
See NetBird repo
The purpose of this project is simple - make it easy to manage VPN built with NetBird. The dashboard makes it possible to:
Disclaimer. We believe that proper user management system is not a trivial task and requires quite some effort to make it right. Therefore we decided to use Auth0 service that covers all our needs (user management, social login, JWT for the management API). Auth0 so far is the only 3rd party dependency that can't be really self-hosted.
Install Docker
Register Auth0 account
Running NetBird UI Dashboard requires the following Auth0 environmental variables to be set (see docker command below):
AUTH0_DOMAIN AUTH0_CLIENT_ID AUTH0_AUDIENCE
To obtain these, please use Auth0 React SDK Guide up until "Configure Allowed Web Origins"
NetBird UI Dashboard uses NetBird's Management Service HTTP API, so setting NETBIRD_MGMT_API_ENDPOINT is required. Most likely it will be http://localhost:33071 if you are hosting Management API on the same server.
Run docker container without SSL (Let's Encrypt):
docker run -d --name netbird-dashboard \
--rm -p 80:80 -p 443:443 \
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
-e AUTH0_CLIENT_ID=<SET YOUR CLIENT ID> \
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
netbirdio/dashboard:main
Run docker container with SSL (Let's Encrypt):
docker run -d --name netbird-dashboard \
--rm -p 80:80 -p 443:443 \
-e NGINX_SSL_PORT=443 \
-e LETSENCRYPT_DOMAIN=<YOUR PUBLIC DOMAIN> \
-e LETSENCRYPT_EMAIL=<YOUR EMAIL> \
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
-e AUTH0_CLIENT_ID=<SET YOUR CLEITN ID> \
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
netbirdio/dashboard:main
.local-config.json file. This file should contain values to be replaced from config.jsonnpm install to install dependenciesnpm run dev to start the development serverOpen http://localhost:3000 with your browser to see the result.
You can start editing by modifying the code inside src/..
The page auto-updates as you edit the file.
The new dashboard comes with a new docker image netbirdio/dashboard:main.
To migrate from the old dashboard (v1) wiretrustee/dashboard:main to the new one, please follow the steps below.
docker compose down dashboarddocker-compose.yml with netbirdio/dashboard:maindocker compose up -d --force-recreate dashboard(top 30 of 43)
TypeScript
98.8%
NetBird Management Service Web UI Panel
620
stars
603
commits
TypeScript
primary language
Sep 11, 2026
updated
This project is the UI for NetBird's Management service.
Hosted version: https://app.netbird.io/
See NetBird repo
The purpose of this project is simple - make it easy to manage VPN built with NetBird. The dashboard makes it possible to:
Disclaimer. We believe that proper user management system is not a trivial task and requires quite some effort to make it right. Therefore we decided to use Auth0 service that covers all our needs (user management, social login, JWT for the management API). Auth0 so far is the only 3rd party dependency that can't be really self-hosted.
Install Docker
Register Auth0 account
Running NetBird UI Dashboard requires the following Auth0 environmental variables to be set (see docker command below):
AUTH0_DOMAIN AUTH0_CLIENT_ID AUTH0_AUDIENCE
To obtain these, please use Auth0 React SDK Guide up until "Configure Allowed Web Origins"
NetBird UI Dashboard uses NetBird's Management Service HTTP API, so setting NETBIRD_MGMT_API_ENDPOINT is required. Most likely it will be http://localhost:33071 if you are hosting Management API on the same server.
Run docker container without SSL (Let's Encrypt):
docker run -d --name netbird-dashboard \
--rm -p 80:80 -p 443:443 \
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
-e AUTH0_CLIENT_ID=<SET YOUR CLIENT ID> \
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
netbirdio/dashboard:main
Run docker container with SSL (Let's Encrypt):
docker run -d --name netbird-dashboard \
--rm -p 80:80 -p 443:443 \
-e NGINX_SSL_PORT=443 \
-e LETSENCRYPT_DOMAIN=<YOUR PUBLIC DOMAIN> \
-e LETSENCRYPT_EMAIL=<YOUR EMAIL> \
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
-e AUTH0_CLIENT_ID=<SET YOUR CLEITN ID> \
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
netbirdio/dashboard:main
.local-config.json file. This file should contain values to be replaced from config.jsonnpm install to install dependenciesnpm run dev to start the development serverOpen http://localhost:3000 with your browser to see the result.
You can start editing by modifying the code inside src/..
The page auto-updates as you edit the file.
The new dashboard comes with a new docker image netbirdio/dashboard:main.
To migrate from the old dashboard (v1) wiretrustee/dashboard:main to the new one, please follow the steps below.
docker compose down dashboarddocker-compose.yml with netbirdio/dashboard:maindocker compose up -d --force-recreate dashboard(top 30 of 43)
TypeScript
98.8%