A self-hosted game & app server control panel for Debian/Ubuntu โ think AMP + Pterodactyl, but radically easier to install, update and maintain. And not just for games: run databases and homelab apps from the same one-click Runes.
curl -fsSL https://raw.githubusercontent.com/kristianwind/yggdrasil/main/install.sh | sudo bash
A single static Go binary with the web UI embedded โ no separate database, no Redis, no required reverse proxy. The installer handles Docker and everything else.
One static binary + embedded PWA + SQLite. Install with a single command; updating is just swap & restart.
A game or app = one declarative YAML โRuneโ. Minecraft, Rust, DayZ built in; a library of community runes (databases + homelab apps) one click away.
Live WebSocket console with command input, log streaming, per-server CPU/RAM limits and monitoring, and a clear installing โ running โ stopped lifecycle.
Automatic port-forwarding (UPnP / UniFi), per-server subdomains via Nginx Proxy Manager or Cloudflare Tunnel, an โonline from outsideโ check, and connect addresses per server.
Backups to local / SFTP / SMB with retention & restore. Cron schedules for restarts, updates, backups, console commands and in-game warnings โ with a run log.
Safe restarts with in-game countdowns, an auto-restart toggle, a watchdog that auto-heals a hung server, world wipes, and a live Players tab with kick / broadcast / lock โ plus an activity feed of joins, deaths and kills. All rune-declared.
Bring your own LLM (OpenAI, Anthropic, DeepSeek, Ollama, โฆ). Get a plain-language โwhat happened while I was awayโ digest of the activity log with anomaly flags. Opt-in, advisory, and it never touches a server by itself.
Multiple admins with scoped permissions, optional 2FA, API tokens, a full audit log. Secrets encrypted at rest (AES-256-GCM); argon2id passwords.
Installable PWA, dark mode, mobile-friendly โ works as an app on iOS/Android.







Written from the code, not from memory. Start with the install path; the reference material lives on GitHub next to the source it describes.
Bare Debian box to a running game server in about fifteen minutes.
Targets, restore, verification, retention, and cron-driven actions.
Ports, reachability, UniFi, Nginx Proxy Manager, Cloudflare Tunnel.
Realms, permission bits, delegates, 2FA, passkeys and API tokens.
Every route the panel serves, with its authentication and permission gate.
The YAML format for teaching Yggdrasil a game or app it doesn't know yet.
On a fresh Debian/Ubuntu box, run one command. The installer detects your distro, installs Docker if missing, creates a service user, and prints your login URL + admin password.
curl -fsSL https://raw.githubusercontent.com/kristianwind/yggdrasil/main/install.sh | sudo bash
Questions, help getting a rune working, and news about releases.
Bugs belong in GitHub issues rather than chat โ they don't scroll away, and they can carry the logs and version a fix needs. Discord is the right place to ask whether something is a bug.