Vorliq Home

Run a Public Vorliq Node

Deploy the Version 1.0 blockchain and backend on an Ubuntu server.

Quick Setup

The fastest way to deploy a Vorliq public node is to run the automated setup scripts on a fresh Ubuntu 22.04 server. The first command downloads and runs the installer. The second command runs the server configuration script from the cloned Vorliq repository.

curl -fsSL https://raw.githubusercontent.com/vorliq/Vorliq/main/deployment/setup_server.sh -o setup_server.sh
sudo bash setup_server.sh
sudo bash /home/vorliq/app/deployment/configure_server.sh

After the scripts finish, the React web app is served through nginx, the backend API runs through systemd, the blockchain API listens on port 5001, and the node is ready to register with the Vorliq community.

Advanced Manual Setup

The manual setup notes below explain what the automated scripts do and are useful for operators who want to customize the server, domain, SSL certificate, or systemd services by hand.

What You Need for Production

To run a public Vorliq node, use a Linux server running Ubuntu 22.04 or later with a public IP address, at least 1 gigabyte of RAM, and at least 10 gigabytes of disk space. A small virtual private server from a common provider is enough for early community nodes and usually costs around five dollars per month.

Install Dependencies on the Server

Install Git, Python, Node.js 20, npm, nginx, and the tools needed to create the Python virtual environment.

sudo apt update
sudo apt install -y git nginx software-properties-common python3.12 python3.12-venv python3-pip curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

Clone and Configure Vorliq

Clone Vorliq, install the Python dependencies, install the Node.js backend, and build the React frontend. For a public node, configure the Flask blockchain API to listen on all interfaces by running it with VORLIQ_HOST=0.0.0.0 and port 5001.

git clone https://github.com/vorliq/Vorliq.git
cd Vorliq/blockchain
python3.12 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cd ../backend
npm install
cd ../frontend
npm install
npm run build

Run Vorliq as a Service

Create one systemd service for the Flask blockchain API and one for the Node.js backend so both restart automatically if the server reboots or a process crashes.

[Unit]
Description=Vorliq Blockchain API
After=network.target

[Service]
WorkingDirectory=/home/ubuntu/Vorliq/blockchain
Environment=VORLIQ_HOST=0.0.0.0
Environment=VORLIQ_PORT=5001
ExecStart=/home/ubuntu/Vorliq/blockchain/.venv/bin/python app.py
Restart=always

[Install]
WantedBy=multi-user.target
[Unit]
Description=Vorliq Backend API
After=network.target

[Service]
WorkingDirectory=/home/ubuntu/Vorliq/backend
Environment=PORT=5000
Environment=FLASK_URL=http://127.0.0.1:5001
ExecStart=/usr/bin/node index.js
Restart=always

[Install]
WantedBy=multi-user.target

Public node operators can add optional registry identity environment variables to the backend service. These values are public metadata used by the heartbeat script and should not contain secrets.

Environment=VORLIQ_NODE_URL=https://node.example.org
Environment=VORLIQ_NODE_NAME=Example Vorliq Node
Environment=VORLIQ_NODE_REGION=Europe
Environment=VORLIQ_NODE_COUNTRY=United Kingdom
Environment=VORLIQ_OPERATOR_WALLET=VLQ_PUBLIC_OPERATOR_ADDRESS

Operator Admin Token

Production incident and operator dashboard routes are protected by ADMIN_TOKEN. The automated deployment creates a strong random token in /etc/vorliq/backend.env when one is not already present and loads it through the backend systemd service. Do not commit this token, print it in logs, or share it publicly.

sudo mkdir -p /etc/vorliq
sudo sh -c 'umask 077 && printf "ADMIN_TOKEN=%s\n" "$(openssl rand -hex 32)" > /etc/vorliq/backend.env'
sudo systemctl daemon-reload
sudo systemctl restart vorliq-backend.service

The backend service should include EnvironmentFile=-/etc/vorliq/backend.env or an equivalent Environment=ADMIN_TOKEN=... line in /etc/systemd/system/vorliq-backend.service. Use the environment file when possible so the token is not copied into documentation or shell history.

Operators can use this token privately with the protected dashboard at https://vorliq.org/admin and the incident API described in the incident response guide.

Configure nginx

Use nginx to serve the React frontend and proxy backend API requests. Replace the server name with your domain or public IP address.

server {
  listen 80;
  server_name your-domain-or-ip;

  root /home/ubuntu/Vorliq/frontend/build;
  index index.html;

  location / {
    try_files $uri /index.html;
  }

  location /api/ {
    proxy_pass http://127.0.0.1:5000/api/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Open Your Node to the Network

After the server is running, open port 5001 for peer blockchain communication and port 80 for the web app. Register your node in the Vorliq Registry page using your public IP address and port 5001, then share the node URL in the Vorliq Discord and Telegram so community members can connect.