Everything your server runs, in one panel.
Zelie is a self-hosted server panel. It runs apps from GitHub, Docker or your own files, their databases and your game servers. One command installs it, and the machine needs nothing else.
curl -fsSL https://github.com/Caria-Core/zelie/releases/latest/download/install.sh | sh Debian or Ubuntu · amd64 or arm64 · Free on a single server How the install works

Still early. 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.
01Everything
One panel for what used to take three. A website, the database behind it and the game your friends play no longer need separate panels, logins and backup scripts.
Apps GitHub, Docker or your own files
Game servers Pterodactyl and Pelican eggs
Databases PostgreSQL, MariaDB, Redis
- One login
- Domains and HTTPS
- Metrics
- Backups
- One-click updates
Apps. From GitHub, a Docker image or plain files.
- Push and it goes live, built from your Dockerfile or worked out for Node, Python, Go and more.
- Tests run first; a failed build keeps the old version serving.
- Or run your own files with Node.js, Python, Bun, Deno or Java, edited in the browser.
- A domain and HTTPS for each, and rollback to any of the last five versions.
Game servers. Minecraft, Rust, Palworld and any Pterodactyl or Pelican egg.
- A live console with colours and history, from any browser.
- Files in the browser, backups, and schedules for restarts and commands.
- Ports opened in the firewall for you, and the address players use shown.
- Steam games update themselves once nobody is playing, if you let them.
Databases. PostgreSQL, MariaDB and Redis.
- Linked to an app in a click; nothing else can reach them.
- Backed up on a schedule, encrypted, on the server and in S3.
- Major versions upgraded in place, with a backup first.
- Tables and keys browsable read-only, and desktop tools through an SSH tunnel.
02Apps and deploys
A push goes live only when it works. The new version starts next to the old one. It takes over after the build, the tests and a health check pass. If a step fails, the old version keeps serving.
A good push New version
- Build From your Dockerfile, or worked out for you
- Test Your test command
- Health The app answers on its health path
- Live Traffic moves over
A push with a failing test New version
- Build From your Dockerfile, or worked out for you
- Test Failed
- Health Not reached
- Live Not reached
-
From GitHub.
Push and it deploys. Built from your Dockerfile, or worked out for Node, Python, Go and more. -
From a Docker image.
Any image from a registry, with a domain and HTTPS of its own. -
From your own files.
Node.js, Python, Bun, Deno or Java. Edit in the browser or upload over SFTP.

-
Roll back in a click.
The last five versions of every app stay ready to run again. -
Crashes are handled.
A crashed app is started again. If it keeps failing, Zelie stops and tells you why. -
Live logs.
Build, deploy and app logs, as they happen. -
A domain for each.
HTTPS certificates from Let’s Encrypt, renewed for you.
03Game servers
Game servers, without the fuss. Start from a Pterodactyl or Pelican egg. Zelie takes care of the console, the files, the ports and the updates.
A live console.
Colours, command history, and it stays connected while Zelie updates itself.
Files you can star.
Browse, upload and keep favourites for the files you open often.
An editor that knows your files.
C#, JavaScript, TypeScript, C, C++, JSON, YAML, Lua and config files are coloured as you type.
Mistakes show before you save.
Broken JSON is marked in red, with the line and the reason above the file.
SFTP when you want it.
Log in with an SSH key, or with a password made for that server and shown once. Your account password never works over SFTP. The service starts only while someone connects.
Settings you can undo.
The startup command, the image and the egg’s variables. Every settings form gets a bar with Save, Reset and Undo as soon as something changes.
-
Schedules.
Cron times for commands, power actions and backups. -
Ports from your pool.
Pick which port each use gets: game, query, RCON, Rust+. Zelie opens them for you and shows the address players use. -
Steam updates.
Zelie tracks new builds and can update the game when nobody is playing. -
Passwords filled in.
Admin passwords such as RCON start out as long random values. -
Backups.
Of the whole server, on a schedule, encrypted.
The games in the list. These 21 are listed and checked automatically. Any other egg works too, by link.
Minecraft
- Vanilla
- Paper
- Purpur
- Fabric
- Forge
- NeoForge
- Velocity
- Bedrock
Other games
- Rust
- Palworld
- Valheim
- ARK: Survival Ascended
- 7 Days to Die
- Project Zomboid
- Enshrouded
- V Rising
- Sons of the Forest
- Counter-Strike 2
- Garry’s Mod
- Squad
- Satisfactory
04Databases
Databases beside your apps, closed to the world. Made in a click. They have no public port, so only the apps you link to them can reach them.
- PostgreSQL 18 · 17
- MariaDB 11.8 · 10.11
- Redis 8

-
Linked in a click.
An app gets the connection details as variables. Nothing else is opened. -
Look without risk.
Tables, rows and Redis keys in the browser, read-only. A stray click changes nothing. -
Upgrades with a backup first.
A major version is upgraded in place, after a backup is taken. -
Your desktop tools.
Reach a database from TablePlus or DBeaver through an SSH tunnel, with a user of its own.
05Metrics
See what everything is doing. A reading a minute, kept for a day, on your server and sent nowhere.
CPU, memory and network.
For every app and game server. Usage in the header is coloured, so a server running hot stands out from the list.
Requests and errors too.
Apps with a domain also show requests a minute, server errors and crashes over the last hour or day.
06Backups
Backups that come back. Databases, game servers and app files, on a schedule. They are encrypted on the server, with a copy in any S3-compatible storage.
When you restore
- 1 Back up what is there now
- 2 Put the chosen backup in
- 3 If that fails, put the old data back
Every backup in one list.
Nightly ones, manual ones and the ones taken before an upgrade, each marked when it has an off-site copy. Restore, download or delete from the row.
07Security
Secure by default. Not a checklist to work through after installing. This is how it comes.
- storefront
- survival
- main-db
The internet can reach the panel. It cannot reach the part that runs as root.
-
Two steps, always.
Every account needs a passkey or an authenticator app. After a few wrong tries, a login has to solve a small puzzle first. -
Split in three.
The web panel runs as an unprivileged user. The part that runs as root has no network port at all. -
Secrets stay sealed.
The panel stores your app secrets but cannot read them back. Only the part that starts your apps can. -
Every app on its own.
Its own container, network and user namespace. Root inside a container is nobody on the server. -
Signed releases.
An update is checked against Zelie’s signature before it runs. The source is open to read. -
No ports to open.
Behind a Cloudflare Tunnel nothing listens on the internet. Or use your own domain and Let’s Encrypt.
08Always on
Updates nobody notices. One click on the Server page, no commands, no SSH. Your apps, databases and game servers keep running while Zelie replaces itself.
Zelie
Apps · databases · game servers
If the new version does not come up, the old one is put back by itself.
-
It tells you.
Zelie checks for new releases and shows what changed. -
Nothing stops.
Containers live outside Zelie, so updating the panel does not touch them. Game consoles stay connected. -
It comes back if it must.
If the new version does not start healthy, the old one is put back by itself. -
Your apps too.
A new version of an app goes live only once it starts and its tests pass. Databases are backed up before an upgrade.
09Light
One file of about 50 MB. The panel, its proxy and its engine are a single binary. Nothing else to install or keep up to date.
What it does not need
- PHP
- Node.js
- Docker
- A database server
-
Its own state in one file.
Zelie keeps what it knows in SQLite, a single file next to it. -
No Docker.
It talks to containerd directly, so restarting the runtime does not stop your containers. -
amd64 and arm64.
Debian or Ubuntu, on a small VPS or a big machine.
10Free
Free on one server. Zelie is open source under the AGPL. A single server has no limits. Running several servers from one panel will be a paid edition.
Today
- Everything on this page, on one server
- No limit on apps, databases or game servers
- Source on GitHub, signed releases
Not yet
- Several servers from one panel
- Sub-users with their own permissions
11Install
One command, then a short wizard. Run it on the server. The wizard asks how you want to reach the panel, then makes your account.
curl -fsSL https://github.com/Caria-Core/zelie/releases/latest/download/install.sh | sh Debian or Ubuntu · amd64 or arm64 · Free on a single server How the install works
- 1
Run the command.
It downloads the signed release and starts Zelie. - 2
Choose how you reach it.
A domain, a Cloudflare Tunnel, or a plain IP address. - 3
Make your account.
With a passkey or an authenticator app.
-
A domain
Zelie gets a Let’s Encrypt certificate and keeps it renewed. -
Cloudflare Tunnel
No port is open on the server. The tunnel brings people in. -
An IP address
For when you have no domain yet.