pascal-fischer 77ca3c6fde Adding service user support and new user overview (#164)
Changes:
user tab was split in service users and regular users
user edit view was reworked:
shows PAT box for service users and self (hides for rest)
hides email and groups for service users as no usage
reverted settings tab to only contain account settings + hide for normal users
Use navbar avatar dropdown to link to users list and open user edit page for self
extend api-client to handle requests with query parameters
use popup form for PAT creation, user invite and service user creation
validate all form fields before trying to send API call and show faulty fields

Additional fixes:
groups popup was only visible after 2nd hover after tab switch on every view, fixed to also show on first hover
fix setup keys page throwing errors from time to time and not loading
peers view was sending getRoute requests that are only allowed for admins which was throwing errors (only console) for normal users -> disabled requests for non-admin users
2023-04-22 12:57:17 +02:00
2022-06-12 09:06:47 +02:00
2021-09-24 15:38:31 +02:00
2021-09-24 15:38:31 +02:00
2023-03-22 15:21:52 +01:00
2023-03-22 15:21:52 +01:00
2023-02-03 21:48:03 +01: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

auth peers add-peer

Technologies Used

  • ReactJS
  • AntD UI framework
  • 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, JTW 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 Wiretrustee 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. Wiretrustee UI Dashboard uses Wiretrustee 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 wiretrustee-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 MANAGEMETN API URL> \
      wiretrustee/dashboard:main
    
  6. Run docker container with SSL (Let's Encrypt):

    docker run -d --name wiretrustee-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 MANAGEMETN API URL> \
      wiretrustee/dashboard:main
    

How to run local development

  1. Install node 16
  2. create and update the src/.local-config.json file. This file should contain values to be replaced from src/config.json
  3. run npm install
  4. run npm run start dev
Description
NetBird Management Service Web UI Panel
Readme AGPL-3.0 18 MiB
Languages
TypeScript 98.8%
JavaScript 0.8%
Shell 0.2%
CSS 0.2%