Simple way to run a Monero daemon with some basic monitoring tools packaged in.
 
 
 
Go to file
lza_menace fe589606a5 adding actions pipeline
.github/workflows adding actions pipeline
dockerfiles bumping version to latest
files change default map coords
static new graf, prom, dashboard, exporters! ()
.dockerignore add release script and dockerignore
.gitignore setup readme and .env file
LICENSE Initial commit
Makefile bumping to latest release, minor tweaks to makefile
README.md new graf, prom, dashboard, exporters! ()
cloud-init.sh add geoip node mapping and cleanup dockerfiles
docker-compose.full.yaml new graf, prom, dashboard, exporters! ()
docker-compose.yaml add geoip node mapping and cleanup dockerfiles
env-example graf sub path, tor all nodes, auto add monero.fail
release.sh add release script and dockerignore
release_exporter.sh add script for publishing docker image for exporter

README.md

docker-monero-node

Simple way to run a Monero node with some basic monitoring tools packaged in.

Leverages Prometheus, Grafana, and monero-exporter on top of monerod.

Setup

The only requirements are Docker and Docker Compose. Ensure those are installed on your system. There's an optional Makefile provided if you'd like to use that, just ensure make is installed.

# Clone and enter the repository
git clone https://github.com/lalanza808/docker-monero-node
cd docker-monero-node

# OPTIONAL: Setup Grafana password, blockchain storage location, or port and container image tag overrides
cp env-example .env
vim .env

# Build containers
docker-compose build  # make build

The following ports will be bound for monerod by default, but you can override in .env:

  • 18080 # p2p
  • 18081 # restricted rpc
  • 18082 # zmq
  • 18083 # unrestricted rpc

The following ports will be bound for other services:

  • 9090 # prometheus web ui
  • 3000 # grafana web ui
  • 9000 # exporter web api (/metrics)

You will want to open/allow ports 18080 and 18081 in your firewall for usage as a remote/public node (or whichever p2p and restricted ports you picked).

Also, you may want to setup a reverse proxy to Grafana if you would like to expose the visualizations for the world to see. Be sure to lock down the administrative settings or leave login disabled!

Usage

It's fairly simple, use docker-compose to bring the containers up and down and look at logs.

# Run containers
docker-compose up -d            # make up

# Check all logs
docker-compose logs -f  

# Check monerod logs
docker-compose logs -f monerod  # make logs

Navigate to http://localhost:3000 and log into Grafana. Find the Node Stats dashboard to get those sweet, sweet graphs.

If you've installed this on another system you will want to use SSH tunnels (local forwarding) to reach Grafana (if not exposing via reverse proxy):

ssh <VPS OR SERVER IP> -L 3000:localhost:3000

Then navigate to http://localhost:3000. Here is what the graph looks like: