Node Setup
Set up and run a provider node to earn rewards by contributing compute resources.
Prerequisites
Before you begin, make sure you have:
- Linux machine - Ubuntu 22.04+ or Debian 12+ recommended
- Docker - Version 24.0+ installed and running
- Node.js - Version 20+ (for the CLI)
- Stable internet - Reliable connection with decent bandwidth
- Public IP or port forwarding - Your node must be reachable from the internet
Ensure your firewall allows inbound connections on port 4002 (the default API port). The orchestrator and tenant deployments need to reach your node on this port.
Installation
Install the Kova Node CLI
npm install -g @kova/node-cli
Verify the installation:
kova-node --version
Initialize Your Node
kova-node init
This creates a configuration file at ~/.kova/config.json with default settings. You'll be prompted to set your pricing and resource limits.
Configure Pricing and Resources
Edit ~/.kova/config.json or use CLI flags:
kova-node config set pricing.cpu 0.10
kova-node config set pricing.memory 0.05
kova-node config set pricing.storage 0.02
kova-node config set resources.maxCpu 8
kova-node config set resources.maxMemory 16
kova-node config set resources.maxDisk 200
Register on the Network
kova-node register
This registers your node with the orchestrator. You'll receive a node ID and API key that are saved to your config automatically.
Start the Provider
kova-node start
Your node will connect to the network, start sending heartbeats, and begin accepting bids.
Configuration Reference
The config file at ~/.kova/config.json:
{
"nodeId": "auto-generated-on-register",
"apiKey": "auto-generated-on-register",
"orchestratorUrl": "https://app.kovanetwork.com/api/v1",
"apiPort": 4002,
"pricing": {
"cpu": 0.10,
"memory": 0.05,
"storage": 0.02,
"gpu": 1.00
},
"resources": {
"maxCpu": 8,
"maxMemory": 16,
"maxDisk": 200,
"gpus": []
}
}
Pricing Fields
| Field | Description | Unit |
|---|---|---|
pricing.cpu | Price per CPU core | $ per block |
pricing.memory | Price per GB of memory | $ per block |
pricing.storage | Price per GB of disk | $ per block |
pricing.gpu | Price per GPU | $ per block |
Resource Limits
| Field | Description | Default |
|---|---|---|
resources.maxCpu | Maximum CPU cores to offer | All available |
resources.maxMemory | Maximum memory in GB | 80% of total |
resources.maxDisk | Maximum disk in GB | 100 |
resources.gpus | GPU devices to offer (see below) | Empty |
GPU Configuration
If your machine has GPUs, add them to the config:
{
"resources": {
"gpus": [
{
"vendor": "nvidia",
"model": "rtx4090",
"deviceId": "0"
}
]
}
}
Environment Variables
All settings can be overridden with environment variables:
| Variable | Description |
|---|---|
KOVA_ORCHESTRATOR_URL | Orchestrator API endpoint |
KOVA_API_KEY | Node API key (from registration) |
KOVA_API_PORT | API port for incoming connections (default: 4002) |
KOVA_MAX_CPU | Maximum CPU cores |
KOVA_MAX_MEMORY | Maximum memory in GB |
KOVA_MAX_DISK | Maximum disk in GB |
Running as a Service
For production, run the node as a systemd service:
sudo tee /etc/systemd/system/kova-node.service > /dev/null <<EOF
[Unit]
Description=Kova Provider Node
After=network.target docker.service
Requires=docker.service
[Service]
Type=simple
User=$USER
ExecStart=$(which kova-node) start
Restart=always
RestartSec=10
Environment=KOVA_ORCHESTRATOR_URL=https://app.kovanetwork.com/api/v1
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable kova-node
sudo systemctl start kova-node
Monitoring Your Node
CLI Status
kova-node status
This shows your node's connection state, active leases, resource usage, and earnings.
Dashboard Provider Panel
Log in to the Kova dashboard to see:
- Node uptime and availability
- Active deployments running on your node
- Earnings history and pending payments
- Resource utilization over time
Start with conservative resource limits and gradually increase them as you get comfortable. Monitor your node's performance to make sure deployments run smoothly -- provider reputation affects bid acceptance rates.