Author: Waren Gonzaga
Last Updated: Wed, Dec 23, 2020PufferPanel is a free, open-source web-based game server management system that allows you to create multiple game servers. PufferPanel is mobile-ready, allowing you access to your game server from a smartphone.
Deploy a new Vultr Ubuntu 20.04 (x64) cloud server.
Update the server according to the Ubuntu best practices guide.
SSH to the server instance as root.
Add the installation source to your system.
# curl -s https://packagecloud.io/install/repositories/pufferpanel/pufferpanel/script.deb.sh | sudo bash
Install the PufferPanel package.
# apt-get install pufferpanel
Enable the PufferPanel service.
# systemctl enable pufferpanel
Start PufferPanel.
# systemctl start pufferpanel
Allow ports 8080 and 5657 through both the OS firewall and the Vultr firewall.
Create your administrator account. Answer Y when PufferPanel asks if this account is an administrator.
# pufferpanel user add
Access the PufferPanel WebUI at port 8080 in your web browser. Replace the example IP address with your server's address.
# https://192.0.2.123:8080
Log in to the PufferPanel WebUI using your administrator credentials.
Navigate to Templates in the left side menu.
Click Import Templates to open the pop-up.
Select a game server template you want to import from the drop-down options.
Click Import Templates. Wait for the template to download.
Click Servers in the left side menu.
Click the plus button in the bottom-right of your screen.
Enter the requested information.
Deploy the gaming server you created.
This optional step allows you to securely access the WebUI panel over HTTPS using Nginx as a reverse proxy and a free Let's Encrypt certificate SSL certificate.
Install Nginx
# apt-get install -y nginx
Create a DNS "A" record for your server. This guide uses the example values:
DNS Name: panel.example.com
IP Address 192.0.2.123
Create an Nginx configuration file for PufferPanel.
# nano /etc/nginx/sites-enabled/pufferpanel.conf
Paste the following code into the file. Replace server_name with your server's name.
server {
listen 80;
root /var/www/pufferpanel;
server_name panel.example.com;
location ~ ^/\.well-known {
root /var/www/html;
allow all;
}
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
client_max_body_size 100M;
}
}
Save and exit the file.
Restart Nginx.
# systemctl restart nginx
Install Let's Encrypt.
# apt-get install -y certbot python3-certbot-nginx
Request an SSL certificate with Certbot. Replace panel.example.com with your server's name.
# certbot --nginx -d panel.example.com
Answer the question posed by Certbot.
Navigate to PufferPanel in your web browser using the server name.
For panel customization, please visit PufferPanel Themes.