Servers
Register machines you provisioned, or hand the panel a blank VPS and let it do it.
Reading needs Read only and changes need Full, unless an endpoint says otherwise. How to read this page.
GET /api/servers
Section titled “GET /api/servers”Every server with status, site count and host key.
- Level: Read only
POST /api/servers
Section titled “POST /api/servers”Register a server, or provision a blank VPS over SSH.
- Level: Full
- Notes: Destructive
- Input:
{name, sshHost, sshPort?, sshUser?, devDomain, dnsProvider?, publicIp?, provision?, acmeEmail?} - Returns:
201 {server, checks, job} | 202 when provisioning
GET /api/servers/ssh-public-key
Section titled “GET /api/servers/ssh-public-key”The key to authorize on a new machine.
- Level: Read only
- Returns:
{publicKey}
GET /api/servers/:id
Section titled “GET /api/servers/:id”One server.
- Level: Read only
GET /api/servers/:id/info
Section titled “GET /api/servers/:id/info”What the machine is: OS, kernel, CPU, memory, uptime, Docker version.
- Level: Read only
- Input:
?refresh=true skips the one-minute cache - Returns:
{reachable, os, kernel, arch, cpus, memTotalBytes, uptimeSeconds, dockerVersion, …}
PATCH /api/servers/:id
Section titled “PATCH /api/servers/:id”Edit a server, re-trust its host key, or set where it keeps backups.
- Level: Full
- Notes: Destructive
- Input:
{name?, sshHost?, sshPort?, sshUser?, publicIp?, devDomain?, dnsProvider?, retrustHostKey?, backupRoot?}
POST /api/servers/:id/test
Section titled “POST /api/servers/:id/test”Re-verify the connection now.
- Level: Manage. Only re-checks the connection; changes nothing
- Returns:
{ok, checks}
POST /api/servers/:id/update
Section titled “POST /api/servers/:id/update”Re-push the provision bundle and re-run setup.sh.
- Level: Full
- Notes: Job · Destructive
- Input:
{rootUser?: "root"}
GET /api/servers/:id/storage
Section titled “GET /api/servers/:id/storage”Where backups live on this server, and whether a candidate path would work.
- Level: Read only
- Input:
?path= to validate instead
POST /api/servers/:id/backups/relocate
Section titled “POST /api/servers/:id/backups/relocate”Copy every backup to a new location, verify, remove the originals.
- Level: Full
- Notes: Job · Destructive
- Input:
{to}
GET /api/servers/:id/terminal
Section titled “GET /api/servers/:id/terminal”Interactive root shell.
Websocket upgrade - not callable from the test console.
- Level: Full. A root shell on the server
- Notes: Destructive · Not over MCP
- Input:
?cols=&rows=
DELETE /api/servers/:id
Section titled “DELETE /api/servers/:id”Remove a server (refused while sites live on it; server 1 never).
- Level: Full
- Notes: Destructive
- Input:
?force=true
GET /api/monitor/overview
Section titled “GET /api/monitor/overview”Per-server load/memory/disk and per-site up/CPU/memory/disk.
- Level: Read only
GET /api/monitor/servers/:id/history
Section titled “GET /api/monitor/servers/:id/history”Server resource history for charts.
- Level: Read only
- Input:
?hours=1..168
GET /api/monitor/sites/:slug/history
Section titled “GET /api/monitor/sites/:slug/history”Site resource history for charts.
- Level: Read only
- Input:
?hours=1..168