KPanel: a Go-based Linux server panel that shares state with kejilion.sh
与 kejilion.sh 双向互通的现代 Linux 服务器管理面板
At a glance
- What is it?
- KPanel is an AGPL-3.0 Go panel for single-admin Linux hosts, installed through kejilion.sh, that manages the host's real Nginx, Docker and file state instead of a private database. Its value is the shared-state model; its cost is that it wants rootful Docker, systemd or OpenRC, and a trusted server.
- Who is it for?
- Adopt KPanel if you run one or a few Linux servers as a single administrator, you already use kejilion.sh or plain SSH and Compose, and you accept that the panel holds host-level power. Skip it if you need a multi-tenant hosting panel with per-customer isolation, a Windows or non-systemd host, or a GUI editor for arbitrary Compose and daemon.json files, which the README lists as still planned.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What KPanel actually solves for a single-admin Linux host
The target user is one administrator running one Linux server, or a small number of them, who currently works through SSH, kejilion.sh and Docker Compose. That workflow has a known friction: a shell script changes something, a Compose file changes something else, and no interface knows the full picture. KPanel's answer is to refuse to create a second source of truth. The README states that system, Nginx, Docker and files themselves are the sources of truth, and that existing resources can be managed without importing them. Resources created by the script, by KPanel, by Compose or by hand are all managed by their actual state.
That is a real design commitment, not a slogan. Most panels own their configuration database and treat the host as something they provision. KPanel inverts this. The practical consequence is that you can install it on a server that already has sites and containers and keep working, rather than migrating into a panel-shaped world. The README explicitly says the installer does not modify kejilion.sh, /home/web, Nginx, the firewall or existing sites.
The scope is broad: host and historical monitoring, Nginx and website management, Docker and an application market aligned with app.kejilion.sh, files, a controlled terminal, cluster observation and an AI workspace. For a single administrator that breadth is the point. For a hosting provider it is the wrong shape entirely, because there is no tenant model described.
Two interfaces over one host state, and the agent behind them
KPanel ships two working modes that share the same account, the same Agent and the same host state. Desktop mode keeps dragging, minimizing, maximizing, a taskbar and multiple windows, aimed at troubleshooting and cross-module work. Classic mode is a sidebar with structured forms and dense information, aimed at quick inspection. Switching changes the interface, not the system, and the README says no resources need migrating between them.
The security architecture is the more interesting part. The web and API layers run as a non-privileged identity. Host operations are executed by a structured Agent over a Unix socket, and a root PTY uses separate authorization with a bounded lifetime. That layering matters because a panel that can write Nginx configuration and manage containers is effectively a root interface; putting the web tier behind a socket boundary limits what a web-layer compromise reaches directly.
The AI workspace is deliberately not a second control plane. According to the README it understands host and container state the panel already holds, and acts through fixed, structured KPanel tools. It does not offer an arbitrary host shell or general network tools. Providers include OpenAI-compatible, Anthropic and Gemini, with multiple models and sessions. Sessions default to manual approval, with an optional safe auto-approval mode, and high-risk actions always require confirmation. AI data is stored separately and does not become a second source of truth for Docker, Nginx, system or file configuration. If you wanted a chat window that can run anything on the box, this is explicitly not that.
Installing KPanel through kejilion.sh and opening the panel
The README gives one install path: a Linux server, root user, and the kejilion.sh entry point with the app kpanel argument. The script checks the environment, prepares components and deploys KPanel. Run it as root:
bash <(curl -sL kejilion.sh) app kpanelWhen it finishes, the terminal prints instructions for opening the panel and initializing the administrator account. The README does not document a rollback command for this installer, so back up existing configuration before running it.
The stated runtime base is systemd or OpenRC, rootful Docker Engine and Docker Compose v2. Debian 13 on AMD64 is the configuration the README calls verified on real hardware; release artifacts are published for AMD64 and ARM64. Other distributions have implemented paths but are described as still being admitted to real-hardware testing in stages, and the README points to docs/platform-support.md for the accurate status rather than claiming blanket support.
For a build from source, the repository Makefile exposes a build target that produces binaries under dist, including ./cmd/paneld:
make buildThe Makefile also defines test-go, test-web and test-deploy targets, and a verify-change script for repository verification. Those are developer workflows; the README's own deployment guidance for pinned image digests and build-artifact review lives in docs/deployment.md.
Where KPanel is the wrong tool
The README is unusually direct about unfinished ground. A general Compose and daemon.json editor, a non-interactive system reinstall adapter, and DNS and mirror-switching adapters for some distributions are listed as still planned. If your workflow depends on editing arbitrary Compose files or daemon.json through a web form, KPanel does not do it yet, and the README says any future implementation still has to pass authentication, structured input, path constraints, concurrency control, auditing and failure recovery.
Platform admission is the second limit. The README states that Debian 13 AMD64 is the verified configuration, that Debian 12, Ubuntu 22.04 and 24.04, the Rocky, AlmaLinux, CentOS Stream, RHEL, Oracle Linux and Fedora family, Arch and Manjaro, and openSUSE and SLES paths are implemented but still working through the support matrix, and that Alpine Linux 3.24 sys mode has passed automated contract tests but not clean VPS or VM PID 1 admission. Installing on a distribution outside the admitted set means running code paths the project has not certified on real hardware.
The third limit is architectural. KPanel is built for a single administrator, and the README describes pairing KPanel nodes for centralized observation plus a Docker-free lightweight node that reports read-only over outbound HTTPS for non-panel hosts. That is monitoring, not delegated administration. There is no described tenant isolation, per-customer quota or billing layer. A shared hosting operator looking for a customer-facing panel is looking at the wrong project. The README's own warning is also worth repeating: KPanel has host management capability, so it belongs on a trusted server with HTTPS and access control on the management entry point.
How KPanel differs from a container-first panel
The natural comparison is a container-first panel such as a Docker web UI that treats containers as the primary object and the host as an afterthought. The difference in approach is concrete. A container-first panel reads the Docker socket and renders containers, images, networks, volumes and logs; the host filesystem, Nginx configuration and system settings are outside its model or handled by separate tools.
KPanel treats the host as the unit. The README's capability table puts host and historical monitoring first, covering CPU, memory, disk, load, network, connections and container history, plus hostname, SSH, DNS, timezone, Swap, software sources, kernel presets, system updates and cleanup. Website and Nginx management discovers existing sites, certificates and real Nginx configuration, and manages static sites, PHP sites, reverse proxies, load balancing, domain redirects and the LDNMP environment. Docker management sits inside that host model rather than above it.
If your server exists to run containers and nothing else, a container-focused UI is a smaller tool for the job. If your server runs Nginx, PHP, system services and containers together, and you want one control plane that admits all of them are real, KPanel's model is the differentiator. The cost is scope: a host-level panel has host-level reach, and the README's security model document is the place to judge whether the Unix socket boundary and structured Agent are enough for your threat model.
Maintenance, licensing and the cost of staying current
The repository is not archived and the last push was on 2026-09-17, the same day as the v1.19.0 release, with release candidates v1.19.0-rc.4 and v1.19.0-rc.5 published earlier that day. That is a fast release cadence, and the README separates stable and preview channels in docs/release-channels.md, which is the mechanism for opting out of release-candidate churn. The Makefile includes security-audit, dependency-policy-check, dependency-report and governance-check targets, so dependency freshness and vulnerability scanning are part of the repository's own tooling rather than an afterthought.
Upgrade cost is not spelled out in the README. What is documented is that critical operations keep audit records, configuration writes are validated before they are applied, and failures roll back and report unfinished cleanup items. Whether a panel upgrade preserves your existing sites and containers is not stated, so that is something to verify on a staging host before upgrading in place.
The licence is AGPL-3.0-only, with the SPDX identifier given as AGPL-3.0-only in the README and LICENSE. The README states that offering a modified KPanel as a service over a network requires providing the corresponding source to those users. If you plan to host KPanel for others, that obligation shapes the product you can build. The bundled kejilion.sh and other third-party components keep their original licences, listed in THIRD_PARTY_NOTICES.md, and the KPanel name and logo have separate usage boundaries in TRADEMARKS.md. This is a description of the licence text, not legal advice; read LICENSE and THIRD_PARTY_NOTICES.md yourself.
Editorial conclusion
Adopt KPanel if you run one or a few Linux servers as a single administrator, you already use kejilion.sh or plain SSH and Compose, and you accept that the panel holds host-level power. Skip it if you need a multi-tenant hosting panel with per-customer isolation, a Windows or non-systemd host, or a GUI editor for arbitrary Compose and daemon.json files, which the README lists as still planned. Before installing, read docs/platform-support.md and confirm your distribution is actually admitted, check that the host runs rootful Docker Engine with Compose v2, and take a backup of existing Nginx and firewall configuration because the installer is documented not to modify them but the panel can.
Frequently asked questions
What is KPanel?
KPanel is an open source Linux server management panel written in Go and licensed AGPL-3.0-only. Its README describes it as bidirectionally interoperable with kejilion.sh, with desktop and classic modes sharing the same host state rather than a private resource database.
Is KPanel legitimate?
The repository is public, not archived, and its last push was on 2026-09-17 alongside the v1.19.0 release. The README points to a product site at kpanel.kejilion.sh and states that the source is licensed AGPL-3.0-only, so you can read the code and the licence before installing. Whether that is enough trust for a host-level panel on your server is your call.
How do I install KPanel?
The README gives one path: on a Linux server as root, run bash <(curl -sL kejilion.sh) app kpanel. The script checks the environment, prepares components and deploys KPanel, then prints instructions for opening the panel and initializing the administrator account.
What are KPanel's system requirements?
The README states the runtime base is systemd or OpenRC, rootful Docker Engine and Docker Compose v2. Debian 13 on AMD64 is the configuration it calls verified on real hardware, and release artifacts are published for AMD64 and ARM64. Other distributions have implemented paths but are still being admitted to real-hardware testing, so check docs/platform-support.md.
Does KPanel take over my existing Nginx sites and containers?
The README states that the installer does not modify kejilion.sh, /home/web, Nginx, the firewall or existing sites, and that resources created by scripts, KPanel, Compose or by hand can be managed by their actual state without importing them. Back up existing configuration before installing anyway, since the README does not document a rollback path for the installer.
Does KPanel's AI assistant give the model a shell on my server?
No. The README states the assistant works through fixed, structured KPanel tools and does not provide an arbitrary host shell or general network tools. Sessions default to manual approval, high-risk actions always require confirmation, and AI data is stored separately from Docker, Nginx, system and file configuration.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kejilion-kpanel)