Admin & instances

Admins register hosting panels, tune pricing and limits, and manage account credit.

Admin status is granted by email via the ADMIN_EMAILS environment variable on the backend. Admin endpoints live under /v1/admin and the UI under /admin.

Adding a hosting instance

You need, from each panel:

  • The panel base URL (e.g. https://panel.example.com).
  • An Application API key (Admin → Application API) with read/write on users, nodes, allocations, servers and eggs.
  • Optionally a Client API key so Cloud API can proxy power, console and files.
bash
POST /v1/admin/instances { "name": "eu-cluster", "baseUrl": "https://panel.eu.example.com", "appApiKey": "ptla_...", "clientApiKey": "ptlc_...", "priority": 100 }

Use POST /v1/admin/instances/:id/test to verify connectivity — it lists nodes and their region tags, and confirms the client key resolves a service user. Tag nodes USA, SPAIN, etc. in Pelican so the stock engine can group them by region.

The service user & the client key

Pelican’s Client API (power, console, files) is per-user: a client key can only manage servers its owner owns. So Cloud API creates every server on an instance under the single Pelican user that owns that instance’s client key — the service user — letting one key manage them all. Tenant isolation is enforced by Cloud API in its own database (each server records the account that owns it), not by Pelican.

  • Create a dedicated Pelican user for Cloud API and generate a Client API key while logged in as that user.
  • Add it as clientApiKey. Cloud API calls /api/client/account to resolve and cache the service user id.
  • Without a client key, deploys still work (under a per-account user), but power/console/file endpoints return 400 until you add one.

Pricing & limits

PUT /v1/admin/settings controls per-resource prices, the trial credit, the minimum balance, per-server resource caps and the per-account server limit. See Credits & billing.

Managing credit

bash
POST /v1/admin/users/:id/credits { "amountCents": 2000, "note": "Promo" } // negative deducts

Multiple instances

Add as many panels as you like. Lower priority values are preferred; within the same priority the node with the most free memory wins. Disable an instance (without deleting it) by setting enabled: false — existing servers keep working, but no new servers are placed there.

Admin & instances | Enzonic Cloud API