zelie

module
v0.7.11 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2026 License: AGPL-3.0

README

Zelie

Zelie

A server panel for your own machine: game servers, apps and databases, in one binary.
Website · Features · Install · Compare

Zelie runs Minecraft, Rust and other game servers from the same eggs Pterodactyl and Pelican use. Next to them it deploys websites, APIs and Discord bots from GitHub, a container image or plain files, runs PostgreSQL, MariaDB and Redis, and puts it all online with HTTPS.

It is one file. There is no PHP, no web server, no queue worker, no database server and no Docker to install and keep up to date. One command sets it up, and the panel updates itself.

[!NOTE] Early development. Zelie has only been tried on a small number of servers so far, and it still changes quickly. For now, run it on a spare server rather than one that hosts something important.

Why Zelie

Light. Zelie's own processes use under 90 MB of memory when idle. That is checked on every change: the test run fails if it grows past the limit. On a live server we measured Pelican's panel, queue worker and Wings at about 230 MB, before its database and Docker. Coolify asks for at least 2 GB of RAM. The rest of your machine goes to your players and your apps.

Simple to install. One command, a few minutes, one question about how the panel is reached. No guide with a dozen steps.

Updates itself. A new release is one click on the Server page. Games, apps and databases keep running while Zelie updates, and if the new version does not come up, the old one is put back.

Secure by design. The part of Zelie that runs as root has no network port. The web panel runs as its own user, so a bug in it is not a bug with root rights. Every account needs a passkey or an authenticator app. Secrets are sealed as they are saved, so the panel cannot read them back.

One panel for everything. Your game server, its website and its database sit under one login, with metrics and backups for each.

Compared with other panels

Zelie Pterodactyl Pelican Coolify
Install One command Manual guide Manual guide One command
Runs on One Go binary PHP, Laravel, MySQL, Redis PHP, Laravel PHP, Laravel, PostgreSQL, Redis
Needs Docker No, its own containerd Yes, for Wings Yes, for Wings Yes
Idle memory Under 90 MB PHP panel, queue worker and Wings About 230 MB, before the database At least 2 GB of RAM asked for
Updates from the panel ✅ With automatic rollback ❌ ❌ ✅
Pterodactyl and Pelican eggs ✅ ✅ ✅ ❌
Console, files, SFTP, schedules ✅ ✅ ✅ ❌
Players and RCON tools Rust and Minecraft Not built in Not built in ❌
Deploys from GitHub ✅ ❌ ❌ ✅
Rollback in a click ✅ ❌ ❌ ✅
Databases PostgreSQL, MariaDB, Redis MySQL for game servers MySQL for game servers Many
Automatic HTTPS for apps ✅ ❌ ❌ ✅
Two-step login Required for everyone Optional Optional Optional
Root part reachable from the network No Wings, on a public port Wings, on a public port SSH as root
Encrypted backups to S3 ✅ Not encrypted Not encrypted Databases only
Several machines from one panel Planned ✅ ✅ ✅
Sub-users Planned ✅ ✅ Teams

The other panels are described as they install by default. The comparison page has the details, and a note on each measurement.

Game servers

  • 21 games ready to pick, from Pelican's egg repositories: Minecraft (Vanilla, Paper, Purpur, Fabric, Forge, NeoForge, Velocity, Bedrock), Rust, Valheim, Palworld, ARK: Survival Ascended, 7 Days to Die, Counter-Strike 2, Enshrouded, Garry's Mod, Project Zomboid, Satisfactory, Sons of the Forest, Squad and V Rising. Each is downloaded and checked on every release. Any other Pterodactyl or Pelican egg can be imported by its link.
  • A live console with colours and history, start, stop, restart and kill. When a server crashes, Zelie reads its last lines and says why: out of memory, the wrong Java, a port in use, the EULA. Where it can, it offers the fix.
  • Files and SFTP. A file manager with a code editor, upload by dragging, archives, and SFTP that reaches one server's files and nothing else.
  • Ports you choose. A pool of ports on one IP or several; you pick which port the game, query, RCON or Rust+ gets.
  • Schedules and backups. Console commands, restarts and backups at cron times. For Minecraft, the world is saved before a backup.
  • Steam updates. Zelie checks each hour whether a Steam game is behind, and can update it when nobody is playing.
A Minecraft server's live console in Zelie

Players

For Rust and Minecraft servers, the Players tab is an RCON-style admin panel that is part of Zelie, with nothing to install. It shows who is online with ping, time online and address, and keeps everyone seen in the last 30 days. Accounts seen on the same address are listed together, which helps when a banned player comes back with a new one.

Chat is kept for 7 days, global and team apart, and can be searched. You can kick and ban with a reason and an optional end, which Zelie lifts by itself while the server runs. Minecraft servers also get op and the whitelist. Notes on players and a log of what admins did are kept too. With a free Steam Web API key, players show their VAC and game bans and the age of their account.

Rust is asked over its WebRCON with the server's own password, only while the tab is open. Minecraft is asked through its console. Some other Steam games get a list of who is online.

Apps and databases

  • From GitHub, public or private. Every push builds, runs your tests and passes a health check before traffic moves over. If any step fails, the old version keeps serving. The last five versions stay ready to roll back.
  • From a container image, or from a folder of your own files run with Node.js, Python, Bun, Deno or Java: a Discord bot or a site that used to live on a game panel.
  • Builds with your Dockerfile, or Railpack works out the build.
  • Databases. PostgreSQL, MariaDB and Redis, with no port open to the internet. Link one to an app and it gets DATABASE_URL. Browse tables and keys in the panel, and move to a new major version with a backup taken first.
  • Metrics. Requests, errors, memory, CPU and traffic for every app, a reading a minute.
An app's requests, errors, memory and CPU in Zelie

Backups

Databases, app files and game worlds on a schedule, compressed and encrypted on the server, with copies in any S3-compatible storage. A restore first backs up what is there, and a new server can find its backups in S3 and bring them back.

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 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. 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.
players
Package players reads player activity out of a game server's console output, and asks running servers and Steam about who is on them.
Package players reads player activity out of a game server's console output, and asks running servers and Steam about who is on them.
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