A self-hosted web application for monitoring Spacemesh nodes and post services. This is powered by a go-spacemesh gRPC client running on the backend.
- node.js backend will maintain gRPC streaming calls with your configured nodes/services.
- Data is collected in real time and a global 'state' object is held in memory.
- When the state changes, an 'update' websocket event is emitted to all connected web browser clients.
- When the websocket event is received, the browser will immediately fetch the latest state from the server using a http request.
- If you already have a VPN or ZTNA (Zero Trust Network Access) solution for remote access to your local network, you can easily check on your nodes from any location.
To do / Feature roadmap
- Configurable email alerts when significant events occur (e.g node offline, service starts/finishes proving, ATX submitted)
- User authentication? (tbc)
- TLS? (I might need some help with this)
- Create the empty folders:
smh-clientandsmh-client/data - Create a
smh-client/compose.yamlfile with the following contents:
services:
smh-client:
container_name: smh-client
build: https://github.com/steve-king/smh-client.git#main
ports:
- '3131:3131'
volumes:
- ./data:/app/data
restart: always
- cd to
smh-clientdirectory - Compose:
docker compose up -d
docker compose down
docker compose build
docker compose up -d
If you prefer not to use compose, run:
Pre-requisites:
- NodeJS
- git (optional see below)
- clone repository:
git clone git@github.com:steve-king/smh-client.git
- Change to directory:
cd smh-client
- Initialise submodule:
git submodule update --init --recursive
- Install node packages:
npm install - Compile and run:
npm run build && npm start
So long as you have NodeJS on your machine, it is possible (though not recommended) to get set up without git:
- Download and extract smh-client
- Download and extract spacemeshos/api to
smh-client/src/server/lib/api - Install node packages:
npm install - Compile and run:
npm run build && npm start