EcliPanel ships as two separate processes — a Bun/Elysia REST API (the backend) and a Next.js application (the frontend) — plus one or more wings-rs nodes that execute server workloads. This guide walks you through installing every component on a fresh Linux host. Complete each section in order; the backend must be running before you register your first wings node, and the frontend must be configured to point at the backend before users can sign in.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.
Prerequisites
Before you begin, ensure the following are installed on your host:| Dependency | Purpose | Minimum version |
|---|---|---|
| Bun | Backend runtime and package manager | 1.x |
| Node.js | Optional — only needed if you pre-compile with build.sh | 20 LTS |
| pnpm | Frontend package manager | 8.x |
| MariaDB | Primary relational database | 10.6+ |
| Redis | Session cache and queue | 7.x |
| ffmpeg | Audio processing for captcha | any |
| espeak | Text-to-speech for audio captcha | any |
ffmpeg and espeak are only required if you enable the audio captcha feature (CAPTCHA_SECRET / CAPTCHA_INVISIBLE_SECRET). You can skip them and add them later.Installation steps
Install wings-rs
Follow the installation instructions in the calagopus/wings repository to build and configure the node agent on each server host. Complete the wings configuration first, then return here to finish the panel setup. After the backend and frontend are running you will register each node from the admin panel.
Clone the repository
Clone EcliPanel to your preferred path. The examples below use
/srv/eclipanel — adjust to match your environment.Set up the backend
Move into the Copy the example environment file and open it for editing:See the environment variable reference for every available option. At minimum you must set Copy each printed value into the corresponding variable in
backend directory and install dependencies:DB_HOST, DB_USER, DB_PASS, DB_NAME, PORT, FRONTEND_URL, PANEL_URL, JWT_SECRET, and NODE_ENCRYPTION_KEY.Generate the required secrets with the built-in helper scripts:.env.Seed the default role (rootAdmin) into the database:Set up the frontend
Move into the Copy the example environment file and edit it:The frontend
Optionally edit
frontend directory and install dependencies:.env controls how the Next.js process reaches the backend and Wings nodes at build time and runtime. Set the following variables:| Variable | Description |
|---|---|
BACKEND_URL | Internal URL the Next.js server uses to proxy API requests, e.g. http://localhost:4000 |
NEXT_PUBLIC_API_BASE | Public-facing API base URL shown to browsers |
NEXT_PUBLIC_WINGS_BASE | Public-facing Wings base URL for WebSocket proxying |
lib/panel-config.ts to update branding (panel name, logo path, tagline) and enable or disable feature flags:Promote your first admin user
Register an account through the panel, then promote it to You can pass an explicit role as a second argument if needed:
rootAdmin from the backend directory:Start both services
Backend — run directly with Bun (recommended):The backend starts on the port defined by The frontend listens on port
PORT in .env (default 4000).Frontend — build and start in production mode:3000 by default and proxies /api/* requests to the backend and /wings/* to the Wings node via the rewrites defined in next.config.mjs.