React-based GUI for management and monitoring of Nimbus fleets
Go to file
RadoslavDimchev 9b7cf9febd fix(validator stories): add decorator for router 2024-03-26 15:03:16 +02:00
.github/workflows chore(deploy-ci): explicitly use the metacraft-labs Vercel scope 2024-02-29 13:12:32 +02:00
.storybook fix: clean preview 2023-09-05 10:31:17 +03:00
.yarn/releases chore(yarn): Update to `yarn@4.1.1` 2024-03-12 18:55:17 +02:00
docs doc(local_component_development): Add guide for `Local Component Development` 2024-03-11 12:01:04 +02:00
libs/waku-utils chore(yarn): Update `@waku/noise` pkg 2024-02-26 12:58:24 +02:00
public feat(active validators): add icons 2024-03-26 14:05:20 +02:00
scripts feat(scripts): Add script for Local Component Development 2024-03-11 12:01:04 +02:00
src fix(validator stories): add decorator for router 2024-03-26 15:03:16 +02:00
vendor chore(vendor): Bump `status-web` 2024-03-19 18:05:39 +02:00
.envrc chore(nix): Add nix dev env 2024-01-05 18:14:07 +02:00
.eslintrc.cjs project reinit 2023-08-03 09:20:54 +03:00
.gitignore config(gitignore): Ignore the `.env` file 2024-01-31 20:03:43 +02:00
.gitmodules chore(git): Add `status-web` as submodule 2024-03-11 12:01:04 +02:00
.nojekyll fix(ci): add `.nojekyll` file in root 2023-08-21 15:07:08 +03:00
.nvmrc build: add a .nvmrc file 2023-08-03 12:51:10 +03:00
.prettierignore chore(waku): Init `waku-utils` lib 2024-01-31 20:03:43 +02:00
.prettierrc config(prettier): Set `printWidth` to `80` 2024-01-29 14:44:25 +02:00
.tool-versions dev: switch to `yarn` v3 2023-08-03 12:53:39 +03:00
.yarnrc.yml config(yarn): Set `checksumBehavior: ignore` 2024-03-19 18:05:39 +02:00
LICENSE Clean project directory 2023-07-13 14:16:49 +03:00
LICENSE-APACHEv2 Basic README and license files 2023-08-01 10:11:08 +03:00
LICENSE-MIT Basic README and license files 2023-08-01 10:11:08 +03:00
README.md doc(pages): Add links to the pages that can be seen 2024-02-08 16:36:15 +02:00
animations.ts fix: add proper tamagui config 2023-08-10 09:56:22 +03:00
flake.lock chore(nix): Add nix dev env 2024-01-05 18:14:07 +02:00
flake.nix chore(nix): Use `yarn` from `corepack` 2024-03-12 18:55:17 +02:00
index.html feat: add Nimbus GUI title to document 2024-01-24 08:02:11 +02:00
nx.json config(nx): Add `nx` config and ignore `.nx/` 2024-01-23 20:03:44 +02:00
package.json build(yarn): Update `chart.js` & install `chartjs-plugin-gradient` 2024-03-20 16:52:24 +02:00
tamagui.config.ts cleanup: remove stray commented out line 2023-08-10 10:25:53 +03:00
themes.ts fix: add proper tamagui config 2023-08-10 09:56:22 +03:00
tokens.ts fix(build): Ensure compatibility with updated `@tamagui/*` & `@status/*` packages 2024-02-13 16:58:42 +02:00
tsconfig.base.json chore(waku): Init `waku-utils` lib 2024-01-31 20:03:43 +02:00
tsconfig.json project reinit 2023-08-03 09:20:54 +03:00
tsconfig.node.json project reinit 2023-08-03 09:20:54 +03:00
vercel.json ci: add `vercel.json` for vercel to rewrite routes 2023-09-07 15:57:28 +03:00
vite.config.ts debug(ci): set base URL in `.storybook/main` 2023-08-21 20:49:21 +03:00
yarn.lock build(yarn): Update `chart.js` & install `chartjs-plugin-gradient` 2024-03-20 16:52:24 +02:00

README.md

Nimbus GUI

The goal of this project is to develop a management and monitoring GUI for the Nimbus Ethereum client.

Right now, Nimbus is managed as a typical system service. It offers executables that can be launched from the command-line. It produces log output as the primary way to communicate information to the user and it's typically monitored through Prometheus and Grafana. The user can interact with Nimbus through a standardized REST APIs with some Nimbus-specific extensions.

Since the primary purpose of Nimbus is to enable the user to operate Ethereum validators, users typically also consult web-sites such as beaconcha.in, which provide up-to-date information about the network and the obtained rewards of each validator. The beaconcha.in web-site also offers a popular mobile application which can alert the user if their validator(s) are failing to perform their duties (which can happen if the Nimbus service is experiencing any technical issues).

At the moment, all of the above makes Nimbus accessible mostly to users with the sufficient technical skills to setup and integrate multiple software packages, often within a rented server running Linux in a remote data center.

We would like to make Nimbus much more accessible to non-technical users by developing GUI installers and GUI management and monitoring software. We have prepared a rough roadmap for this here:

https://github.com/status-im/nimbus-eth2/issues/3423

Development Plan

The initial version of the management UI will be developed as a web application, communicating with a special service called the Status Node Management Service.

As part of the Logos movement, Nimbus benefits from close ties to Status, a messanger that offers strong integration with Ethereum and also serves as a mobile wallet and a DApp browser. We can provide a simple interface for solo stakers who would be able to execute their validator deposits directly from the Status app in the future. The Nimbus management UI will be then embedded within the app and it will use the same design system as the app.

The Status UI team is currently developing the next iteration of the Status design system that will be used across its mobile and desktop products. To facilitate the future integration, we will use the same system during the development of the Nimbus GUI from the start.

UX Designs (WIP)

Initial designs for the Nimbus management UI are being developed here:

https://www.figma.com/file/kUO8PyQCo89SyvCn3pFmNS/Nodes-Nimbus---New-Design-System?type=design&node-id=3%3A188588&t=npvkylewM1T5GUHG-1

Please note that all of the graphics are currently placeholders as the final artwords are still being prepared. The layout of the screens is likely to resemble the final design, although the content and the available functionality on the web-pages is still under review.

Live Demos

We have a Storybook up at https://nimbus-gui.github.io/nimbus-gui/ which shows the components of the project. We also have a deployed version of the GUI up at https://nimbus-gui.vercel.app/ which shows the GUI as it currently looks in the main branch of the nimbus-gui/nimbus-gui repository.

Here is a list with the available pages:

How to Contribute

Install all dependencies

Run yarn in the root directory of the project in order to install dependencies.

Run a development server

If you want to run a development server to see what the GUI looks like you can run the following command:

yarn dev

This will start the server on port 5173 and you can open https://localhost:5173 in order to see the page.

For example here are some of the pages you can see:

Launch Storybook locally

If you want to run the Storybook locally you can simply run yarn storybook in the root of the project. This is useful if you want to contribute a component and be sure that it renders as you expect it to, without testing it out on any given page.