curl -sSL https://infernetprotocol.com/install | bashThe installer: 1. Detects your OS and architecture 2. Downloads the
appropriate pre-built Node.js binary 3. Installs it to
/usr/local/bin/infernet (or ~/.local/bin if
not root) 4. Adds it to your PATH
After the install, either open a new shell or
source ~/.bashrc / source ~/.zshrc.
Verify:
infernet --version
# infernet v0.1.19
# up to dateINFERNET_VERSION=$(curl -s https://infernetprotocol.com/version)
curl -sSL "https://github.com/infernetprotocol/infernet-protocol/releases/download/${INFERNET_VERSION}/infernet-linux-x86_64" \
-o /usr/local/bin/infernet
chmod +x /usr/local/bin/infernetAvailable platforms: linux-x86_64,
linux-aarch64, darwin-arm64,
darwin-x86_64.
infernet setupsetup is interactive and walks through every step. Pass
--yes to accept defaults non-interactively:
infernet setup --yes1. Collect registration token
You’ll be prompted for the one-time registration token from the dashboard. Get it at Nodes → Add Node in the Infernet Dashboard.
2. Detect hardware
The wizard runs nvidia-smi, rocminfo, and
system checks to determine GPU model, VRAM, system RAM, and CPU cores.
Only coarse capability data is sent to the control plane — no hostname
or exact CPU model leaves the node.
3. Install inference backend
If no backend is detected, Ollama is installed automatically. If you want a different backend (vLLM, SGLang, MAX), install it first (see Chapter 3), then run setup — it will detect and configure it.
4. Pull default model
The wizard suggests a model based on your VRAM tier:
| Tier | Default Model |
|---|---|
| >=48gb | qwen2.5:72b |
| 24-48gb | qwen2.5:14b |
| 16-24gb | qwen2.5:7b |
| 8-16gb | qwen2.5:7b |
| cpu | qwen2.5:1.5b |
5. Generate keypair + config
A secp256k1 keypair (Nostr-compatible) is generated. Config is
written to ~/.config/infernet/config.json with mode
0600:
{
"controlPlane": { "url": "https://infernetprotocol.com" },
"node": {
"id": null,
"nodeId": "provider-a1b2c3d4",
"role": "provider",
"name": "user@hostname",
"publicKey": "abcdef...",
"privateKey": "012345...",
"address": "1.2.3.4",
"port": 46337
},
"engine": {
"backend": "ollama",
"ollamaHost": "http://localhost:11434",
"model": "qwen2.5:7b"
}
}6. Configure logrotate
On Linux, setup writes /etc/logrotate.d/infernet so logs
in /var/log/infernet/ rotate daily and are retained for 14
days.
7. Register with the control plane
infernet register is called automatically. The node’s
public key, role, GPU capabilities, and available models are sent to the
control plane.
The daemon makes outbound HTTPS connections only — no inbound ports are required for basic operation. If clients connect directly to your node:
# UFW
sudo ufw allow out 443/tcp
sudo ufw allow in 46337/tcp # P2P port (default)
# iptables
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 46337 -j ACCEPTinfernet service installThis creates a systemd unit (Linux) or launchd plist (macOS) so the daemon starts at boot.
infernet service start
infernet service stop
infernet service restart
infernet service status
infernet service uninstallThe daemon checks for a new CLI version every 5 minutes against the GitHub releases API. When a newer version is available it:
No manual intervention needed. You can also trigger an upgrade manually:
infernet upgradeCheck your current version at any time:
infernet --versioninfernet upgradeRe-runs the curl installer. Config, keys, and registered node identity are preserved.
infernet removeStops the daemon, removes the service unit, removes the binary, and optionally removes your config and keys (it will ask). The node’s registration on the control plane is deactivated.