Install PufferPanel on Ubuntu 20.04

Updated on December 23, 2020
Install PufferPanel on Ubuntu 20.04 header image

Introduction

PufferPanel 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.

Prerequisites

Install PufferPanel

  1. SSH to the server instance as root.

  2. Add the installation source to your system.

     # curl -s https://packagecloud.io/install/repositories/pufferpanel/pufferpanel/script.deb.sh | sudo bash
  3. Install the PufferPanel package.

     # apt-get install pufferpanel
  4. Enable the PufferPanel service.

     # systemctl enable pufferpanel
  5. Start PufferPanel.

     # systemctl start pufferpanel
  6. Allow ports 8080 and 5657 through both the OS firewall and the Vultr firewall.

  7. Create your administrator account. Answer Y when PufferPanel asks if this account is an administrator.

     # pufferpanel user add
  8. 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

Configure PufferPanel

  1. Log in to the PufferPanel WebUI using your administrator credentials.
  2. Navigate to Templates in the left side menu.
  3. Click Import Templates to open the pop-up.
  4. Select a game server template you want to import from the drop-down options.
  5. Click Import Templates. Wait for the template to download.

Create a Server

  1. Click Servers in the left side menu.
  2. Click the plus button in the bottom-right of your screen.
  3. Enter the requested information.
  4. Deploy the gaming server you created.

Custom Domain with SSL (Optional)

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.

  1. Install Nginx

     # apt-get install -y nginx
  2. 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
  3. Create an Nginx configuration file for PufferPanel.

     # nano /etc/nginx/sites-enabled/pufferpanel.conf
  4. 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;
         }
     }
  5. Save and exit the file.

  6. Restart Nginx.

     # systemctl restart nginx
  7. Install Let's Encrypt.

     # apt-get install -y certbot python3-certbot-nginx
  8. Request an SSL certificate with Certbot. Replace panel.example.com with your server's name.

     # certbot --nginx -d panel.example.com
  9. Answer the question posed by Certbot.

  10. Navigate to PufferPanel in your web browser using the server name.

For panel customization, please visit PufferPanel Themes.