Self-hosted game servers are perfect when you want a private gaming space with custom plugins and mods for local (or even remote) co-op with your friends. While you can set up individual servers for a couple of your favorite games, you might need to run through hoops of different software and apps to manage all the servers.

That’s where Pterodactyl shines with its robust game server management tools. The only caveat with the app is that installing is a job and a half, and it’s easy to get overwhelmed with setting up Pterodactyl if you don’t have a lot of experience with self-hosting servers. So, we’ve created a detailed step-by-step guide to help you convert any PC into a Pterodactyl-powered all-in-one game server management hub.

What you’ll need

Unlike modern 3D games that require cutting-edge processors and powerful GPUs, Pterodactyl game servers can work on most systems, including old PCs. Just make sure your PC has enough RAM if you’re planning to run multiple servers for each game simultaneously. Likewise, a solid network card and Internet connection are a must when connecting several clients to your self-hosted game servers.

On the software side, you’ll need to have an operating system pre-installed, and there are a couple of caveats to consider here. Windows 11 doesn’t support the latest version of Pterodactyl’s Wings utility. Although it's supposed to work on Ubuntu, version 24.04 completely breaks the app in half, and I spent an entire day fruitlessly trying all possible ways to get the Pterodactyl to work on my Ubuntu machine. Yes, including Ubuntu server and older versions of the OS. Thankfully, Debian 12 works perfectly with the tool, meaning you’ll have to install it on your PC before proceeding onward. The overall procedure to set up Debian is that same as that for Ubuntu, except, you'll need to use the ISO file for Debian instead.

Installing Pterodactyl using the official scripts

There are quite a few ways you can set up Pterodactyl on your PC. However, the official method is so long and complicated that this article would never end if I were to explain the entire process. That’s where the unofficial script-based installation procedure comes in real handy.

  1. Launch the terminal and run the following command to grant admin access to your current user:
    su root
    The command to grant admin access to current user in Debian
  2. With the help of the apt package manager, install the curl package:
    sudo apt install curl -y
    The command to install curl in Debian
  3. Execute this script to initiate the Pterodactyl setup process:
    bash 
    The command to install Pterodactyl in Debian
  4. Tap 2 when the installer prompts you to pick the version of Pterodactyl you wish to set up.
    The command to pick the Pterodactyl version in Debian
  5. Type the Database Name, Username, and Password.
    The procedure to enter the database details for Pterodactyl in Debian
    Alternatively, you can leave them blank if you don't mind going with the default options. Either way, be sure to hit Enter after each step.
  6. Open this link to check your timezone before entering it in the Continent/City format.
    The procedure to pick the timezone in the Pterodactyl installer in Debian
  7. Enter the Email Address for the admin account as well as for the Let’s Encrypt and Pterodactyl setup.
    The procedure to enter the email address in the Pterodactyl installer in Debian
    You can use the same email ID for all three.
  8. Type the First Name, Last Name, Username, and Password for the admin account.
    The procedure to enter the admin account details in the Pterodactyl installer in Debian
  9. Enter the FQDN for the server. I’ve used the IP address of my PC since I’ll be hosting all servers locally.
    The procedure to enter the FQDN in the Pterodactyl installer in Debian
    But for those who want players from other networks to connect to the server, you’ll need to set up a Domain Name for Pterodactyl and enter it here. Alternatively, if you don't know your PC's IP address, you can use a network scanner like Fing to find it out.
  10. Tap y to have the installer automatically calibrate the UFW firewall settings.
    The procedure to automatically configure the UFW firewall settings in the Pterodactyl installer in Debian
  11. Double-check all the settings and press y to install Pterodactyl.
    Tapping y to finish setting up Pterodactyl on Debian
  12. Enter no when the installer prompts you to enable telemetry.
    The procedure to disable telemetry in the Pterodactyl installer in Debian

Setting up Wings

Wings is an add-on for Pterodactyl that lets you connect to game server instances mid-operation and perform even more calibrations to enhance your experience.

  1. Once the Pterodactyl script finishes installing the tool, press y to initiate the Wings setup procedure.
    The procedure to initiate the Wings installation in Debian
  2. Tap y thrice if you want the installer to automatically configure UFW, a user for database hosts, and enable external access to MySQL.
    The procedure to automatically enable some settings in the Wings installer in Debian
  3. Leave the Panel address section as is.
  4. Since we’re using the local IP address, tap n to stop the script from auto-configuring HTTPS using Let’s Encrypt.
  5. (Optional) After Wings has finished installing, run the following command to automatically start Wings when the PC boots up:
    systemctl start wings
    The command to automatically start Wings in Debian

Configuring the Pterodactyl web UI

Adding nodes to Pterodactyl

With that, you’ve finished installing Pterodactyl and Wings. But that’s only half the work done because now you’ll have to create nodes and servers using the web UI.

  1. Launch your favorite web browser and use the FQDN to access the Pterodactyl web UI.
  2. Enter the Username and Password you set earlier and tap Login.
    Entering the Username and Password in the Pterodactyl web UI
  3. Head to the Locations tab and hit the Create New button.
    Opening the Locations tab in the Pterodactyl web UI
  4. Give a Short code to the Location and press Confirm.
    Adding a new Location in the Pterodactyl web UI
  5. Navigate to the Nodes section and click on Create New.
    Opening the Nodes tab in the Pterodactyl web UI
  6. Enter the Name, select the Location, and type the IP address/Domain Name under the FDQN option.
    Adding the node details in the Pterodactyl web UI
    Be sure to toggle the Use HTTP Connection option if you’re using an IP address.
  7. Enter the Total Memory and Total Disk Space before typing the Memory and Disk Over-Allocation values and pressing Create Node.
    Assigning memory and storage to a node in the Pterodactyl web UI
  8. Click on the Allocation sub-menu, enter the IP address and Ports, and tap the Submit button.
    Assigning IP address and ports to a node in the Pterodactyl web UI
  9. Next, switch to the Configuration tab and hit the Generate Token button under Auto-Deploy.
    Copying the auto-deploy token of a node in the Pterodactyl web UI
  10. Switch to the PC running the Pterodactyl server and enter this token into the terminal.
    Entering the auto-deploy token for a node in the terminal in Debian

Creating a server in the Pterodactyl web UI

Once you’ve created and deployed a node, it’s time to initialize a server for your favorite game. We’ll go with everybody’s favorite game, Minecraft, but the overall procedure is the same for the other titles.

  1. Head to the Servers tab, and just like the Location and Node, select the Create New button.
    Opening the Servers tab in the Pterodactyl web UI
  2. Give a Name to the server and set the admin account you created during Pterodactyl’s installation as the Server Owner.
    Assigning a name and owner to a server in the Pterodactyl web UI
  3. Pick the Node you set up earlier and choose your preferred IP address and Port combination under the Default Allocation option.
    Assigning a node to a server in the Pterodactyl web UI
  4. Set the CPU Limit, Memory, and Disk Space you wish to allocate to the server under the Resource Management section.
    Assigning system resources to a server in the Pterodactyl web UI
  5. Choose the Nest (collection of presets for games) and pick the Egg (the game version) before deciding on the Docker Image.
    Choosing the Nest, Egg, and Docker image for a server in the Pterodactyl web UI
  6. Select Create Server once you’re calibrating all the settings.
  7. Launch the server by pressing Start once it has finished installing.
    Starting a server in the Pterodactyl web UI

Hosting your own game servers on Pterodactyl

Playing Minecraft on a self-hosted Pterodactyl server

If all goes well, the server should appear with a UUID and an Active status. After that, you’ll have to connect to the server from the in-game settings. I tested Pterodactyl with the latest version Minecraft: Java Edition, and I had no trouble adding another player to the server.

On its own, Pterodactyl supports a few other titles, including Team Fortress 2 and Counter-Strike: Global Offensive. If you wish to try hosting servers for other titles, you can try importing their nests, eggs, and Docker images from trusted sources.