toolkit for running and monitoring a JunoCash node. Features systemd service management, auto-restart watchdogs, and a comprehensive Prometheus/Grafana monitoring stack.
- Ubuntu/Debian Server
junocashdbinary (built or downloaded)
It is recommended to use a stable path for your binary to allow easy upgrades.
- Create a directory for your binaries, e.g.,
/opt/junocash. - Place your versions in subdirectories and use a symlink for the active version:
mkdir -p /opt/junocash/v1.0.0 # ... install binary to /opt/junocash/v1.0.0/bin/junocashd ... ln -s /opt/junocash/v1.0.0 /opt/junocash/current - Update your
.envto pointJUNO_BINARYto/opt/junocash/current/bin/junocashd.
This repository uses a template-based configuration system.
Copy the example environment file and customize it with your paths and credentials:
cp .env.example .env
nano .envGenerate the production configuration files:
./install.shThis will create a dist/ directory containing your customized scripts and services.
Deploy the generated files to your system (example paths):
# Systemd Services
sudo cp dist/systemd/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable junocashd
sudo systemctl start junocashd
# Watchdog Script
sudo cp dist/scripts/watchdog.sh /usr/local/bin/juno-watchdog
sudo chmod +x /usr/local/bin/juno-watchdog
# Add to crontab: */30 * * * * /usr/local/bin/juno-watchdogThe monitoring stack relies on json_exporter to bridge Juno's JSON-RPC to Prometheus.
- Download the
json_exporterbinary. - Install the generated config:
sudo mkdir -p /etc/json_exporter sudo cp dist/config/json_exporter.yml /etc/json_exporter/juno_config.yml
- Enable and start the
juno-rpc-exporterservice.
Add the jobs from config/prometheus.yml.snippet to your Prometheus configuration.
Import the JSON files from dashboards/ into Grafana:
- Basic Metrics (
dashboards/juno-basic-metrics.json): Core node stats (Peers, Block Height). - Advanced RPC (
dashboards/juno-advanced-rpc.json): Detailed mempool, mining, and fork detection data.