Getting EcliPanel running requires three services: the wings-rs node agent on each host, the Elysia/Bun backend API server, and the Next.js frontend. This guide walks you through each piece in order. Complete all steps before creating your first server — EcliPanel’s frontend and backend both depend on at least one Wings node being reachable.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.
Install wings-rs on each node host
EcliPanel requires wings-rs — the Rust-based Wings agent. You cannot use the original pterodactyl wings-go; most EcliPanel features will not work with it.Follow the wings-rs installation instructions in its repository. After wings-rs is installed, complete the backend and frontend setup below, then start wings-rs again so it can connect to your configured panel.
Set up the backend
Navigate to the Generate the JWT secret and other required secrets, then copy the example environment file and fill in your values:Key variables to configure in
Seed the database to create the default Start the backend:The backend listens on the
backend/ directory and install dependencies. Bun is the recommended runtime because it executes TypeScript directly.backend/.env:| Variable | Description |
|---|---|
DB_HOST, DB_USER, DB_PASS, DB_NAME | MariaDB connection details |
DB_TYPE | Set to mariadb |
PORT | Port the backend API listens on (e.g. 3001) |
JWT_SECRET | Generated by bun run gen:jwt-secret |
NODE_PQ_ENCRYPTION_SEED | 64-byte base64 key generated above |
NODE_ENCRYPTION_KEY | Key for encrypting node credentials |
REDIS_URL | Redis connection string (default: redis://localhost:6379) |
FRONTEND_URL | Public URL of the frontend (e.g. https://panel.example.com) |
PANEL_URL | Same as FRONTEND_URL in most setups |
ORIGIN | Origin for CORS and CSRF checks |
rootAdmin role and its permissions:PORT you configured and serves the REST API, handles multi-node mapping, and proxies WebSocket connections to Wings nodes.Configure and start the frontend
In a separate terminal, navigate to the Copy and configure the frontend environment file:Key frontend environment variables:
Edit Start the frontend:The frontend runs on port 3000 and automatically proxies
frontend/ directory:| Variable | Description |
|---|---|
BACKEND_URL | Internal URL of the backend (e.g. http://localhost:3001) |
NEXT_PUBLIC_API_BASE | Public-facing API base URL |
NEXT_PUBLIC_WINGS_BASE | Base URL of the Wings node (e.g. http://localhost:8080) |
lib/panel-config.ts to set your branding — company name, logo path, and repository URL:/api/* requests to the backend and /wings/* requests to the Wings node via rewrites defined in next.config.mjs.For production deployments, place Nginx (or another reverse proxy) in front of both the frontend and backend. The systemd unit files in the
/systemd directory are available as a starting point for service management.Promote your first admin user
Register an account through the frontend, then promote it to You can also specify the role explicitly:To assign a less-privileged staff role:
rootAdmin using the backend CLI script. The rootAdmin role has full permissions including the wildcard * grant.Access the dashboard
Open
http://localhost:3000 (or your configured domain) in a browser and log in with the account you promoted. You will land on the SOC Dashboard.From there you can:- Register Wings nodes from the Admin Panel
- Create server allocations and provision game servers
- Invite team members and create organisations
- Configure billing plans, DNS zones, and feature flags
Next steps
Architecture
Learn how the backend, frontend, Wings nodes, and Rust components communicate
Nodes and Wings
Register Wings nodes and manage allocations from the admin panel
Roles and permissions
Configure roles, grant permissions, and manage staff access
Self-hosting guide
Full production installation reference including Nginx and systemd configuration