10 min read

Pterodactyl Game Panel: Manage All Your Servers, Remotely

Run Minecraft, Valheim, and Rust servers from one Pterodactyl panel, then expose it and every game port safely with Localtonet tunnels

Pterodactyl ยท PufferPanel ยท Game Server Panel ยท Multi-Server

A Minecraft server for one friend group, a Valheim world for another, and a Rust server you spin up on weekends, each one usually means a separate config file, a separate set of ports, and a separate way to log in and restart it. Pterodactyl replaces all of that with one web panel: create, start, stop, and manage every server from a single login, each isolated in its own Docker container. This guide covers installing Pterodactyl, when to reach for the lighter PufferPanel instead, and exposing both the panel and every game server correctly with Localtonet.

One panel, unlimited isolated game servers Free and open source Public game ports without manual port forwarding

Why One Panel Beats Juggling Servers Manually

Running a single game server by hand is manageable. Running three or four, each with its own start command, its own port, its own restart schedule, and its own file access method, turns into its own small chore every time someone wants to add a plugin or restart after a crash.

A panel turns every one of those into a button click, and gives each server its own resource limits so a memory leak in one does not take down the others.

The difference is not features, it is how much of your evening a routine restart takes up.

What Is Pterodactyl?

Pterodactyl is an open-source game server management panel built from two parts: the Panel, a Laravel and React web application you log into, and Wings, a Go-based daemon that actually starts, stops, and isolates each game server in its own Docker container. On a single machine you run both together, on a larger setup Wings can run on separate nodes while one Panel manages all of them.

๐Ÿณ Docker isolation per server Every game server runs in its own container with its own resource limits. A crash or a compromised plugin in one server does not touch the others.
๐Ÿ‘ฅ Multi-user with real permissions Give a friend console access to just their server without handing them the keys to the whole machine.
๐Ÿ“ Built-in file manager and SFTP Edit configs, upload plugins, and manage worlds from the browser or any SFTP client, no shell access required.
๐ŸŽฎ Supports far more than Minecraft Egg-based server definitions cover Valheim, Rust, Terraria, ARK, and dozens of other games out of the box.
Check your resources before you start

The Panel by itself is light, around 1 to 2GB of RAM is enough. Running Panel, Wings, and a handful of game servers on the same all-in-one machine is heavier: 4 CPU cores and 8GB of RAM (6GB minimum) with 60GB of SSD storage is a reasonable starting point for testing or a small friend group, on top of whatever each individual game server needs.

Install Pterodactyl (Panel + Wings)

1

Install the Panel

The official installer script sets up Nginx, PHP, MariaDB, Redis, and Certbot for you.

Terminal
bash <(curl -s https://pterodactyl-installer.se)
2

Create your admin account

Terminal
cd /var/www/pterodactyl
php artisan p:user:make
3

Add a Location and a Node in the Panel

In the admin area, create a Location, then a Node inside it. The Node's Configuration tab generates the exact config.yml Wings needs.

4

Install Wings and paste the config

Terminal
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings \
  "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
chmod u+x /usr/local/bin/wings
# paste the generated config.yml into /etc/pterodactyl/config.yml
systemctl start wings
5

Create your first server

Back in the Panel, create a server on your new Node, pick an egg (Minecraft, Valheim, Rust, and dozens more are available by default), assign it a port, and start it.

Remote Access With Localtonet

Two different things need to reach the outside world here, and they need different treatment: the Panel, which is an admin login, and each game server's port, which is what players actually connect to.

๐Ÿ” Expose the Panel behind Basic Auth

1

Create an HTTP tunnel to the Panel

Point it at 127.0.0.1:443 (or 80 if you have not set up Certbot locally) and map a custom domain, such as panel.example.com.

2

Turn on Basic Auth for that tunnel

The Panel already has its own login, Basic Auth adds a second check in front of it, so a leaked Panel URL alone is not enough to reach the login screen.

๐ŸŽฎ Expose each game server's port

Every game server gets its own port when you create it in the Panel. Tunnel each one individually with the matching protocol, TCP or UDP depending on the game, and reserve the port so it stays the same every time players connect.

Example: Minecraft server
Tunnel type: TCP
Local IP: 127.0.0.1
Local port: 25565
Reserved external port: 25565
โš ๏ธ Most tutorials skip this step: Wings' own ports do not need to be public on an all-in-one setup

Wings talks to the Panel over port 8080 (or 443 with SSL) and handles SFTP over port 2022. If Panel and Wings run on the same machine, that communication happens over localhost and never needs a public tunnel. Only expose Wings' API port if you are running Wings on a separate, remote node from your Panel.

Prefer Something Lighter? PufferPanel

Pterodactyl's two-part architecture is powerful, but it is more moving parts than a single-server hobbyist setup usually needs. PufferPanel, written in Go, is a single binary that runs the panel and manages servers with far less overhead, at the cost of the multi-node scalability Pterodactyl offers.

Terminal
docker volume create pufferpanel-config
docker volume create pufferpanel-servers
docker create --name pufferpanel \
  -p 8080:8080 -p 5657:5657 \
  -v pufferpanel-config:/etc/pufferpanel \
  -v pufferpanel-servers:/var/lib/pufferpanel:z \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --restart=on-failure \
  pufferpanel/pufferpanel:latest
docker start pufferpanel

The web UI lands on port 8080 by default, tunnel it the same way as the Pterodactyl Panel: HTTP tunnel, custom domain, Basic Auth in front.

Pterodactyl vs. PufferPanel vs. Running Servers Manually

FeatureManual (no panel)PufferPanelPterodactyl
Resource usageLowest, nothing extra runningLow, single Go binaryHigher, PHP, MariaDB, Redis, and Wings
Docker isolation per serverOnly if you set it up yourselfOptional, recommendedBuilt in by default
Multi-node supportโœ˜โœ˜โœ”
Setup effortDifferent for every gameOne Docker commandPanel plus Wings on every node
Best forOne server, no plans to growA handful of servers for friendsSeveral servers, multiple users, or room to scale

The honest trade-off: PufferPanel is genuinely the better fit if you are running two or three servers for close friends and do not want PHP, MariaDB, and Redis running just to manage them. Pterodactyl's advantage shows up the moment you want per-user permissions, multiple nodes, or enough servers that a lighter panel starts feeling like it is missing features you actually need.

๐Ÿ›  Tips for Running a Multi-Server Panel

๐Ÿ”‘ Give friends server-scoped access, not admin Pterodactyl's subuser system lets someone manage their own server's console and files without touching yours.
๐Ÿ“‹ Name tunnels after the server, not the port "Valheim - Friends" is easier to find in the dashboard six months from now than "TCP 2456".
๐Ÿ’พ Back up the Panel's database separately from game worlds The Panel's database holds your server definitions and users. Game world saves live in each server's own volume. Back up both.
โš™๏ธ Set resource limits per server Cap RAM and CPU on each server when you create it, so one busy Minecraft world cannot starve the Valheim server next to it.

Troubleshooting Common Issues

SymptomLikely causeFix
Node shows offline in the PanelWings is not running, or its port is not reachableCheck systemctl status wings and confirm the config.yml token matches what the Panel generated
Players can't connect to a game server remotelyThe tunnel's reserved port does not match the port set in the PanelConfirm the Reserved Port on the tunnel is identical to the port assigned to that server
Panel login page loads but Basic Auth never promptsBasic Auth is not enabled on that specific tunnelOpen the tunnel's settings in the Localtonet dashboard and confirm Basic Auth is turned on
Server won't start, stuck installingInsufficient disk space or RAM for that eggCheck Wings' logs at /var/log/pterodactyl/wings.log for the specific error

Frequently Asked Questions

Do I need multiple machines to use Pterodactyl?

No. An all-in-one setup with Panel and Wings on the same machine is the most common configuration for hobbyist use. Multiple nodes only matter once you need to spread servers across more than one machine.

Which games does Pterodactyl support?

Any game with an available egg definition, which covers Minecraft (including modded and Bedrock), Valheim, Rust, Terraria, ARK, and dozens of others maintained by the community.

Should I choose Pterodactyl or PufferPanel?

PufferPanel if you are running a couple of servers for friends and want the lightest possible setup. Pterodactyl if you want per-user permissions, plan to run several servers, or want room to add more nodes later.

Do I need to tunnel Wings' API port?

Only if Wings runs on a different machine from the Panel. On a single all-in-one machine, that communication stays on localhost and never needs to be public.

Can I let a friend manage just their own server?

Yes. Pterodactyl's subuser permissions can be scoped to a single server, console access, file access, or both, without giving that person access to your Panel's admin settings or other servers.

Is Pterodactyl free?

Yes, both Pterodactyl and PufferPanel are free and open source. Your only cost is the hardware or VPS they run on.

What happens to my game servers if the panel goes down?

Running game servers keep running, Wings manages them directly through Docker independent of the Panel's web interface. You just lose the ability to start, stop, or manage them from the browser until the Panel is back.

Ready to Manage Every Server From One Panel?

Install Pterodactyl or PufferPanel, create your first server, then expose the panel and its ports safely with Localtonet. Free to start, no credit card required.

Get Started Free โ†’

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.

support