calagopus-heavy-aio

calagopus-heavy-aio

apps.detail.types.app from Calagopus' Repository

apps.detail.sections.overview

Calagopus is a modern, open-source game server management panel built in Rust. Deploy, monitor, and manage Minecraft, Rust, and other game servers with industry-leading performance. This all-in-one template runs the panel alongside the Wings daemon. Requires separate PostgreSQL (e.g. postgres:18-alpine) and Valkey/Redis (e.g. valkey:latest) containers on the same Docker network.

Calagopus Logo

Calagopus Panel

Rust License GitHub issues GitHub stars Discord

A modern game server management panel, rebuilt from the ground up in Rust.

Calagopus is a ground-up reimplementation of Pterodactyl Panel in Rust. It keeps what made the original great - secure, container-based game server management - while aiming for better performance, a refreshed UI, more features, and a cleaner extension model on both the frontend and backend. If you already run Pterodactyl or Pelican, there is a supported migration path.

Calagopus dashboard

Features

  • Rust backend - a fast, efficient backend built on Tokio and Axum.
  • Modern frontend - React, Mantine, and Tailwind for a clean, responsive UI.
  • Extensible by design - first-class extension systems for backend and frontend, no hacky patches or overrides, real plugin APIs.
  • Egg compatible - reuses Pterodactyl-style eggs, including a Rust port of Laravel's validation rules.
  • Migration friendly - import your existing setup from Pterodactyl or Pelican.

Installation

Full instructions live in the documentation.

Roadmap

Tracked publicly here:

Project Structure

Repository layout
  • frontend/ - The frontend of the panel, built with React, Mantine, and Tailwind.
    • extensions/* - Frontend extensions, such as themes and plugins.
  • backend/ - The backend of the panel, built with Rust and Axum.
  • backend-extensions/* - Backend extensions, such as auth providers and database drivers.
  • database/ - Database migrations using Drizzle.
  • database-migrator/ - A tool to run database migrations, built with Rust and SQLx.
  • shared/ - Shared code between backend parts, mainly relevant for extensions.
  • wings-api/ - An auto-generated API client for the Wings API, built with Rust.
    • generator-src/ - The source for the API generator, written in TypeScript.
  • rule-validator/ - A semi-port of Laravel's validation rules in Rust for use with eggs.
  • schema-extension/
    • core/ - Core library for the schema extension system.
    • derive/ - A proc macro to derive schema extensions.

Contributing

Contributions are welcome. Open an issue to discuss larger changes first, and check the Discord if you want to chat through an idea before writing code.

Acknowledgments

Calagopus builds on the ideas and ecosystem of Pterodactyl and Pelican. Thanks to those projects and their communities.

License

See LICENSE.

Star History

Star History Chart

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.requirements


Before starting:
(1) Create a custom Docker network named "calagopus" in the Unraid Docker tab (Add Network).
(2) Start a PostgreSQL container (e.g. postgres:18-alpine) named "calagopus-db" on the "calagopus" network with POSTGRES_USER=panel, POSTGRES_PASSWORD=panel, POSTGRES_DB=panel, and a /data volume.
(3) Start a Valkey/Redis container (e.g. valkey:latest) named "calagopus-cache" on the "calagopus" network with a /data volume.
(4) Set APP_ENCRYPTION_KEY to a secure random string (openssl rand -hex 32).
(5) Create an empty Wings config file before the first start. Docker requires the host file to exist or it will create a directory instead: touch /mnt/user/appdata/calagopus/wings-config.yml (run this in the Unraid terminal). The container will populate it on first run.

apps.detail.sections.categories

apps.downloadStats.title

33,605
apps.downloadStats.metrics.totalDownloads

apps.detail.sections.related

apps.detail.sections.details

apps.detail.details.repository
ghcr.io/calagopus/panel:heavy-aio
apps.detail.details.registry
apps.detail.details.lastUpdated2026-07-23
apps.detail.details.firstSeen2026-06-19

apps.detail.sections.runtime

apps.detail.details.webui
http://[IP]:[PORT:8000]
apps.detail.details.network
calagopus
apps.detail.details.shell
bash
apps.detail.details.privileged
false

apps.detail.sections.configuration

WebUI PortPorttcp

HTTP port for the panel WebUI.

apps.detail.config.target
8000
apps.detail.config.default
8000
apps.detail.config.value
8000
SFTP PortPorttcp

SFTP port for the integrated Wings daemon.

apps.detail.config.target
2022
apps.detail.config.default
2022
apps.detail.config.value
2022
Panel DataPathrw

Persistent panel data directory.

apps.detail.config.target
/var/lib/calagopus
apps.detail.config.default
/mnt/user/appdata/calagopus/data
apps.detail.config.value
/mnt/user/appdata/calagopus/data
Panel LogsPathrw

Panel log directory.

apps.detail.config.target
/var/log/calagopus
apps.detail.config.default
/mnt/user/appdata/calagopus/logs
apps.detail.config.value
/mnt/user/appdata/calagopus/logs
BinariesPathrw

Custom binaries directory.

apps.detail.config.target
/app/binaries
apps.detail.config.default
/mnt/user/appdata/calagopus/build/binaries
apps.detail.config.value
/mnt/user/appdata/calagopus/build/binaries
TranslationsPathrw

Custom translations directory.

apps.detail.config.target
/app/translations
apps.detail.config.default
/mnt/user/appdata/calagopus/build/translations
apps.detail.config.value
/mnt/user/appdata/calagopus/build/translations
ExtensionsPathrw

Custom extensions directory.

apps.detail.config.target
/app/extensions
apps.detail.config.default
/mnt/user/appdata/calagopus/build/extensions
apps.detail.config.value
/mnt/user/appdata/calagopus/build/extensions
Extension MigrationsPathrw

Extension database migrations directory.

apps.detail.config.target
/app/repo/database/extension-migrations
apps.detail.config.default
/mnt/user/appdata/calagopus/build/extension-migrations
apps.detail.config.value
/mnt/user/appdata/calagopus/build/extension-migrations
Wings Config FilePathrw

Wings AIO configuration file. Must exist on the host before starting, see setup instructions above (step 5). Docker will create a directory here instead of a file if the path is missing.

apps.detail.config.target
/wings-config.yml
apps.detail.config.default
/mnt/user/appdata/calagopus/wings-config.yml
apps.detail.config.value
/mnt/user/appdata/calagopus/wings-config.yml
Docker SocketPathrw

Docker socket — required for Wings to manage game server containers.

apps.detail.config.target
/var/run/docker.sock
apps.detail.config.default
/var/run/docker.sock
apps.detail.config.value
/var/run/docker.sock
Docker ContainersPathrw

Docker containers directory — required for Wings.

apps.detail.config.target
/var/lib/docker/containers/
apps.detail.config.default
/var/lib/docker/containers/
apps.detail.config.value
/var/lib/docker/containers/
Calagopus Config DirPathro

Wings main configuration directory (config.yml lives here).

apps.detail.config.target
/etc/calagopus-wings/
apps.detail.config.default
/etc/calagopus-wings/
apps.detail.config.value
/etc/calagopus-wings/
Calagopus Data DirPathrw

Wings data directory (server volumes, backups, archives).

apps.detail.config.target
/var/lib/calagopus-wings/
apps.detail.config.default
/var/lib/calagopus-wings/
apps.detail.config.value
/var/lib/calagopus-wings/
Calagopus Log DirPathrw

Wings log directory.

apps.detail.config.target
/var/log/calagopus-wings/
apps.detail.config.default
/var/log/calagopus-wings/
apps.detail.config.value
/var/log/calagopus-wings/
Calagopus Tmp DirPathrw

Wings temporary directory.

apps.detail.config.target
/tmp/calagopus-wings/
apps.detail.config.default
/tmp/calagopus-wings/
apps.detail.config.value
/tmp/calagopus-wings/
Encryption KeyVariable

Required. A long, random secret key used to encrypt sensitive data. Generate one with: openssl rand -hex 32

apps.detail.config.target
APP_ENCRYPTION_KEY
apps.detail.config.value
CHANGEME
Database URLVariable

PostgreSQL connection URL. Change the hostname to match your PostgreSQL container name.

apps.detail.config.target
DATABASE_URL
apps.detail.config.default
postgresql://panel:panel@calagopus-db/panel
apps.detail.config.value
postgresql://panel:panel@calagopus-db/panel
Redis URLVariable

Redis/Valkey connection URL. Change the hostname to match your Valkey/Redis container name.

apps.detail.config.target
REDIS_URL
apps.detail.config.default
redis://calagopus-cache
apps.detail.config.value
redis://calagopus-cache
TimezoneVariable

Container timezone.

apps.detail.config.target
TZ
apps.detail.config.default
UTC
apps.detail.config.value
UTC
Run Database MigrationsVariable

Automatically run database migrations on startup.

apps.detail.config.target
DATABASE_MIGRATE
apps.detail.config.default
true
apps.detail.config.value
true
PortVariable

Internal HTTP port the panel listens on.

apps.detail.config.target
PORT
apps.detail.config.default
8000
apps.detail.config.value
8000
Enable Wings ProxyVariable

Enable the Wings proxy.

apps.detail.config.target
APP_ENABLE_WINGS_PROXY
apps.detail.config.default
true
apps.detail.config.value
true
Use Decryption CacheVariable

Use the decryption cache.

apps.detail.config.target
APP_USE_DECRYPTION_CACHE
apps.detail.config.default
true
apps.detail.config.value
true
Use Internal CacheVariable

Use the internal cache.

apps.detail.config.target
APP_USE_INTERNAL_CACHE
apps.detail.config.default
true
apps.detail.config.value
true
PrimaryVariable

Mark this instance as primary.

apps.detail.config.target
APP_PRIMARY
apps.detail.config.default
true
apps.detail.config.value
true
Log DirectoryVariable

Panel log directory inside the container.

apps.detail.config.target
APP_LOG_DIRECTORY
apps.detail.config.default
/var/log/calagopus
apps.detail.config.value
/var/log/calagopus
AIO Base Wings ConfigurationVariable

Path to the base Wings configuration file inside the container.

apps.detail.config.target
AIO_BASE_WINGS_CONFIGURATION
apps.detail.config.default
/wings-config.yml
apps.detail.config.value
/wings-config.yml