No description
  • TypeScript 98.8%
  • Shell 0.8%
  • JavaScript 0.3%
  • CSS 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Maycon Santos cba2613e68
Add anonymization level and upload URL to the debug bundle modal (#753)
Surfaces the two bundle parameters added to the management API: an
anonymization level (Default/Strict, shown when anonymization is enabled)
and an optional upload service URL that overrides the default upload
server. The upload URL is validated as an https URL before the job can be
submitted; both fields are omitted from the request when left at their
defaults so the peer applies its own.
2026-09-03 20:05:02 +02:00
.github Add control center draft mode (#744) 2026-08-27 10:08:22 +02:00
docker chore(docker): upgrade base image to Alpine 3.24 (#756) 2026-08-13 11:12:03 +02:00
docs/screenshots/error-request-id Show management API request id in error notifications (#698) 2026-07-07 14:02:16 +02:00
e2e Pin the group view's group, and give agentgateway a reachable upstream (#788) 2026-09-03 18:38:12 +02:00
public Add browser client support (#490) 2025-10-02 00:41:08 +02:00
src Add anonymization level and upload URL to the debug bundle modal (#753) 2026-09-03 20:05:02 +02:00
templates/reverse-proxy [reverse proxy] Cluster one click deploy (#707) 2026-07-12 15:05:02 +02:00
.gitignore Add control center draft mode (#744) 2026-08-27 10:08:22 +02:00
announcements.json Add 0.75 announcement (#727) 2026-07-23 21:05:52 +02:00
AUTHORS Merge NetBird cloud edition into the dashboard (#674) 2026-06-21 16:01:08 +02:00
build.sh Agent network (#684) 2026-06-27 19:11:41 +02:00
components.json Init Dashboard V2 (#316) 2024-01-30 13:34:42 +01:00
config.json Agent network (#684) 2026-06-27 19:11:41 +02:00
CONTRIBUTOR_LICENSE_AGREEMENT.md Update CONTRIBUTOR_LICENSE_AGREEMENT.md (#534) 2026-01-19 14:55:04 +01:00
eslint.config.mjs Upgrade Next.js to 16.3 (#755) 2026-08-13 11:11:48 +02:00
LICENSE Update LICENSE 2025-08-05 11:19:13 +02:00
next.config.js Local user invites (#539) 2026-01-25 21:40:49 +01:00
package-lock.json Add Agent Network Admin and Usage Viewer roles, gate Agent Network per submodule (#764) 2026-09-01 14:35:18 +02:00
package.json Add control center draft mode (#744) 2026-08-27 10:08:22 +02:00
postbuild.js Merge NetBird cloud edition into the dashboard (#674) 2026-06-21 16:01:08 +02:00
postcss.config.js Remove craco to fix vulnerabilities 2022-04-03 17:08:07 +02:00
README.md docs: fix broken Auth0 quickstart link in README (#548) 2026-02-09 11:41:09 +08:00
tailwind.config.ts Add control center draft mode (#744) 2026-08-27 10:08:22 +02:00
tsconfig.json Upgrade Next.js to 16.3 (#755) 2026-08-13 11:11:48 +02:00
vitest.config.mts Add control center draft mode (#744) 2026-08-27 10:08:22 +02:00

NetBird Dashboard

This project is the UI for NetBird's Management service.

Hosted version: https://app.netbird.io/

See NetBird repo

Why?

The purpose of this project is simple - make it easy to manage VPN built with NetBird. The dashboard makes it possible to:

  • track the status of your peers
  • remove peers
  • manage Setup Keys (to authenticate new peers)
  • list users
  • define access controls

Some Screenshots

peers add-peer

Technologies Used

  • NextJS
  • ReactJS
  • Tailwind CSS
  • React Flow for the Control Center
  • Auth0
  • Nginx
  • Docker
  • Let's Encrypt

How to run

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.

  1. Install Docker

  2. Register Auth0 account

  3. 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"

  4. 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.

  5. 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
    
  6. 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
    

How to run local development

  1. Install Node
  2. Create and update the .local-config.json file. This file should contain values to be replaced from config.json
  3. Run npm install to install dependencies
  4. Run npm run dev to start the development server

Open 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.

How to migrate from old dashboard (v1)

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.

  1. Stop the dashboard container docker compose down dashboard
  2. Replace the docker image name in your docker-compose.yml with netbirdio/dashboard:main
  3. Recreate the dashboard container docker compose up -d --force-recreate dashboard