zelie

module
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2026 License: AGPL-3.0

README

Zelie Panel

Zelie is a server panel for your own machine. It runs websites and APIs from GitHub or a container image, databases, and game servers such as Minecraft and Rust, and puts them online with HTTPS. You skip the setup: no reverse proxy to configure, no certificates to renew, no Dockerfile unless you want one.

It is meant to replace older panels such as Pterodactyl, Pelican and cPanel with something lighter and safer. Zelie is a single binary with no web server, PHP or database server of its own to look after. Every app, database and game server runs in its own locked-down container, and one command installs the whole thing.

[!WARNING] Alpha. Zelie runs real sites and game servers, but it changes quickly and has had not run on many servers yet. Keep your own backups, and wait before you move anything important onto it.

What it does

Apps. Deploy a GitHub repository, public or private, and every push to its branch goes live. Zelie builds it with your Dockerfile, or works out the build itself with Railpack. A new version starts next to the old one and only takes over once it answers; if the build, the tests or the start fail, the old version keeps serving. Any container image works too, and so does a folder of your own files run with Node.js, Python, Bun, Deno or Java.

Databases. PostgreSQL, MariaDB and Redis, with no port open to the internet. Link one to an app and the app gets DATABASE_URL. Browse tables and keys in the panel, read-only, and update to a new version with a backup taken first.

Game servers. Minecraft, Rust, Valheim, Palworld and a dozen more from the list, or any Pterodactyl or Pelican egg by its link. A live console, a file manager, SFTP, startup settings, schedules and backups. Zelie opens the game's ports while the server exists, and for Steam games tells you when an update is out.

A Minecraft server's live console in Zelie

Backups. Databases, app files and game worlds on a schedule, encrypted on the server, with copies in any S3-compatible storage. A restore first backs up what is there.

Metrics. Requests, server errors, memory, CPU and traffic for every app, a reading a minute, kept for a day.

Logins. Every administrator needs a passkey or an authenticator app. Secrets are sealed as they are saved, so the web interface cannot read them back, and SFTP never accepts an account's password.

An app's metrics in Zelie

docs/features.md goes through every feature, and docs/architecture.md explains how Zelie is built and why.

Install

On a Debian or Ubuntu server with systemd, amd64 or arm64, as root:

curl -fsSL https://github.com/Caria-Core/zelie/releases/latest/download/install.sh | sh

The script checks the release's signature before it installs anything. Then it asks one question, how people will reach the panel:

  1. A domain that points to the server. Zelie gets certificates from Let's Encrypt. Choose this when nothing else serves websites on the server.
  2. A Cloudflare Tunnel. No port opens to the internet. Choose this when your domain is on Cloudflare, when another web server already has ports 80 and 443, or when the server is behind NAT.
  3. The server's IP address, with a self-signed certificate. Only for trying Zelie out.

It ends with a link to create the administrator. After that, updates are one click on the panel's Server page. docs/install.md walks through every step and what the install changes on the server.

To build Zelie yourself, see CONTRIBUTING.md.

License

The core is free software under the GNU AGPL v3. Everything on a single server is free, with no limit on apps, databases or game servers. Running across several servers will be part of a paid edition.

Security issues: SECURITY.md. Made by Cariacore.

Directories

Path Synopsis
cmd
zelie command
Command zelie is the Zelie server panel.
Command zelie is the Zelie server panel.
hack
upgrade command
Command upgrade checks that updating Zelie keeps what a server already holds.
Command upgrade checks that updating Zelie keeps what a server already holds.
internal
auth
Package auth holds the pieces of logging in that do not depend on the web: password hashing, one-time codes and recovery codes.
Package auth holds the pieces of logging in that do not depend on the web: password hashing, one-time codes and recovery codes.
backup
Package backup keeps backups as files on this server.
Package backup keeps backups as files on this server.
build
Package build turns an app's source code into an image.
Package build turns an app's source code into an image.
core
Package core is the privileged half of Zelie.
Package core is the privileged half of Zelie.
cron
Package cron parses and evaluates five-field cron expressions: minute, hour, day of month, month and day of week.
Package cron parses and evaluates five-field cron expressions: minute, hour, day of month, month and day of week.
dataview
Package dataview reads what a database holds, for the panel's data viewer.
Package dataview reads what a database holds, for the panel's data viewer.
egg
Package egg reads Pterodactyl and Pelican egg files, the game server definitions that most existing panels share, into one internal format.
Package egg reads Pterodactyl and Pelican egg files, the game server definitions that most existing panels share, into one internal format.
engine
Package engine installs and talks to Zelie's own containerd.
Package engine installs and talks to Zelie's own containerd.
github
Package github talks to GitHub as the panel's own GitHub App.
Package github talks to GitHub as the panel's own GitHub App.
hostkey
Package hostkey keeps the SSH host key of the SFTP server.
Package hostkey keeps the SSH host key of the SFTP server.
install
Package install sets Zelie up on a fresh server: its users, its services and how the panel is reached.
Package install sets Zelie up on a fresh server: its users, its services and how the panel is reached.
memtrim
Package memtrim gives memory back to the operating system while a Zelie process sits idle, so a panel that is only looked at now and then stays small.
Package memtrim gives memory back to the operating system while a Zelie process sits idle, so a panel that is only looked at now and then stays small.
msg
Package msg holds the text Zelie shows people, in a form the web interface can translate.
Package msg holds the text Zelie shows people, in a form the web interface can translate.
panel
Package panel is the unprivileged half of Zelie: the web interface, its API and user accounts.
Package panel is the unprivileged half of Zelie: the web interface, its API and user accounts.
peer
Package peer checks who is on the other end of a local Unix socket.
Package peer checks who is on the other end of a local Unix socket.
proxy
Package proxy is Zelie's web front door.
Package proxy is Zelie's web front door.
query
Package query asks running game servers who is on them, the way their own server lists do.
Package query asks running game servers who is on them, the way their own server lists do.
registry
Package registry asks image registries what a tag points at, without downloading the image.
Package registry asks image registries what a tag points at, without downloading the image.
s3
Package s3 is a small client for S3 and the services that speak its protocol, such as Cloudflare R2, Backblaze B2, Wasabi and MinIO.
Package s3 is a small client for S3 and the services that speak its protocol, such as Cloudflare R2, Backblaze B2, Wasabi and MinIO.
s3/s3test
Package s3test has a fake S3 bucket for tests.
Package s3test has a fake S3 bucket for tests.
secret
Package secret seals the values of secret environment variables.
Package secret seals the values of secret environment variables.
sftpd
Package sftpd serves SFTP for game servers.
Package sftpd serves SFTP for game servers.
steam
Package steam reads what Valve's tools print: the text format its SteamCMD and game clients call KeyValues, or VDF, and the build numbers inside it.
Package steam reads what Valve's tools print: the text format its SteamCMD and game clients call KeyValues, or VDF, and the build numbers inside it.
store
Package store keeps the panel's state in a single SQLite file.
Package store keeps the panel's state in a single SQLite file.
update
Package update replaces the running Zelie with a signed release.
Package update replaces the running Zelie with a signed release.
version
Package version reports which build of Zelie is running.
Package version reports which build of Zelie is running.
webui
Package webui serves the panel's web interface, which is built from web/ and embedded into the binary.
Package webui serves the panel's web interface, which is built from web/ and embedded into the binary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL