A lightweight, real-time dashboard for monitoring your P2Pool mining stats, XMRig hashrate, network stats, and XMR price, all in one place.
Bootstrapped with AI and built out iteratively. Focused on getting something practical and working without overengineering.
- Tracks your mining hashrate, pool hashrate, and network hashrate.
- Estimates your earnings in XMR and EUR with selectable time periods (hour/day/week/etc.).
- Shows pretty (as good as it is going to get) accurate payout interval
- Shows your recent payments in XMR and EUR and shows your total earned XMR/EUR on p2pool
- Shows XMR price trends over time.
- Shows current luck in the PPLNS window
- Shows current accumulated XMR in the PPLNS window (expectations, not reality)
- Shows estimated true luck since you started mining with your current daily hashrate
- Shows how many shares and uncles you have gotten
- Rolling 24-hour log saved to disk automatically.
- Lightweight Python server serving live charts and stats.
- Python 3.8+
monerod(full node or pruned node)- XMRig miner
- P2Pool node
Follow these steps to get the dashboard running:
git clone https://github.com/XanderTheDev/p2pool-dashboard.git
cd p2pool-dashboardYou need a P2Pool instance running. P2Pool has its own data directory (where it stores pool stats), but it isn't setup in the most handy location and can vary per linux distro.
When running p2pool, you need to add the --data-dir flag so there is a place p2pool-dashboard can retrieve statistics from.
For example:
p2pool --data-dir /home/user/p2pool-data # user is your username
# or if you want it directly in the repository and you have it in your home directory
p2pool --data-dir /home/user/p2pool-dashboard/p2pool-dataIf your P2Pool data is somewhere else than in the repository, create a symlink
cd p2pool-dashboard # if not already
ln -s /home/user/p2pool-data ./p2pool-data # Or a different data directory if you setup a different one.
# ^
# |
# Again user is your usernameNow the dashboard will read pool stats from your P2Pool node.
The dashboard fetches network stats from monerod, so you need to run it with (you can keep any other flags):
monerod --rpc-bind-port 18081- Default RPC port: 18081 (matches the dashboard)
- Make sure monerod is fully synced for accurate network stats.
The dashboard fetches your miner hashrate from XMRig. Make sure the HTTP API is enabled:
xmrig --api-worker-id=worker1 --http-port=42000--api-worker-idcan be any name; used to identify your miner in the dashboard. Actually not sure if this is needed. Just do it to be sure--http-portmust match the port in server.py (42000 by default).
python3 server.py --port 8080 --data-dir ./p2pool-data --wallet YOUR_WALLET_ADDRESS --nano-p2pool/--mini-p2pool/--normal-p2pool--portis the HTTP port for the dashboard (default: 8080)--data-dirpoints to the P2Pool data directory linked earlier. So the one that is in the p2pool-dashboard repository with all the website files--walletis your wallet address you are using for p2pool--nano-p2poolyou should use this option if you are using p2pool nano--mini-p2poolyou should use this option if you are using p2pool mini--normal-p2poolyou should use this option if you are using the normal/default p2pool
Open your browser and visit Your Dashboard to see your stats in real-time.
You should see your hashrate, pool stats, XMR price, and estimated earnings updating in real-time.
- Data updates every 5 seconds.
- Logs are stored in stats_log.json automatically.
- Tooltip icons (ⓘ) give extra info like moving averages and payout intervals.
- The dashboard uses a dark theme and is mobile-friendly.
Made by XanderTheDev. No support guaranteed, but hey, it works! Here is some stuff I used for the HTML
- Chart.js for rendering charts (MIT License)
- Luxon for date/time handling (MIT License)
- chartjs-adapter-luxon (MIT License)
This project is licensed under the BSD-4 Clause License. See the LICENSE file for details.