mirror of
https://github.com/ditatompel/xmr-remote-nodes.git
synced 2025-01-08 05:52:10 +07:00
Compare commits
No commits in common. "187a7bc84a75cb587c5946cb117a0b97d67a5b3a" and "62773a9d3b4600515d785371a978ad90fc604d4f" have entirely different histories.
187a7bc84a
...
62773a9d3b
3 changed files with 15 additions and 38 deletions
49
README.md
49
README.md
|
@ -5,23 +5,18 @@
|
||||||
[![Release Binaries](https://github.com/ditatompel/xmr-remote-nodes/actions/workflows/release.yml/badge.svg)](https://github.com/ditatompel/xmr-remote-nodes/actions/workflows/release.yml)
|
[![Release Binaries](https://github.com/ditatompel/xmr-remote-nodes/actions/workflows/release.yml/badge.svg)](https://github.com/ditatompel/xmr-remote-nodes/actions/workflows/release.yml)
|
||||||
[![Go Report Card](https://goreportcard.com/badge/github.com/ditatompel/xmr-remote-nodes)](https://goreportcard.com/report/github.com/ditatompel/xmr-remote-nodes)
|
[![Go Report Card](https://goreportcard.com/badge/github.com/ditatompel/xmr-remote-nodes)](https://goreportcard.com/report/github.com/ditatompel/xmr-remote-nodes)
|
||||||
|
|
||||||
Source code of [https://xmr.ditatompel.com](https://xmr.ditatompel.com),
|
Source code of [https://xmr.ditatompel.com](https://xmr.ditatompel.com), a website that helps you monitor your favourite Monero remote nodes.
|
||||||
a website that helps you monitor your favourite Monero remote nodes.
|
|
||||||
|
|
||||||
> :warning: :construction: This project is not mature enough :construction:,
|
> :warning: :construction: This project is still freaking 0.x.x :construction:,
|
||||||
> If you want to use it on your server, please use it with caution.
|
> If you want to use it on your server, please use it with caution.
|
||||||
|
|
||||||
## How does it work?
|
## How does it work?
|
||||||
|
|
||||||
Apart from CPU architecture type, you can build two types of binaries from
|
Apart from CPU architecture type, you can build two types of binaries from this project: a **server** and a **client**.
|
||||||
this project: a **server** and a **client**.
|
|
||||||
|
|
||||||
The **clients** is used to fetch node information given by the server. First,
|
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.
|
||||||
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
|
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.
|
||||||
serves the `/api` endpoint that is used by the clients and the Web UI itself.
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
@ -37,56 +32,38 @@ To build the executable binaries, you need:
|
||||||
### Server requirements
|
### Server requirements
|
||||||
|
|
||||||
- MySQL/MariaDB
|
- MySQL/MariaDB
|
||||||
- [GeoIP Database][geoip_doc] (optional). Place it to `./assets/geoip`,
|
- [GeoIP Database](https://dev.maxmind.com/geoip/geoip2/geolite2/) (optional). Place it to `./assets/geoip`, see [./internal/geo/ip.go](./internal/geo/ip.go).
|
||||||
see [./internal/geo/ip.go](./internal/geo/ip.go).
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### For initial server setup:
|
### For initial server setup:
|
||||||
|
|
||||||
1. Download [GeoIP Database][geoip_doc] and place it to `./assets/geoip`.
|
1. Download [GeoIP Database](https://dev.maxmind.com/geoip/geoip2/geolite2/) and place it to `./assets/geoip`. (see [./internal/geo/ip.go](./internal/geo/ip.go)).
|
||||||
(see [./internal/geo/ip.go](./internal/geo/ip.go)).
|
|
||||||
2. Pepare your MySQL/MariaDB.
|
2. Pepare your MySQL/MariaDB.
|
||||||
3. Copy `.env.example` to `.env` and edit it to match with server environment.
|
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
|
4. Build the binary with `make server` (or `make build` to build both **server** and **client** binaries).
|
||||||
**server** and **client** binaries).
|
|
||||||
5. Run the service with `./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> serve`.
|
5. Run the service with `./bin/xmr-nodes-server-linux-<YOUR_CPU_ARCH> serve`.
|
||||||
|
|
||||||
Systemd example: [xmr-nodes-server.service][server_systemd_service].
|
Systemd example: [./deployment/init/xmr-nodes-server.service](./deployment/init/xmr-nodes-server.service).
|
||||||
|
|
||||||
### For initial prober setup:
|
### For initial prober setup:
|
||||||
|
|
||||||
1. Create API key for prober
|
1. Create API key for prober
|
||||||
2. Copy `.env.example` to `.env` and edit it to match with prober environment.
|
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
|
3. Build the binary with `make client` (or `make build` to build both **server** and **client** binaries).
|
||||||
**server** and **client** binaries).
|
|
||||||
4. Run the service with `./bin/xmr-nodes-client-linux-<YOUR_CPU_ARCH> probe`.
|
4. Run the service with `./bin/xmr-nodes-client-linux-<YOUR_CPU_ARCH> probe`.
|
||||||
|
|
||||||
Systemd example: [xmr-nodes-prober.service][prober_systemd_service] and
|
Systemd example: [xmr-nodes-prober.service](./deployment/init/xmr-nodes-prober.service) and [xmr-nodes-prober.timer](./deployment/init/xmr-nodes-prober.timer).
|
||||||
[xmr-nodes-prober.timer][prober_systemd_timer].
|
|
||||||
|
|
||||||
## Development and Deployment
|
## Development and Deployment
|
||||||
|
|
||||||
See the [Makefile](./Makefile).
|
See the [Makefile](./Makefile).
|
||||||
|
|
||||||
## ToDo's
|
|
||||||
|
|
||||||
- Accept IPv6 nodes.
|
|
||||||
- Use `a-h/templ` and `HTMX` instead of `Svelte`.
|
|
||||||
- Use Go standard `net/http` instead of `fiber`.
|
|
||||||
|
|
||||||
## Similar Projects
|
## Similar Projects
|
||||||
|
|
||||||
- [lalanza808/monero.fail][monerofail_gh]
|
- [lalanza808/monero.fail](https://github.com/lalanza808/monero.fail)
|
||||||
- [cake-tech/upptime-monerocom][uptime_monerocom_gh]
|
- [cake-tech/upptime-monerocom](https://github.com/cake-tech/upptime-monerocom)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is licensed under [GLWTPL](./LICENSE).
|
This project is licensed under [GLWTPL](./LICENSE).
|
||||||
|
|
||||||
[geoip_doc]: https://dev.maxmind.com/geoip/geoip2/geolite2/ "GeoIP documentation"
|
|
||||||
[server_systemd_service]: ./deployment/init/xmr-nodes-server.service "systemd service example for server"
|
|
||||||
[prober_systemd_service]: ./deployment/init/xmr-nodes-prober.service "systemd service example for prober"
|
|
||||||
[prober_systemd_timer]: ./deployment/init/xmr-nodes-prober.timer "systemd timer example for prober"
|
|
||||||
[monerofail_gh]: https://github.com/lalanza808/monero.fail "Lalanza808's monero.fail GitHub repository"
|
|
||||||
[uptime_monerocom_gh]: https://github.com/cake-tech/upptime-monerocom "monero.com uptime GitHub repository"
|
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
v0.1.0
|
v0.0.6
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "xmr-nodes-frontend",
|
"name": "xmr-nodes-frontend",
|
||||||
"version": "v0.1.0",
|
"version": "v0.0.6",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "VITE_API_URL=http://127.0.0.1:18901 vite dev --host 127.0.0.1",
|
"dev": "VITE_API_URL=http://127.0.0.1:18901 vite dev --host 127.0.0.1",
|
||||||
|
|
Loading…
Reference in a new issue