Source code of https://xmr.ditatompel.com, a website that helps you monitor your favourite Monero remote nodes.
⚠️ 🚧 This project is not mature enough 🚧, If you want to use it on your server, please use it with caution.
Apart from CPU architecture type, you can build two types of binaries from this project: a server and a client.
The clients is used to fetch node information given by the server. First, it will ask the server which node to fetch. Then, it will fetch the information and report back to the server.
The server serves the Web UI and the /api
endpoint that is used by the
clients.
To build the executable binaries, you need:
- Go >= 1.22
- Bun >= 1.1.26
- a-h/templ v0.2.778
Note:
- If you want to contribute to the code, please use exact templ version (v0.2.778).
- Linux Machines (AMD64 or ARM64)
- MySQL/MariaDB
- GeoIP Database (optional). Place it to
./assets/geoip
, see ./internal/ip/geo/geoip.go.
- Download GeoIP Database and place it to
./assets/geoip
. (see ./internal/ip/geo/geoip.go). - Pepare your MySQL/MariaDB.
- Copy
.env.example
to.env
and edit it to match with server environment. - Build the binary with
make server
(ormake build
to build both server and client binaries). - Run the service with
./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> serve
.
Systemd example: xmr-nodes-server.service.
- Create API key for prober
- Copy
.env.example
to.env
and edit it to match with prober environment. - Build the binary with
make client
(ormake build
to build both server and client binaries). - Run the service with
./bin/xmr-nodes-client-linux-<YOUR_CPU_ARCH> probe
.
Systemd example: xmr-nodes-prober.service and xmr-nodes-prober.timer.
- Clone or fork this repository.
- Prepare the assets:
make prepare
, - Run
air serve
(live reload using air-verse/air).
See the Makefile.
- ✅ Accept IPv6 nodes.
- ✅ Use
a-h/templ
andHTMX
instead ofSvelte
. - Use Go standard
net/http
instead offiber
. - ✅ Accept I2P nodes.
- ✅ Support Tor hidden service (beta, inform via HTTP header).
The creators and contributors of these projects have provided valuable resources, which I am grateful for:
The servers costs are currently covered by myself. If you find this project
useful, please consider making a donation to help cover the ongoing expenses.
Your contribution will go towards ensuring the continued availability of the
website and my stagenet
and testnet
public remote nodes.
XMR Donation address:
8BWYe6GzbNKbxe3D8mPkfFMQA2rViaZJFhWShhZTjJCNG6EZHkXRZCKHiuKmwwe4DXDYF8KKcbGkvNYaiRG3sNt7JhnVp7D
Thank you!
This project is licensed under BSD-3-Clause license.