Source code of https://xmr.ditatompel.com, a website that helps you monitor your favourite Monero remote nodes. https://xmr.ditatompel.com
  • Go 60.8%
  • templ 33.9%
  • Makefile 1.8%
  • CSS 1.6%
  • Nginx 1.3%
  • Other 0.6%
Find a file
ditatombot[bot] 97a4145890
Merge pull request #233 from ditatompel/dependabot/go_modules/golang.org/x/net-0.55.0
Merge pull request #233

This merge action was created automatically.

Reviewed-by: ditatompel <ditatompel@users.noreply.github.com>
2026-06-06 12:35:44 +00:00
.github Using a-h/templ v0.3.1020 2026-05-19 18:21:35 +07:00
cmd Accept invalid certificates #212 2026-01-10 17:14:33 +07:00
deployment feat: Added tor hidden service via HTTP header #161 2024-11-16 19:01:09 +07:00
internal Updated compiled Go code using a-h/templ v0.3.1020 2026-05-19 18:19:33 +07:00
utils feat: Convert DatabaseSize and Difficulty to human readable format 2024-11-06 17:34:41 +07:00
.air.toml feat!: templ + htmx build system 2024-10-29 20:41:22 +07:00
.editorconfig Copying my other project structure to this project 2024-05-04 00:11:56 +07:00
.env.example feat: Store hashed user IP address when submitting new node 2024-11-25 04:51:51 +07:00
.gitattributes chore: Update .gitattributes Nginx cfg location 2024-06-23 22:29:11 +07:00
.gitignore feat!: templ + htmx build system 2024-10-29 20:41:22 +07:00
.golangci.yaml Updated golangci-lint test to v2.4 2025-09-12 08:16:32 +07:00
bun.lockb feat: Added modal 2024-11-04 16:36:22 +07:00
go.mod build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 2026-05-25 06:28:39 +00:00
go.sum build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 2026-05-25 06:28:39 +00:00
LICENSE Switching to BSD-3-Clause license 2024-10-31 10:59:08 +07:00
main.go feat!: Change the module name to "URL based" 2024-07-07 01:28:44 +07:00
Makefile feat: Added clipboard functionality 2024-10-31 18:09:02 +07:00
package.json feat: Added modal 2024-11-04 16:36:22 +07:00
README.md Using a-h/templ v0.3.1020 2026-05-19 18:21:35 +07:00
server.go feat!: Change the module name to "URL based" 2024-07-07 01:28:44 +07:00
tailwind.config.js feat: Added modal 2024-11-04 16:36:22 +07:00
VERSION chore: Start v.0.2.4 2025-08-13 06:10:06 +07:00

XMR Remote Nodes

Test BUild Release Binaries Go Report Card

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.

How does it work?

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.

Requirements

To build the executable binaries, you need:

  • Go >= 1.25
  • Bun >= 1.1.26
  • a-h/templ v0.3.1020

Note

:

  • If you want to contribute to the code, please use exact templ version (v0.3.1020).

Server & Prober requirements

  • Linux Machines (AMD64 or ARM64)

Server requirements

Installation

For initial server setup:

  1. Download GeoIP Database and place it to ./assets/geoip. (see ./internal/ip/geo/geoip.go).
  2. Pepare your MySQL/MariaDB.
  3. Copy .env.example to .env and edit it to match with server environment.
  4. Build the binary with make server (or make build to build both server and client binaries).
  5. Run the service with ./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> serve.

Systemd example: xmr-nodes-server.service.

For initial prober setup:

  1. Create API key for prober
  2. Copy .env.example to .env and edit it to match with prober environment.
  3. Build the binary with make client (or make build to build both server and client binaries).
  4. Run the service with ./bin/xmr-nodes-client-linux-<YOUR_CPU_ARCH> probe.

Systemd example: xmr-nodes-prober.service and xmr-nodes-prober.timer.

Development and Deployment

  1. Clone or fork this repository.
  2. Prepare the assets: make prepare,
  3. Run air serve (live reload using air-verse/air).

See the Makefile.

ToDo's

  • Accept IPv6 nodes.
  • Use a-h/templ and HTMX instead of Svelte.
  • Accept I2P nodes.
  • Support Tor hidden service (beta, inform via HTTP header).
  • Integrate with Rucknium's Monero Network Scan
  • Implement ban by IP address using Boog900's Monero Ban List
  • Use Go standard net/http instead of fiber.

Acknowledgement

The creators and contributors of these projects have provided valuable resources, which I am grateful for:

Similar Projects

Donation

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:

82ez97EPriX6tnkL5fSv7u93aZV2gHWeMUc9hS3a8Dd6NxGWPZWhruGTFnNyJ4z1yWQMHgtA81i9h9vq7HWoKZLk9EzWryD

Thank you!

View Only Wallet Details

Primary Address:

48D1TAcsq4vMoRu8CNaDsPgvUR7SQ1B6TCXfBsJXAbPb7TjeNZbMhAMKatSA64XRTzFckyMcaF19U8Ejr9wy8iwnTCAUU8x

View Key:

f26d16b3ab8265a8ddd9db99f69cafeee9081555e67eb03a34778f0391962803

Restore height:

3457614 (2025-07-18)

View only old wallet address can be found in PR #201.

License

This project is licensed under BSD-3-Clause license.