panel.tar.gz to /var/www/pelican, run composer install and php artisan p:environment:setup, then finish in the web installer at https://panel.example.com/installer. Add the cron job and pelican-queue worker it shows, then install Docker and Wings, which runs the game servers.
FREAKHOSTING also offers managed game servers on its Game Panel if you’d rather not run a panel yourself: see how to log in to the Game Panel.
What is Pelican Panel?
Pelican is a free, open-source game server control panel. Its documentation says it started as a fork of Pterodactyl and adds plugins, admin roles, passkeys and a web installer. It has two parts: the Panel, the PHP website you log in to, and Wings, the daemon that runs each game server in its own Docker container. This guide puts both on one server. At the time of writing, the latest Panel release on GitHub isv1.0.0-rc.2, a release candidate, and Wings is v1.0.0-rc.1. Pelican supports only the latest release, so keep both updated. Already running Pterodactyl? Use Pelican’s migration guide instead of a fresh install.
Before you start
- Use Ubuntu 24.04 on a fresh server. Nginx takes ports 80 and 443. Commands use
sudo; root users can leave it out. Prefer Pterodactyl? See install Pterodactyl Panel. - Point a domain such as
panel.example.comat the server with anArecord. See point a domain to your server. Pelican’s docs note that IP addresses can’t be used with SSL. - Check the virtualisation type. Run
systemd-detect-virt.kvmornone(bare metal) works. Pelican’s docs say OpenVZ and LXC usually can’t run Wings. - Take a snapshot or backup if the server already holds data. See schedule and restore backups.
Step 1: Install PHP, Nginx and Composer
Ubuntu 24.04 ships PHP 8.3, but Pelican needs PHP 8.5 (recommended) or 8.4. Pelican’s PHP guide uses theppa:ondrej/php repository:
Step 2: Download the panel
Don’t run
composer update, even if Composer says dependencies are outdated. Pelican’s docs warn against it.Step 3: Create the environment and set permissions
1
Create the .env file and app key
.env and generates APP_KEY if they don’t exist.2
Back up APP_KEY
3
Set permissions
Step 4: Set up Nginx with HTTPS
1
Get a certificate
2
Create the site
Remove the default site with
sudo rm /etc/nginx/sites-enabled/default. Copy the Nginx https configuration from Pelican’s webserver page into /etc/nginx/sites-available/pelican.conf and replace every <domain> with panel.example.com. It sets root /var/www/pelican/public, passes PHP to unix:/run/php/php8.5-fpm.sock and loads the certificate from /etc/letsencrypt/live/panel.example.com/.3
Fix the HTTP/2 line on Ubuntu 24.04
Ubuntu 24.04 ships Nginx 1.24, which doesn’t know the
http2 on; directive in Pelican’s file (added in Nginx 1.25.1). Delete the http2 on; line and change the listen line to:4
Enable it
Step 5: Run the web installer
Openhttps://panel.example.com/installer. The wizard checks requirements, then asks for:
- Environment: the panel name, the URL (
https://panel.example.com) and your admin user. - Database: SQLite is the installer’s recommendation. For MySQL or MariaDB, read Pelican’s MySQL guide first.
- Eggs: the game templates to install.
- Cache, Queue and Session drivers: the installer recommends Filesystem, Database and Filesystem or Database, none of which need Redis.
pelican-queue systemd service. Click Finish to log in.
Step 6: Install Docker and Wings
1
Install Docker
Follow install Docker. Wings needs Docker CE.
2
Download Wings
3
Create a node
In the admin area (
https://panel.example.com/admin), open Nodes and create a node. Use panel.example.com as the Domain Name, so Wings uses the same certificate. Keep SSL on (it’s required when the panel uses HTTPS), the port 8080 and the SFTP Port 2022.4
Add the configuration
Open the node’s Configuration File tab and paste its contents into
/etc/pelican/config.yml, or copy the Auto Deploy Command and run it.5
Test Wings
6
Run Wings as a service
Create
/etc/systemd/system/wings.service:7
Add allocations
Allocations are the IP and port pairs game servers use. On the node’s Allocations tab, click Create Allocation, pick your public IP (for example
203.0.113.10) and enter ports such as 25565-25570.Which ports to open
sudo crontab -e:
How to check it worked
active (running). When Wings is reachable, https://panel.example.com:8080 returns {"error" : "The required authorization heads were not present in the request."} in a browser. A test server created under Servers installs and starts.
Frequently asked questions
Why does my node show as unreachable?
The panel or your browser can’t reach Wings. Checksystemctl status wings, that port 8080 is open, and that the node domain has a valid certificate when the panel uses HTTPS.
Why are schedules stuck on Processing?
The queue worker or cron job isn’t running. Checksystemctl status pelican-queue and sudo crontab -l -u www-data. Recreate the service with sudo php /var/www/pelican/artisan p:environment:queue-service --overwrite.
Can Wings run on a different server from the panel?
Yes. Install only Docker and Wings on the second server, create a node for it with its own domain and certificate, and open ports 8080, 2022 and its allocations there.Related guides
VPS and dedicated server guides
Every guide in this section.
Install Pterodactyl Panel
The panel Pelican was forked from.
Install Docker
Wings needs Docker CE.
Get a free SSL certificate
Certbot and automatic renewal.
Set up a firewall with UFW
Open only the ports you use.
Host game servers with LinuxGSM
A lighter, command-line option.
Checked against the official Pelican documentation and the Pelican Panel and Wings source on 5 November 2026; Nginx configuration syntax-tested and Wings service file verified on Ubuntu 24.04 LTS. Commands can differ on other distributions or releases.
Need Extra Help?
If you encounter any issues, our support team is ready to assist:- Live Chat: Quick assistance via our website.
- Support Ticket: Open a Ticket
- Discord: Join our Community
- Email: support@freakhosting.com
Last Updated: November 2026