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.

EcliPanel uses a role-based access control system where every privileged action is guarded by a named permission. Roles are collections of those permissions, and users inherit access by being assigned one or more roles. This model lets platform administrators grant staff precise access — for example, allowing a support agent to view tickets but not delete servers — without sharing full admin credentials. Regular users can also extend per-server access to collaborators through server sub-users without needing a formal role at all.

How roles work

A role is a named record with an optional description and an ordered set of permission strings. When a request arrives, EcliPanel checks whether any of the requesting user’s roles contain a permission that matches the required action. Matching supports wildcards: a permission value of nodes:* grants every action in the nodes category, and * alone grants everything on the platform. Roles can optionally inherit from a parent role, picking up all of the parent’s permissions automatically.

The rootAdmin role

The rootAdmin role carries the wildcard permission *, which means full access to every endpoint and admin panel section. The first administrator account on a fresh installation is promoted to rootAdmin using the CLI tool described below.
The rootAdmin role bypasses every permission check. Assign it only to accounts that genuinely need unrestricted platform access. Use narrowly-scoped roles for day-to-day staff.

Promoting a user via CLI

Before any role management UI is accessible, you need at least one admin account. From the backend directory, run:
# Promote to rootAdmin (default)
bun run promote -- admin@example.com

# Promote to a specific role
bun run promote -- admin@example.com rootAdmin
bun run promote -- agent@example.com support-staff
The script connects to the database directly, finds the user by email, and updates their role field. It prints the old and new role so you can confirm the change took effect.

Creating and managing roles (admin)

Roles are managed in the Admin Panel → Roles section. You must have the roles:create, roles:read, or roles:* permission to access these pages.
1

Open the Roles page

Go to Admin Panel → Roles in the left navigation.
2

Create a new role

Click New role, enter a name and optional description, and optionally select a parent role.
3

Add permissions

With the role open, click Add permission and select one or more permission strings from the list. You can also type a permission value directly.
4

Assign the role to a user

Navigate to Admin Panel → Users, open the user’s profile, and assign the new role under the Roles section.

Available permissions

Permissions follow a category:action convention. The table below shows the categories and representative values available in EcliPanel. Admin-only permissions are marked.
CategoryExample permissionsAdmin only
Global*, admin:access, admin:metrics, admin:settingsYes
Serversservers:read, servers:write, servers:deleteNo
Admin serversadmin:servers:read, admin:servers:write, admin:servers:manage, admin:servers:suspend, admin:servers:deleteYes
Nodesnodes:read, nodes:create, nodes:*Yes
Billingbilling:read, billing:writeYes
Plansplans:read, admin:plans:view, admin:plans:manage, admin:plans:deleteMixed
Ordersorders:read, orders:create, orders:view, orders:issueMixed
Rolesroles:read, roles:create, roles:*Yes
Permissionspermissions:assignYes
Usersusers:read, users:write, users:delete, users:suspend, admin:user:editYes
API Keysapikeys:read, apikeys:create, apikeys:deleteNo
Organisationsorg:read, org:write, org:invite, org:*Mixed
KYCidverification:read, admin:kyc:view, admin:kyc:manageYes
AIai:read, ai:manage, ai:*Mixed
Ticketstickets:read, tickets:write, tickets:delete, tickets:ban, admin:ticket:staffMixed
Filesfiles:read, files:writeNo
Backupsbackups:read, backups:create, backups:writeNo
Databasesdatabases:read, databases:writeMixed
Schedulesschedules:read, schedules:create, schedules:writeNo
Commandscommands:executeNo
Anti-abuseadmin:antiabuseYes
Fraudadmin:fraudYes
Wingswings:system, wings:transfers, wings:backups, wings:*Yes
SOCsoc:read, soc:write, soc:*No
Tunnelstunnels:read, admin:tunnels:readMixed
The complete permission list is served by the backend at GET /api/permissions and is what populates the role editor in the admin panel.

Server sub-users

Server sub-users are a lightweight way to grant another EcliPanel account access to a specific server without giving them a global role. The owner of a server can invite sub-users from the server’s Settings → Sub-users tab. When you add a sub-user you choose exactly which capabilities they receive for that server:
Sub-user permissionWhat it grants
consoleView and send console commands
filesBrowse, edit, upload, and download files
backupsCreate and restore backups
databasesView and manage server databases
schedulesCreate and edit scheduled tasks
startupView and edit startup parameters
settingsChange basic server settings
networkView network and allocation details
activityView the server activity log
statsView resource usage statistics
mountsView mount attachments
*Full access to all of the above
Sub-users receive an invitation email. They must accept the invite before they can access the server. You can revoke a sub-user’s access at any time from the same Sub-users settings tab.
Sub-user permissions are scoped to a single server. They do not grant any access to other servers or any part of the platform outside that server’s management pages.

Permission inheritance and defaults

If a user has no roles assigned, EcliPanel falls back to the permissions on the built-in default role (if one exists). This lets you define a baseline of what every authenticated user can do without explicitly assigning a role to each account. When a user has multiple roles, permissions are merged — they receive the union of all permissions across every role they hold.

Build docs developers (and LLMs) love