AfrikTeckMesh Dashboard - fork de netbirdio/dashboard (AGPLv3)
Find a file
AfrikTeck 9272f3542a
Some checks are pending
ci / build (push) Waiting to run
chore: replace git.afrikteck.com with githubafrik.afrikteck.com
2026-11-05 05:56:49 +01:00
.forgejo/workflows chore: detach from NetBird, add Forgejo CI and notices 2026-11-03 16:52:14 +01:00
.storybook rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
docker rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
docs/screenshots/error-request-id Show management API request id in error notifications (#698) 2026-07-07 14:02:16 +02:00
e2e rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
public rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
src rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
templates/reverse-proxy rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
.dockerignore Add rootless dashboard container image (#791) 2026-09-09 23:00:19 +02:00
.gitignore rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
AGENTS.md Add Storybook and a visual regression check (#843) 2026-10-08 17:43:19 +02:00
announcements.json rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
AUTHORS Merge NetBird cloud edition into the dashboard (#674) 2026-06-21 16:01:08 +02:00
build.sh rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
CLAUDE.md Add Storybook and a visual regression check (#843) 2026-10-08 17:43:19 +02:00
components.json Update Next.js to 16.4, Tailwind CSS to v4 and fix npm audit (#852) 2026-10-21 14:54:45 +02:00
config.json rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
CONTRIBUTOR_LICENSE_AGREEMENT.md rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
eslint.config.mjs Update Next.js to 16.4, Tailwind CSS to v4 and fix npm audit (#852) 2026-10-21 14:54:45 +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
NOTICE chore: detach from NetBird, add Forgejo CI and notices 2026-11-03 16:52:14 +01:00
package-lock.json rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
package.json rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
postbuild.js rebrand: AfrikTeckMesh dashboard 2026-11-03 13:10:21 +01:00
postcss.config.js Update Next.js to 16.4, Tailwind CSS to v4 and fix npm audit (#852) 2026-10-21 14:54:45 +02:00
README.md chore: replace git.afrikteck.com with githubafrik.afrikteck.com 2026-11-05 05:56:49 +01:00
TRADEMARK.md chore: detach from NetBird, add Forgejo CI and notices 2026-11-03 16:52:14 +01: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

AfrikTeckMesh Dashboard

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

Hosted version: https://app.afrikteck.com/

See AfrikTeckMesh repo

Reporting bugs and requesting features

AfrikTeckMesh uses a discussion-first workflow across all its repositories. Bug reports and feature requests for the dashboard start in afrikteckmesh Discussions, not as issues here.

What you want to do Where to go
Report a bug, regression, or unexpected behavior Issue Triage
Request a feature or share an idea Ideas & Feature Requests
Ask about setup, configuration, or self-hosting Q&A / Support
Report a security vulnerability Security policy, never a public thread

Our team triages each discussion. Validated reports become issues in this repository, linked back to the discussion. See How to use Discussions, Issues, and Pull Requests for the full workflow.

Why?

The purpose of this project is simple - make it easy to manage VPN built with AfrikTeckMesh. 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 AfrikTeckMesh 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. AfrikTeckMesh UI Dashboard uses AfrikTeckMesh's Management Service HTTP API, so setting AFRIKTECKMESH_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 afrikteckmesh-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 AFRIKTECKMESH_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
      afrikteck/dashboard:main
    
  6. Run docker container with SSL (Let's Encrypt):

    docker run -d --name afrikteckmesh-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 AFRIKTECKMESH_MGMT_API_ENDPOINT=<SET YOUR MANAGEMENT API URL> \
      afrikteck/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 afrikteck/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 afrikteck/dashboard:main
  3. Recreate the dashboard container docker compose up -d --force-recreate dashboard