๐ŸŒณ

Yggdrasil Panel

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
Open source ยท AGPL-3.0 amd64 & arm64 Updates itself No account, no cloud
Yggdrasil Panel dashboard

Everything in one binary

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 binary, one command

One static binary + embedded PWA + SQLite. Install with a single command; updating is just swap & restart. Runs on amd64 and arm64 โ€” including a Raspberry Pi 4/5.

แšฑ

Runes for everything

A game or app = one declarative YAML โ€œRuneโ€. Minecraft, Uptime Kuma and Vaultwarden are built in; 60+ community runes โ€” games, databases and homelab apps, Rust and DayZ among them โ€” are one click away, including app stacks that bring their own database and get wired up automatically (WordPress, Immich, Karakeep).

๐Ÿ–ฅ๏ธ

Real-time console & stats

Live WebSocket console with command input, log streaming, per-server CPU/RAM limits and monitoring, and a clear installing โ†’ running โ†’ stopped lifecycle.

๐Ÿ“ˆ

Where the disk actually went

A Statistics page for the whole machine: CPU, memory and disk over time, your servers ranked against each other on each โ€” and the disk split into server data versus Docker's own storage. On a panel that has been running a while those are wildly different numbers, and the reclaimable ones come with a button.

๐ŸŒ

Networking that just works

Automatic port-forwarding (UPnP / UniFi), public hostnames via Nginx Proxy Manager or Cloudflare Tunnel โ€” several per server if you want, each pointed at the port you choose, across as many domains as your account owns โ€” an โ€œonline from outsideโ€ check, and connect addresses per server.

๐Ÿ’พ

Backups & scheduler

Backups to local / SFTP / SMB with retention & restore โ€” or straight into a Proxmox Backup Server you already run, where each night only transfers the chunks that actually changed. Cron schedules for restarts, updates, backups, console commands and in-game warnings โ€” with a run log.

๐ŸŽฎ

Live admin & moderation

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.

๐Ÿง 

Kvasir โ€” built-in AI optional

Bring your own LLM (OpenAI, Anthropic, DeepSeek, or a local Ollama/vLLM). Chat with a helper that knows your panel โ€” โ€œwere there players overnight?โ€, โ€œis any site being attacked?โ€ โ€” answered from the panelโ€™s own data. Proactive monitoring explains crashes and can apply safe fixes. You choose how much it may read; a local model keeps everything on your box.

๐Ÿ”

Access & security

Scoped multi-admin permissions, optional 2FA and passkeys, self-service password reset by email, API tokens, a full audit log. Log-pattern watchers flag brute-force and attack bursts and keep a security-event history. Secrets encrypted at rest (AES-256-GCM); argon2id passwords. The panel measures nothing about you โ€” and if you want to measure your own install, there is a field for your own analytics tag, with the security policy widened by exactly the origins it needs.

๐Ÿ“ฅ

Migrate & import

Bring what you already run. Import a WordPress site (All-in-One .wpress, or files + a database dump), a Pterodactyl egg, or a Docker Compose file turned into a rune. And move a whole panel to a new host with one command โ€” servers, settings and secrets travel together.

Minecraft Java & Bedrock Rust DayZ + Workshop mods WordPress Karakeep Vaultwarden Gitea Uptime Kuma Grafana Nextcloud PostgreSQL / MariaDB / MongoDB โ€ฆand a growing catalog

See it in action

Installable PWA, light and dark themes, mobile-friendly โ€” works as an app on iOS/Android.

Servers
Servers โ€” grid/table, reachability badges
Statistics
Statistics โ€” where the machine's CPU, memory and disk actually go
A server's page
A server โ€” safe restart, watchdog, wipe, and every rune setting as a form
Runes
Runes โ€” one-click games & apps
Browse runes on GitHub
Browse GitHub โ€” install community runes in one click
Console
Real-time console & logs
Schedules
Schedules โ€” cron automation with run log
Settings
Settings โ€” network, backups, integrations

Documentation

Written from the code, not from memory. Start with the install path; the reference material lives on GitHub next to the source it describes.

Browse all documentation โ†’

Get started

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
Read the getting-started guide โ†’ All documentation
A hobby project, maintained by one person and built with Claude Code. The latest release is the supported one โ€” fixes ship forward, and the panel can update itself. Provided as-is, with no warranty and no liability whatsoever; you run it at your own risk. Security policy โ†—
๐Ÿ’ฌ

Community

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.