Pelican Panel
Pelican is a modern, open-source game server management panel and the spiritual successor to Pterodactyl. It provides a fast web interface for deploying and managing game servers, with per-server isolation handled by the Wings daemon. Pelican uses PHP and Laravel and ships a guided web installer.
Software included
Section titled “Software included”| Component | Version |
|---|---|
| Pelican Panel | 1.0.0_beta35 |
| Pelican Wings | 1.0.0_beta26 |
| PHP | 8.5 |
| Ubuntu | 24.04 LTS |
Wings and Docker are installed, but Wings does not start until you create a node in the Panel and save its generated configuration on the VM.
Getting started
Section titled “Getting started”1. Connect to your VM
Section titled “1. Connect to your VM”ssh ubuntu@<your-vm-ip>2. Wait for first-boot configuration
Section titled “2. Wait for first-boot configuration”Pelican configures MariaDB, writes its environment file, generates the Laravel application key, starts Nginx and PHP-FPM, and prepares Wings. Track progress with:
sudo journalctl -u pelican-first-boot.service -fThen verify the Panel services:
systemctl status nginx php8.5-fpm mariadb3. Access the installer
Section titled “3. Access the installer”The installer is available through an SSH tunnel because HTTP is not open publicly by default. From your local machine, run:
ssh -L 8080:127.0.0.1:80 ubuntu@<your-vm-ip>Then open:
http://127.0.0.1:8080/installerComplete the installer and create your first administrator account. The image does not create shared default login credentials.
4. Enable scheduled tasks and the queue worker
Section titled “4. Enable scheduled tasks and the queue worker”After the installer completes, enable Pelican’s scheduler and queue worker:
CRON="* * * * * php /var/www/pelican/artisan schedule:run >> /dev/null 2>&1"sudo crontab -u www-data -l 2>/dev/null | grep -qF "$CRON" \ || ( sudo crontab -u www-data -l 2>/dev/null; echo "$CRON" ) | sudo crontab -u www-data -sudo systemctl enable --now pelican-queue5. Configure Wings
Section titled “5. Configure Wings”Create a node in the Pelican admin UI and save its generated Wings configuration as:
/etc/pelican/config.ymlThen start Wings:
sudo systemctl start wingssystemctl status wingsManaging Pelican Panel
Section titled “Managing Pelican Panel”# Check Panel services and the queue workersystemctl status nginx php8.5-fpm mariadb pelican-queue
# Restart the web servicessudo systemctl restart nginx php8.5-fpm
# View first-boot logssudo journalctl -u pelican-first-boot.service -f
# View Wings logs after configuring a nodesudo journalctl -u wings.service -f| Path | Purpose |
|---|---|
/var/www/pelican/ | Pelican application |
/var/www/pelican/.env | Panel environment configuration |
/etc/pelican-panel/credentials.txt | Generated MariaDB details and Wings notes |
/etc/pelican/config.yml | Wings node configuration |
Security
Section titled “Security”Pelican listens behind Nginx on port 80, but UFW allows SSH (port 22) only by default. Ports 80, 443, 2022, and 8080 remain closed until you decide how to expose the Panel, Wings, and game-server allocations.
Use the SSH tunnel from the getting-started steps to complete the installer. To allow Panel access from a trusted IP after setup:
sudo ufw allow from <trusted-ip> to any port 80For production use, point DNS at the VM, put the Panel behind a reverse proxy with a trusted TLS
certificate, and update the application URL in /var/www/pelican/.env to the public HTTPS URL. Open
Wings and game allocation ports only after you configure the node.