Introduction
⚠️ Note: This tutorial only installs the web interface of Pelican Panel. To provision and manage actual game servers, you must also install Wings on your target machines.
Pelican Panel is a modern, open-source game server management panel designed for containerized environments. Built with Laravel and Docker, it provides a powerful web interface for deploying and managing game servers.
This guide explains how to install and configure Pelican Panel on a server running Ubuntu 24.04.
Prerequisites
- A server with Ubuntu 24.04
- Root or sudo privileges
- A registered domain name pointing to the server’s IP address
- Basic familiarity with Linux command-line operations
Example terminology
- Username:
holu
- Domain:
example.com
Step 1 - Update the System
Start by updating your package index and upgrading any existing packages:
sudo apt update && sudo apt upgrade -y
This ensures compatibility and applies security patches.
Step 2 - Install Required Software
-
Add the PHP Repository
Add the
ondrej/php
PPA to access PHP 8.2 and related extensions:sudo add-apt-repository ppa:ondrej/php -y sudo apt update
-
Install Required Packages
Install NGINX, MySQL, PHP 8.2, and supporting modules required by Laravel:
sudo apt install -y \ nginx mysql-server sqlite3 \ php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-sqlite3 php8.2-fpm \ php8.2-mbstring php8.2-xml php8.2-bcmath php8.2-curl php8.2-zip php8.2-gd php8.2-intl \ curl git unzip software-properties-common
Step 3 - Configure MySQL
Secure the database server:
sudo mysql_secure_installation
Then create a database and user for Pelican:
sudo mysql -u root -p
Inside the MySQL shell:
Replace
YourSecurePassword
with a strong, unique password. You can generate one usingopenssl rand -base64 20
.
CREATE DATABASE pelican;
CREATE USER 'pelicanuser'@'localhost' IDENTIFIED BY 'YourSecurePassword';
GRANT ALL PRIVILEGES ON pelican.* TO 'pelicanuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 4 - Install Docker
Pelican uses Docker to isolate game environments. Install Docker Engine and its dependencies as explained in the official Docker documentation:
Enable and start the Docker service:
sudo systemctl enable docker
sudo systemctl start docker
Optionally, add your user to the Docker group:
Replace
holu
with your actual username.
sudo usermod -aG docker holu
You may need to log out and back in for changes to take effect.
Step 5 - Install Composer
Composer is used to manage PHP dependencies. Install it globally:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Step 6 - Download and Install Pelican Panel
Create a directory and extract the panel files:
sudo mkdir -p /var/www/pelican
cd /var/www/pelican
curl -L https://github.com/pelican-dev/panel/releases/latest/download/panel.tar.gz | sudo tar -xzv
Install PHP dependencies:
sudo chown -R $USER:www-data /var/www/pelican
sudo chmod -R 775 /var/www/pelican
composer install --no-dev --optimize-autoloader
Step 7 - Configure the Application
Pelican provides an setup command:
php artisan p:environment:setup
Step 8 - Set Permissions
Ensure proper ownership and access permissions for Laravel to function correctly:
sudo chown -R www-data:www-data /var/www/pelican
sudo chmod -R 755 /var/www/pelican/storage /var/www/pelican/bootstrap/cache
Secure the environment file:
sudo chmod 640 /var/www/pelican/.env
Step 9 - Configure SSL with Certbot
Install Certbot via Snap to enable HTTPS:
sudo apt install snapd -y
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Obtain an SSL certificate for your domain:
sudo certbot --nginx -d example.com
Enable automatic certificate renewal:
sudo systemctl enable snap.certbot.renew.timer
sudo certbot renew --dry-run
Step 10 - Configure NGINX
Remove the default configuration:
sudo rm /etc/nginx/sites-enabled/default
Create a new configuration file:
sudo nano /etc/nginx/sites-available/pelican.conf
Paste the following, replacing example.com
accordingly:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
root /var/www/pelican/public;
index index.php;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Enable the site and restart NGINX:
sudo ln -s /etc/nginx/sites-available/pelican.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Step 11 - Complete the Web Installer
Navigate to your domain in a browser:
https://example.com/installer
Follow the on-screen prompts to create an administrator account and complete the setup.
When it asks about the database information, use the information from step 3. In this example, we used:
- Database Driver: MySQL
- Database Name: pelican
- Database Username: pelicanuser
- Database Password: YourSecurePassword'
Conclusion
-
Ensure the following services are active and enabled:
sudo systemctl status nginx sudo systemctl status php8.2-fpm sudo systemctl status docker
-
Consider securing your server with UFW:
sudo apt install ufw sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
-
Keep your system and Pelican Panel updated to receive security patches and new features.