Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/thenoname-gurl/EcliPanel/llms.txt

Use this file to discover all available pages before exploring further.

Nodes are the compute hosts that run game server processes. EcliPanel communicates with each node through the Wings agent. The endpoints here let administrators register new nodes, issue authentication tokens, monitor node health via heartbeats, and perform bulk operations across all servers on a node.
Most node endpoints require admin-level permissions or the nodes:read / nodes:create permission. The /api/nodes/available endpoint is open to all authenticated users and returns only the nodes compatible with their portal tier.

Node listing

List all nodes

GET /api/nodes Returns all registered nodes with their configuration. Credentials (rootUser, rootPassword, token) are stripped from the response. Required permission: nodes:read (admin)
curl https://your-panel.example.com/api/nodes \
  -H "Cookie: session=<token>"
id
number
Node record ID.
name
string
Human-readable node name.
url
string
Wings agent base URL.
nodeType
string
One of free, paid, free_and_paid, or enterprise.
fqdn
string
Fully-qualified domain name used for player connections.
useSSL
boolean
Whether TLS is enabled on the Wings agent.
organisation
object

List available nodes

GET /api/nodes/available Returns the subset of nodes available to the authenticated user based on their portal tier. Enterprise users see only nodes assigned to their organisations; free and paid users see nodes matching their tier. Unhealthy nodes are excluded automatically.
curl https://your-panel.example.com/api/nodes/available \
  -H "Cookie: session=<token>"
Results are cached for 10 seconds per user. If you recently changed a user’s portal tier, allow up to 10 seconds for the available node list to update.

Get node details

GET /api/nodes/:id
id
string
required
Node ID or UUID.
Required permission: nodes:read (admin)
curl https://your-panel.example.com/api/nodes/7 \
  -H "Cookie: session=<token>"

Token management

Generate a node token

POST /api/nodes/generate-token Issues a new Wings authentication token. Used when bootstrapping a fresh node installation. Required permission: nodes:create
name
string
required
Display name for the node.
url
string
required
Base URL of the Wings agent (e.g. https://node1.example.com:8080).
nodeType
string
Portal tier this node serves. One of free, paid, free_and_paid, or enterprise. Defaults to free.
useSSL
boolean
Override TLS detection. Defaults to true when url starts with https://.
fqdn
string
FQDN for player-facing connections.
ipv6Subnet
string
IPv6 CIDR block assigned to this node (e.g. 2001:db8::/64).
portRangeStart
number
Lowest port in the allocation range (1–65535).
portRangeEnd
number
Highest port in the allocation range (1–65535).
curl -X POST https://your-panel.example.com/api/nodes/generate-token \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "EU Node 1",
    "url": "https://eu1.nodes.example.com:8080",
    "nodeType": "paid",
    "useSSL": true,
    "portRangeStart": 25000,
    "portRangeEnd": 30000
  }'
success
boolean
Whether registration succeeded.
node
object

Heartbeats

Get node heartbeats

GET /api/nodes/:id/heartbeats Returns the recent heartbeat history for a node, used to determine health and uptime. Required permission: admin
id
string
required
Node ID.
curl https://your-panel.example.com/api/nodes/7/heartbeats \
  -H "Cookie: session=<token>"
timestamp
string
ISO 8601 heartbeat time.
healthy
boolean
Whether the node responded successfully.
latencyMs
number
Round-trip latency in milliseconds.

Fleet operations

Mass allocation change

POST /api/nodes/:id/mass-allocation-change Bulk-updates the port allocations for all servers on a node. Useful when renumbering a port range after a node migration. Required permission: admin
id
string
required
Node ID.
offset
number
Port number delta to apply to all existing allocations.
This operation modifies allocation records for every server on the node. Test against a staging environment before using in production.
curl -X POST https://your-panel.example.com/api/nodes/7/mass-allocation-change \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{"offset": 1000}'

Reboot all servers on a node

POST /api/nodes/:id/reboot-all-servers Sends a restart signal to every server running on the specified node. An operation ID is returned that can be polled at /api/nodes/:id/reboot-status/:operationId. Required permission: admin
id
string
required
Node ID.
This will interrupt all running game servers on the node. Notify users before executing.
curl -X POST https://your-panel.example.com/api/nodes/7/reboot-all-servers \
  -H "Cookie: session=<token>"
success
boolean
Whether the reboot job was queued.
operationId
string
ID used to poll progress at /api/nodes/:id/reboot-status/:operationId.

Build docs developers (and LLMs) love