EcliTunnel lets game servers running behind NAT expose ports to players without requiring a public IP. A tunnel device registers with the panel via a device code flow—similar to OAuth device authorization—and once approved, the tunnel agent opens a persistent WebSocket control channel and relays traffic to allocated ports.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.
Tunnel endpoints require the
tunnels feature flag to be enabled in panel settings. Enterprise node operators typically manage tunnels for their users.Allocations
List tunnel allocations
GET /api/tunnel/allocations
Returns all port allocations assigned to tunnel devices the authenticated user can manage.
Allocation ID.
Allocated port number on the tunnel server.
UUID of the tunnel device this port is assigned to.
Transport protocol:
tcp or udp.ISO 8601 creation timestamp.
Devices
List tunnel devices
GET /api/tunnel/devices
Returns all tunnel devices owned by the authenticated user or by organisations they manage.
Device UUID.
Device display name.
Device role:
client or server.Whether the device has been approved by an admin.
Human-readable activation code shown during the enrollment flow.
ISO 8601 expiry time for pending (unapproved) devices.
Start device enrollment
POST /api/tunnel/device/start
Initiates the device code enrollment flow. The returned deviceCode and userCode are used to complete pairing. Unapproved devices expire after 10 minutes.
Human-readable name for the device (e.g.
home-server).Device role:
client (default) or server. Creating a server-kind device requires admin access.Associate the device with a specific organisation. The caller must be an admin or owner of that organisation.
Unique code used by the tunnel client to authenticate.
Short human-readable code displayed to the user during approval.
ISO 8601 expiry time. Enrollment must be approved before this time.
Poll device status
GET /api/tunnel/device/poll
Used by the tunnel client to check whether its enrollment has been approved. Poll this endpoint until approved is true or the device expires.
Device code returned by
/api/tunnel/device/start.Whether the device has been approved.
JWT token issued to the device once approved. The tunnel agent uses this to authenticate its WebSocket connection.
Approve a device
POST /api/tunnel/device/approve
Approves a pending tunnel device. Requires admin access.
The human-readable user code shown during enrollment.
Whether the device was approved.
The approved device record.
Delete a device
DELETE /api/tunnel/devices/:id/delete
Removes a tunnel device and all its port allocations. The device’s WebSocket connection is closed immediately.
Device UUID.
Whether the device was deleted.
Regenerate device token
POST /api/tunnel/devices/:id/regenerate-token
Issues a new authentication token for a device. The existing token is immediately invalidated, forcing the tunnel agent to reconnect.
Device UUID.
Whether the token was regenerated.
The new device JWT token.