HF PanelDocsv1.0.0

Licence API

The licence server addresses under /v1/licence that paid-edition servers use to check in, start trials, report installs and download releases.

The licence server is part of the publisher's own HF Panel only, at https://api.hostfog.io:2087/v1/licence/…. Paid-edition servers use it on their own: to check their licence, start a trial, report installs and updates, and fetch the newest release. You do not need to call it yourself.

Note: on every other server these addresses answer 404 Not found. They are described here so that you know what a licensed server sends, for example when you set up a firewall.

These addresses need no session and no API token. They answer plain JSON, not the token API's {ok, data} format. The old addresses on https://panel.hostfog.io/licence/… give the same answers; licensed servers try the new address first.

Method Path Old path What it does
POST /v1/licence/check /licence/api/check a licensed server checks in: {"key","hostname","version","accounts","ips"}. The answer is signed (payload, sig)
POST /v1/licence/trial /licence/api/trial starts a trial for the calling server's IP address: {"email"}. Answers {"key","days","trial_ends"}, or 409 with the reason (for example, a trial already used)
POST /v1/licence/event /licence/api/event an install, update or uninstall report from a paid-edition server
GET /v1/licence/pubkey /licence/pubkey the public key that signs every answer, as base64 text
GET /v1/licence/release /licence/release the signed note of the newest paid-edition release: version, notes, SHA-256, size and date
GET /v1/licence/download?key=… /licence/download?key=… the paid installer for a licence key; 403 for an unknown key

Check-in

ips is optional: the server's own addresses, at most 32 are read. A licence for a public IPv4 address must check in from that address. A licence for a private, loopback, link-local, CGNAT or IPv6 address (a server behind NAT) passes when that address is one of ips.

Install reports

The paid edition's installer, updater and uninstaller send a report when the server has a licence key:

bash
curl -fsS -H 'Content-Type: application/json' https://api.hostfog.io:2087/v1/licence/event \
     -d '{"key":"HFL-ABCDE-FGHJK-MNPQR-STUVW","event":"install_finished","version":"1.0.0","os_name":"Ubuntu","os_version":"24.04","cpus":4,"ram_mb":8192,"disk_gb":80,"domain":"yourdomain.com"}'
Field What it holds
key the licence key, required
event required: install_started, install_finished, install_failed, update_finished, update_failed or uninstalled
version, hostname, os_name, os_version about the server
cpus, ram_mb, disk_gb the server's size
step, error failures only: the step that stopped and a short error
domain, company the server's own domain and company name
Status Body
200 {"ok":true,"known":true} ("known":false for a key that is not a licence)
400 {"error":"invalid JSON"}, {"error":"invalid licence key"} or {"error":"unknown event"}
405 {"error":"POST only"}
429 {"error":"too many attempts"}

Rate limits

Each address limits how often one IP address may call it, for example 120 check-ins and 5 trial requests an hour. Over the limit, it answers 429.