Skip to content

steve-king/smh-client

Repository files navigation

SMH-Client

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)

Installation

with Docker compose (recommended)

  1. Create the empty folders: smh-client and smh-client/data
  2. Create a smh-client/compose.yaml file 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
  1. cd to smh-client directory
  2. Compose:
docker compose up -d

Update to latest version:

docker compose down
docker compose build
docker compose up -d

Docker run

If you prefer not to use compose, run:


Manual installation

Pre-requisites:

  • NodeJS
  • git (optional see below)
  1. clone repository:
git clone git@github.com:steve-king/smh-client.git
  1. Change to directory:
cd smh-client
  1. Initialise submodule:
git submodule update --init --recursive
  1. Install node packages: npm install
  2. Compile and run: npm run build && npm start

Without git

So long as you have NodeJS on your machine, it is possible (though not recommended) to get set up without git:

  1. Download and extract smh-client
  2. Download and extract spacemeshos/api to smh-client/src/server/lib/api
  3. Install node packages: npm install
  4. Compile and run: npm run build && npm start

About

Node monitoring for Spacemesh

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages