A Docker Compose setup for deploying Pelican Panel - a modern game server management panel. This repository provides two deployment configurations: with and without a reverse proxy.
- Complete Stack Deployment: Pelican Panel, Wings daemon, and MariaDB database
- Two Configuration Options:
- Direct deployment with built-in Caddy server
- Deployment behind an external reverse proxy
- Monitoring Ready: Includes Pelican exporter for metrics
- Easy Configuration: Simple environment variable setup
- Production Ready: Includes security headers and optimized settings
- Docker and Docker Compose installed
- A domain name (for production use)
- Basic understanding of Docker
This configuration includes a Caddyfile for direct HTTPS deployment.
- Navigate to the directory:
cd "Without-reverse-proxy"- Edit the
CaddyFileand replace<domain>with your actual domain name - Configure the environment variables in
docker-compose.yml:TZandAPP_TIMEZONE: Your timezoneAPP_URL: Your panel URLADMIN_EMAIL: Admin email addressMYSQL_PASSWORDandMYSQL_ROOT_PASSWORD: Database passwords
- Start the stack:
docker-compose up -dThis configuration is designed for use behind an external reverse proxy (like Nginx Proxy Manager, Traefik, etc.).
- Navigate to the directory:
cd "With reverse proxy"- Configure the same environment variables as mentioned above
- Configure your external reverse proxy to forward traffic to port 80 of the panel container
- Start the stack:
docker-compose up -d- Port: 80 (HTTP)
- Image:
ghcr.io/pelican-dev/panel:latest - Purpose: Main control panel interface
- Port: 2022 (SFTP)
- Image:
ghcr.io/pelican-dev/wings:latest - Purpose: Server daemon for managing game servers
- Image: MariaDB latest
- Database Name: panel
- User: pelican
- Port: 9531
- Purpose: Prometheus metrics exporter
The Caddyfile includes several security headers:
- Strict Transport Security (HSTS)
- Content Security Policy
- X-Frame-Options
- XSS Protection
Maximum upload size is set to 100MB for file uploads and PHP processing.
- Access your panel at your configured domain
- Complete the initial setup wizard
- Configure Wings through the admin panel
- Add your first node and allocations
Access Pelican metrics at http://your-server:9531/metrics for Prometheus integration.
- Change Default Passwords: Make sure to change the default MySQL passwords before deployment
- Domain Configuration: For the "Without reverse proxy" option, edit the CaddyFile with your actual domain
- Docker Socket: Wings requires access to the Docker socket to manage game servers
- Timezone: Update timezone settings to match your location
- Persistent Data: All important data is stored in Docker volumes and will persist across container restarts
This repository provides Docker Compose configurations for Pelican Panel deployment. There are two nearly identical configurations in separate directories - the main difference is that the "Without reverse proxy" version includes a Caddyfile for direct HTTPS deployment, while the "With reverse proxy" version is designed to work behind an external reverse proxy setup. Both configurations include the complete Pelican stack: Panel, Wings, MariaDB database, and Pelican exporter for monitoring.
Make sure to properly configure all environment variables marked with "Change this variable" comments before deploying to production.