Source code of https://xmr.ditatompel.com, a website that helps you monitor your favourite Monero remote nodes.
Find a file
Christian Ditaputratama f4b42911c6
chore: Start v0.1.2
2024-10-28 20:35:59 +07:00
.github chore(ci): Run make ui first before run golangci-lint 2024-08-22 00:57:50 +07:00
cmd feat: Added node delete command 2024-09-16 23:29:15 +07:00
deployment chore: Rename tools directory to deployment 2024-05-30 12:02:11 +07:00
frontend chore: Start v0.1.2 2024-10-28 20:35:59 +07:00
internal fix: Reject input hostname with protocol 2024-09-16 22:35:14 +07:00
.air.toml build: Inject version when build the binaries 2024-07-04 03:45:37 +07:00
.editorconfig Copying my other project structure to this project 2024-05-04 00:11:56 +07:00
.env.example feat: Added IPv6 nodes support (alpha) #84 2024-09-06 00:08:59 +07:00
.gitattributes chore: Update .gitattributes Nginx cfg location 2024-06-23 22:29:11 +07:00
.gitignore Adding GeoIP support 2024-05-05 02:20:54 +07:00
.golangci.yaml fix(lint): Deprecated linters.errcheck.ignore 2024-06-19 16:54:40 +07:00
go.mod build(deps): bump golang.org/x/net from 0.29.0 to 0.30.0 2024-10-07 05:16:42 +00:00
go.sum build(deps): bump golang.org/x/net from 0.29.0 to 0.30.0 2024-10-07 05:16:42 +00:00
LICENSE Initial commit 2024-05-04 00:10:33 +07:00
main.go feat!: Change the module name to "URL based" 2024-07-07 01:28:44 +07:00
Makefile feat!: Change the module name to "URL based" 2024-07-07 01:28:44 +07:00
README.md fix: Checkmark and markdown image 2024-10-28 20:27:33 +07:00
server.go feat!: Change the module name to "URL based" 2024-07-07 01:28:44 +07:00
VERSION chore: Start v0.1.2 2024-10-28 20:35:59 +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 an embedded Svelte static site for the Web UI. It also serves the /api endpoint that is used by the clients and the Web UI itself.

Requirements

To build the executable binaries, you need:

  • Go >= 1.22
  • NodeJS >= 20

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

See the Makefile.

ToDo's

  • Accept IPv6 nodes.
  • Use a-h/templ and HTMX instead of Svelte.
  • 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:

8BWYe6GzbNKbxe3D8mPkfFMQA2rViaZJFhWShhZTjJCNG6EZHkXRZCKHiuKmwwe4DXDYF8KKcbGkvNYaiRG3sNt7JhnVp7D

Thank you!

License

This project is licensed under GLWTPL.