Skip to content

MoneroOcean/mo-pool-ui

 
 

Repository files navigation

mo-pool-ui

Static, framework-free web dashboard for the MoneroOcean mining pool.

License: MIT Node >=22.9 Platform: browser Focus: frontend MoneroOcean ecosystem

Overview

mo-pool-ui is a static dashboard for the MoneroOcean mining pool. It talks directly to the public MoneroOcean pool API, lets miners inspect pool and wallet state, and keeps the deployed surface to three files: index.html, script.js, and style.css.

Internally the dashboard is split into small ES modules under src/, with script.js kept as the stable browser and build entry point. The production build bundles those modules back into build/script.js, minifies CSS, and adds a git-based cache key to the generated HTML.

The UI is the frontend companion to nodejs-pool, the pool backend whose API it consumes. It has no third-party browser framework dependency.

Features

  • Pool overview, coin list, blocks, payments, uptime, and profit calculator views.
  • Wallet dashboard with workers, hashrate charts, block rewards, payout history, and wallet settings helpers.
  • Miner setup command generation for MoneroOcean XMRig, SRBMiner-Multi, Multi-Miner, xmrig-proxy, and xmr-node-proxy.
  • Hash-route navigation with SEO metadata and canonical URL updates.
  • Local display preferences for theme and explanatory text.
  • Focused Node.js tests for routing, formatting, wallet behavior, setup output, scheduler behavior, build invariants, and pool-specific calculations.

Architecture

Path Role
index.html Static shell and crawler-visible metadata.
style.css Full UI styling, bundled and minified during build.
script.js Browser/build entry point that starts the app (startApp from src/main.js).
src/ Application modules: API calls, routing, views, formatting, charting, state, preferences, setup helpers, and wallet logic.
src/views/ Rendered page views.
src/styles/ Style sources used by the build.
tests/ Node.js test suite plus Playwright end-to-end tests.
scripts/build-static.sh Static bundling helper.
build.sh Production build and deploy script.

The source uses modern JavaScript modules during development, and esbuild produces an ES2022 IIFE for deployment.

Install

npm install

Requires Node.js >=22.9.0 and npm >=11.10.0 (see engines in package.json).

Usage

Build and deploy to /var/www/mo-pool-ui:

npm run build

The build script removes and recreates build/, bundles script.js with esbuild, bundles style.css, rewrites cache-busted asset URLs in build/index.html, runs the test suite, and copies the result to /var/www/mo-pool-ui.

To produce only the static bundle without deploying:

npm run build:static

Testing

npm test

Runs the Node.js unit and integration suite (tests/all.mjs) using the built-in node --test runner with a single-concurrency spec reporter.

Additional targets:

npm run test:unit   # focused Node.js unit suite
npm run test:e2e    # builds the static bundle, then runs Playwright e2e tests

The end-to-end target builds the static output first and drives a real browser via Playwright, so it requires the Playwright browser binaries to be installed (npx playwright install) and is heavier than the default unit run.

Contributors

  • MoneroOcean - MoneroOcean-specific maintenance and current dashboard refactor.
  • Thunderosa - main early author in the SupportXMR GUI lineage.
  • M5M400 - SupportXMR GUI owner and contributor.
  • tevador - legacy GUI contribution.
  • mesh0000 - main author of the older poolui / XMRPoolUI frontend.
  • Snipa22 / Alexander Blair - nodejs-pool backend author/maintainer and minor poolui contributor.

Lineage

This UI is based on MoneroOcean's legacy moneroocean-gui, which was forked from M5M400/supportxmr-gui. It is designed for MoneroOcean's nodejs-pool API, whose history traces through Snipa22's nodejs-pool, Mesh00's AngularJS poolui / XMRPoolUI frontend, and Zone117x's original node-cryptonote-pool.

Based on work of Thunderosa and mesh0000.

MoneroOcean ecosystem

Component Role
nodejs-pool Pool backend — stratum, share storage, payments
mo-pool-ui Static web frontend for the pool
xmr-node-proxy Stratum proxy / share aggregator
mo-miner MoneroOcean end-user CPU/GPU mining client (multi-algo)
multi-miner Multi-algo miner manager
node-powhash Native multi-algo PoW hashing addon
node-randomx Native RandomX hashing addon
node-blocktemplate Native block-template & serialization addon
grpc-json-proxy gRPC ↔ JSON-RPC proxy (Tari base node)

License

MIT — see LICENSE.

About

MoneroOcean mining pool dashboard.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages