Calagopus Panel is distributed as a Docker image and is designed to run with Docker Compose. This guide walks you through downloading the compose file, configuring required environment variables, starting the stack, and creating your first admin user.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/calagopus/panel/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure you have the following:- Docker 24+ with the Compose plugin (
docker composecommand, notdocker-compose) - A domain name pointed at your server
- A reverse proxy (nginx or Caddy) to terminate TLS — see Reverse proxy
Image variants
Calagopus publishes several image variants toghcr.io/calagopus/panel:
| Tag | Description |
|---|---|
latest | Stable release. Recommended for most deployments. |
nightly | Built from the latest commit. May be unstable. |
heavy | Includes build tooling for loading backend extensions at runtime. |
aio | All-in-one image that bundles Wings alongside the panel. |
nightly-heavy | Nightly build of the heavy variant. |
nightly-aio | Nightly build of the all-in-one variant. |
The
heavy variant requires additional volume mounts for binaries, translations, extensions, and extension migrations. See compose.heavy.yml for the full configuration.Setup
Download the compose file
Download the standard
compose.yml to a new directory. This directory will also hold your persistent data volumes.Set the encryption key
Open Then update
compose.yml and replace the APP_ENCRYPTION_KEY value with a strong random string. This key is used to encrypt sensitive data stored in the database.compose.yml:compose.yml
Start the stack
DATABASE_MIGRATE=true is set by default.Watch the logs
Monitor startup progress and confirm all services are healthy:Press
Ctrl+C to stop following logs. The panel is ready when you see the web service listening on port 8000.Services
The standardcompose.yml defines three services:
web — Panel application
The main Calagopus Panel process. It serves the web UI and API on port 8000 and handles background tasks when APP_PRIMARY=true.
compose.yml
db — PostgreSQL database
Calagopus uses PostgreSQL for all persistent data. The pgautoupgrade image handles major version upgrades automatically.
compose.yml
cache — Valkey cache
Valkey (a Redis-compatible cache) is used for short-lived values, session data, and the optional decryption cache. Persistence is enabled with a 60-second RDB snapshot.
compose.yml
Volume mounts
All data is stored in subdirectories relative to yourcompose.yml file:
| Host path | Container path | Purpose |
|---|---|---|
./data | /var/lib/calagopus | Panel application data |
./logs | /var/log/calagopus | Application log files |
./postgres | /data | PostgreSQL data directory |
./cache | /data | Valkey cache persistence |
Compose variants
Several alternative compose files are available for specific use cases:compose.minimal.yml
Panel and PostgreSQL only — no Valkey cache. Suitable for low-traffic or testing deployments.
compose.heavy.yml
Uses the
heavy image with extra volume mounts for runtime extension loading.compose.aio.yml
All-in-one image with Wings bundled. Also exposes port 2022 for SFTP.
compose.with-db-backups.yml
Adds automated daily PostgreSQL backups with configurable retention.
Next steps
Configuration
Review all available environment variables and tune the panel for your setup.
Reverse proxy
Put nginx or Caddy in front of port 8000 to terminate TLS and handle WebSockets.