Pterodactyl is my favorite way to manage self-hosted game servers, and no other tool comes close

1 week ago 1

When it comes to game servers, self-hosting them is always the best option by far when it comes to performance and cost. Many server providers are expensive for what you get, and the model that many of these companies use means that your server is almost certainly running in a virtual environment, sharing resources with countless other users, too. This can mean sudden lag spikes or even crashes in extreme cases, and for as long as I can remember, I've been self-hosting my own game servers and even a TeamSpeak server for nearly a decade at this point to get around those exact issues.

In the ever-continuing drive to improve my tech stack and the tools I'm using, I came across Pterodactyl, a game-server management tool. It has a set of core supported games that you can use out of the box, like Minecraft, Counter-Strike, and Garry's Mod, though it has significantly more in the form of community "Eggs", too. Depending on the system you're trying to deploy it on, Pterodactyl can be a bit of an arduous process to set up, though I used the Proxmox helper scripts to set up a Pterodactyl panel LXC and the adjacent Pterodactyl "Wings" LXC that the servers are actually deployed in.

If you just want to host a Minecraft server with some friends, you're better off using a tool like Crafty Controller. If, though, you're the person in your friend group that's tasked with spinning up servers for a game night, or you just want to future-proof your setup to allow you to be that person in the future, I highly recommend setting up Pterodactyl. I'll explain what exactly it is, how I've used it, and what you can do with it.

Running ProxMenux inside Proxmox

Related

What is Pterodactyl?

Split into two components

Connected Wings in Pterodactyl

Pterodactyl comes in two components: one is the panel, which you'll log in to in order to manage your servers, and the other is what's known as "Wings." Wings is the part that actually runs the servers, and while it may seem odd to split the program into two, it's actually a genius solution. For someone who has multiple servers, you can install Wings on all of them, then register them with the primary panel individually. This means, when you want to spin up a new server, you can select what machine you'd like to deploy it on, how much RAM and storage you want to give it, and then still control it from one central location.

That's why, for someone who just wants to host a server or two, the added effort probably isn't worth it. If you want more control, though, or you find yourself being the designated server host in your friend group (which is me in my friend group), then it's worth it to have the ability to instantly choose a game and deploy it to the right device. Nothing stops you from setting up Pterodactyl Wings on the same machine as the client that's running the panel, either, and that's exactly what I did. My primary Proxmox host runs both the panel and a Wings instance in two separate LXCs. Connecting the Wings client to the panel is as simple as running a single command that the panel will give you.

Pterodactyl Auto Deploy

The officially supported games (referred to as "core supported games" in the documentation) are:

  • Minecraft, including Spigot, Sponge, Bungeecord, Waterfall, and more
  • Rust
  • Terraria
  • TeamSpeak
  • Mumble
  • Team Fortress 2
  • Counter-Strike 2
  • Garry's Mod
  • ARK: Survival Evolved
Importing the Risk of Rain 2 egg in Pterodactyl

Pterodactyl has another powerful trick up its sleeve, in the form of its community-made "Eggs". Eggs are essentially configuration files made by the community that can be downloaded and uploaded to the Pterodactyl panel, instantly giving it all of the details it needs to host a server in a specified game. For example, I tested it with Risk of Rain 2, and I instantly had the ability to deploy a server with everything needed to get my friends on and playing. The Egg provided everything I needed, and I didn't need to go messing about with SteamCMD or configuration files to deploy it.

In other words, while Pterodactyl has a rather long setup process, you'll likely save time in the long run in your server deployments. It took less than a minute for me to spin up a Risk of Rain 2 server, and a similar length of time to spin up a Minecraft server, too.

Deploying a server in Pterodactyl

Set and forget

Deploying a server in Pterodactyl requires you to allocate the ports on a node that you intend to use; so in my case, Risk of Rain 2 requires ports 27015, 27016, and 27017. The screenshot above does not show it allocated, though I later allocated it. All of the fields that you need are shown based on the Egg that's being used, with additional Egg-specific fields at the bottom. It's very simple and takes a lot of the pain out of manually deploying servers, especially in games where you may not be too familiar with how their servers work. For example, I'd consider myself proficient at configuring a Minecraft or Counter-Strike 2 server at this stage, but I'd definitely need to rely on a Pterodactyl Egg to deploy a Valheim server.

Once you've finished configuring your server, you'll need to give it a few minutes to download and install all of the necessary packages it needs to run. Pterodactyl will create a container on the machine running Wings that you've selected and run the game inside of it, and how long this takes will depend on the quality of your internet connection and the speed. Once finished, the server's control panel will print the address on the right that you can use to connect to the server, and it will also provide you with SFTP credentials that you can use to log in to the server and modify its files.

Pterodactyl running Minecraft

As you can see from the above screenshot of my deployed Minecraft server, it's a very simple view that gives you a lot of information immediately, which is exactly what you want from a game server management panel. Once deployed, I can connect to it from my PC, Steam Deck, or anything else running the Java edition of Minecraft, and with a port forward on my OPNsense router, I can expose it to friends and family who want to play, too. Port forwarding the panel has its benefits too, as you could give another trusted player access to it if you wanted. This means they can restart it in your absence or modify a configuration file.

All of this is why I love Pterodactyl. It's complex but not in a way that it doesn't need to be, and there's no shortage of options for those who just want to spin up a one-and-done kind of server. For something more advanced, Pterodactyl simplifies the process, and as someone who has run Counter-Strike 2 LANs in Ireland, it's likely something that I'll end up using for those events, too. If you run a lot of game servers, I highly recommend giving it a try.

Read Entire Article