How to Setup a Node for Zenon Network
(Any views expressed in the below are the personal views of the author and should not form the basis for making investment decisions, nor be construed as a recommendation or advice to engage in investment transactions.)
tl;dr
This article walks through the steps to setup a node for Zenon Network with Grafana to monitor the server, containers, and node.
Quick Start Zenon Network Node Setup Video
Quick Start Zenon Network Node Setup Instructions
Install Ubuntu Desktop or Server and update.
sudo apt update && sudo apt upgrade
Install Dependencies
sudo apt install git && sudo apt install curl
Install Docker
cd ~
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Confirm Docker is installed correctly
docker -v
Clone the znndNode Repository and Submodules
git clone --recurse-submodules https://github.com/0x3639/znndNode.git
Update the .env file with the correct Domain Name and Public IP address
cd znndNode
nano .env
Change the Domain and Public IP Variables
DOMAIN=example.com #UPDATE THE DOMAIN NAME
PUBLIC_IP=1.1.1.1 #UPDATE THE IP ADDRESSADMIN_USER=admin
ADMIN_PASSWORD=admin
ADMIN_PASSWORD_HASH=$2a$14$1l.IozJx7xQRVmlkEQ32OeEEfP5mRxTpbDTCTcXRqn19gXD8YK1pO
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=adminGF_USERS_ALLOW_SIGN_UP=false
GF_INSTALL_PLUGINS=marcusolsson-json-datasource
Save and exit ctrl-x
Ensure the following ports are open and forwarded to the private node IP address
TCP: 3000, 35995, 35997, 35998, 80, 443
UDP: 35995
IMPORTANT: Make sure to insert an A Record at your DNS provider pointing the domain name (setup above) to the IP address (setup above) of your server.
Start the Docker stack
cd ~/znndNode
sudo docker compose up -d
Docker images will be built or downloaded and configured. After all image are started you can check to make sure the images are running with the following command. Make sure you are in the /znndNode directory.
sudo docker compose ps
Log into grafana and setup a new password
https://example.com:3000 #Replace example.com with the domain you setup above.
Default Grafana User ID = admin
Default Grafana Password = admin
Node Access
Replace example.com with your domain name
Grafana Access: https://example.com:3000
SYRIUS Access: wss://example.com:35998
API Access: https://example.com:35997
Check Sync Status:
curl -X GET https://example.com:35997 -H "content-type: application/json" -d '{"jsonrpc": "2.0", "id": 40, "method": "stats.syncInfo", "params": []}'