Skip to content

NerdMiner Dashboard#741

Open
WeisTekEng wants to merge 33 commits into
BitMaker-hub:mainfrom
WeisTekEng:dashboard
Open

NerdMiner Dashboard#741
WeisTekEng wants to merge 33 commits into
BitMaker-hub:mainfrom
WeisTekEng:dashboard

Conversation

@WeisTekEng

@WeisTekEng WeisTekEng commented Dec 23, 2025

Copy link
Copy Markdown

NerdMiner Dashboard

This is a local dashboard to monitor your NerdMiner fleet via UDP.

Features

  • Real-time Monitoring: Live updates via UDP Broadcast (port 33333).
  • Auto-Discovery: Miners appear automatically when they start hashing.
  • Detailed Stats:
    • Hashrate (Dynamic units: H/s, KH/s, MH/s)
    • Miner Name (extracted from wallet address)
    • Pool Address & Port
    • Uptime, Temperature, Valid Shares, Best Difficulty
  • Bitcoin Network Stats:
    • Real-time Price (USD)
    • Network Hashrate & Difficulty
    • Halving Progress Bar
    • Block Height & Fees
  • Fleet Performance:
    • 24-Hour Graph: Real-time line chart showing total hashrate history.
    • 24h Average: Rolling average calculation.
    • Smart Formatting: Difficulty (k, M, G, T, P, E) and Hashrate auto-scaling.
  • Zero Configuration: No IP setup needed on miners; just flash and run.

Setup

  1. Install Dependencies:

    npm install
  2. Start the Server:

    node server.js
  3. Access Dashboard:
    Open your browser and navigate to http://localhost:3000.

Docker & Umbrel Support

You can run this dashboard as a Docker container.

Linux / Umbrel (Recommended for Production)

docker-compose up -d --build

Uses network_mode: "host" for proper UDP broadcast reception.

Windows (Testing/Development)

docker-compose -f docker-compose.windows.yml up -d --build

Uses port mapping. Access at http://localhost:3000

Note: UDP broadcasts from miners may not reach the container on Windows due to Docker's networking limitations. For full functionality, deploy on Linux/Umbrel.

Umbrel

This app is ready for Umbrel.

  1. install Portainer from the umbrel app store
  2. Once in portainer, navigate to the environment you want to add this to, then click on "Add Container"
  3. for docker.io image, use ocybress/nerdminer-dashboard-linux:r0.0.1
  4. for the ports, add 3000 TCP, and 33333 UDP
  5. click "diploy the container"
  6. wait for the container to start
  7. navigate to http://localhost:3000 to access the dashboard
  8. you can expose this via tailscail if you want to access it from other devices

Firmware Configuration

The NerdMiner firmware has been modified to broadcast stats to 255.255.255.255 on port 33333 via UDP.
Ensure your miners and this computer are on the same network/subnet. you can then expose this via Tailscail

Dashboard Dashboard2

OCybress and others added 30 commits December 22, 2025 21:02
…nclude various pre-compiled firmware binaries.
Updated image link in README to point to GitHub.
Added note about exposing the dashboard via Tailscale.
Added features section to README with details on real-time monitoring, auto-discovery, and stats.
…ctor JS

- Implemented 24-hour rolling hashrate history graph with Chart.js.
- Added "24h Average" hashrate display.
- Fixed hashrate unit scaling errors and added ZettaHash (ZH/s) support.
- Implemented dynamic formatting for "Best Difficulty" (k, M, G, T, P, E).
- Refactored [index.html](cci:7://file:///c:/Users/OCybress/source/repos/NerdMiner_v2%20-%20Copy/dashboard/public/index.html:0:0-0:0) by extracting logic to 'dashboard/public/script.js'.
- Updated README with new features and usage instructions.
feat: Add NerdMiner dashboard with Docker and Umbrel support.
updated readme for umbrel docker instructions
**Firmware (ESP32):**
- Implement HTTP REST API (`/api/config`) for reading/writing settings.
- Add `templates` (job count) to UDP JSON payload for activity monitoring.
- Add `ip` field to UDP payload to resolve Docker/NAT traversal issues.
- persistence: Save configuration changes to NVS and auto-restart.
**Dashboard (Backend):**
- Add configuration proxy to forward requests to miners.
- Implement auto-fetch of miner config on discovery to populate BTC Address.
- Fix Docker connectivity: Prioritize reported IP over packet source IP.
- Fix Uptime display (NaN bug).
**Dashboard (Frontend):**
- Add Configuration Modal with Glassmorphism UI.
- Add "Templates" metric card with auto-scaling (k, M, B, T).
- Add "BTC Address" display (truncated) to miner cards.
- UI Polish: Center inputs, fix box-sizing, dynamic modal titles.
**Documentation:**
- Update README.md with new features and donation addresses.
Updated README to include new images and removed old image links.
Corrected a minor grammatical error in the firmware update note.
Removed redundant firmware configuration and remote configuration sections from the README.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants