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

1

Install the Kova Node CLI

npm install -g @kova/node-cli

Verify the installation:

kova-node --version
2

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.

3

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
4

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.

5

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

FieldDescriptionUnit
pricing.cpuPrice per CPU core$ per block
pricing.memoryPrice per GB of memory$ per block
pricing.storagePrice per GB of disk$ per block
pricing.gpuPrice per GPU$ per block

Resource Limits

FieldDescriptionDefault
resources.maxCpuMaximum CPU cores to offerAll available
resources.maxMemoryMaximum memory in GB80% of total
resources.maxDiskMaximum disk in GB100
resources.gpusGPU 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:

VariableDescription
KOVA_ORCHESTRATOR_URLOrchestrator API endpoint
KOVA_API_KEYNode API key (from registration)
KOVA_API_PORTAPI port for incoming connections (default: 4002)
KOVA_MAX_CPUMaximum CPU cores
KOVA_MAX_MEMORYMaximum memory in GB
KOVA_MAX_DISKMaximum 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.