All Guides

Set Up Pterodactyl Panel on a VPS (e.g. Hetzner, Netcup): Guide 2026

Minecraft server panel like managed hosts - but on your own VPS. Docker + Pterodactyl setup step by step for Hetzner and Netcup.

Dirk Hesse
January 22, 2026
11 min read

Many game server hosts ship a web panel: you click "Start", pick a modpack, done. On your own VPS you set up such a panel yourself.

With Pterodactyl you get such a panel on your own Hetzner or Netcup VPS. Costs are for the server; current prices in the VPS comparison. This guide walks you through every step.

Who is this for? VPS beginners with some terminal courage. Linux knowledge helps but is not required.

No VPS yet? Our Minecraft server calculator helps you find one for your player count.


What is Pterodactyl?

Pterodactyl is a game server management panel, open source under the MIT license, with no license fee; costs are for the server (pterodactyl.io, as of Nov 8, 2026). It runs on Docker and gives you a web interface for Minecraft servers and other games. Day to day you need no SSH; for installation and updates you need root access via SSH (Pterodactyl docs, as of Nov 8, 2026).

What you get:

  • Web interface like managed hosts
  • Minecraft variants such as Paper, Forge or Fabric via eggs; import missing eggs from the egg library
  • File manager in the browser (no FTP needed)
  • Backups (local via Wings or S3-compatible)
  • Several servers on one VPS
  • User management (for friends or customers)

The Pterodactyl docs describe the backup options (Pterodactyl docs, as of Nov 8, 2026); the eggs are in the egg library (eggs.pterodactyl.io, as of Nov 8, 2026).


What you need

Before we start, check these requirements:

A VPS with enough RAM for your game servers

Pterodactyl names no minimum size (Pterodactyl docs, as of Nov 8, 2026). RAM is driven mainly by your game servers – plan headroom for system, panel and Wings. Guidance: Minecraft calculator.

Providers: Hetzner, Netcup; current plans and prices in the VPS comparison from 4 GB RAM.

Virtualization with Docker support

Wings needs virtualization that supports Docker; with KVM it works, under OpenVZ/LXC usually not (Pterodactyl docs, as of Nov 8, 2026). Check with systemd-detect-virt or in the plan description.

Domain or subdomain

For the panel you need an address like panel.yourdomain.com. At your DNS provider, create an A record for panel.yourdomain.com pointing to your VPS's IPv4.

Supported operating system

The Pterodactyl docs list Ubuntu 22.04/24.04 and Debian 11/12/13, among others (Pterodactyl docs, as of Nov 8, 2026). For this guide, Ubuntu 24.04 or Debian 12 work, for example.


Which VPS should you choose?

Plans and current prices are in the provider comparison Hetzner vs. Netcup and the VPS comparison from 4 GB RAM.


Step 1: Install the panel

Connect to your VPS via SSH and run these commands. We use the unofficial community script pterodactyl-installer, which is not affiliated with the Pterodactyl project (README, as of Nov 8, 2026).

Update the system

sudo apt update && sudo apt upgrade -y

Makes sure all packages are up to date.

Download and run the installer script

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

The script runs as root – read it first. The official way is the manual installation per the Pterodactyl docs (Pterodactyl docs, as of Nov 8, 2026).

Answer the installer's questions

The installer asks in this order (installer script v1.4.0, as of Nov 8, 2026):

QuestionAnswer
What to install?0 (panel); 2 installs panel and Wings on the same machine
Database namepanel (press Enter)
Database usernamepterodactyl
Database passwordEnter = random password, or your own secure password
TimezoneEurope/Berlin
EmailYour email
Admin emailYour email
Admin usernameadmin
First and last nameYour details
Admin passwordSecure password!
FQDNpanel.yourdomain.com
FirewallYes, if the installer should set it up
Let's EncryptYes, for HTTPS
TelemetryDefaults to "yes", change as you like

Wait for the installation

The installer sets up nginx, PHP 8.3, database and cron job, among others (installer README, as of Nov 8, 2026). This takes a few minutes. At the end you see: "Panel installation completed".

Important: Note down the admin password! You can only reset it later, not read it.


Step 2: Install Wings (node)

Wings is the "worker" that runs the actual game servers in Docker containers. On a single VPS, install Wings on the same server as the panel. For a public server at risk of DDoS, put panel and game server on separate IPs (see the DDoS guide).

Install Docker

curl -sSL https://get.docker.com/ | CHANNEL=stable bash

The Wings docs use this command (Pterodactyl docs, as of Nov 8, 2026). For production systems, Docker recommends installing from the apt repository (Docker docs, as of Nov 8, 2026).

Start Docker automatically

sudo systemctl enable --now docker

Download Wings

sudo mkdir -p /etc/pterodactyl
sudo curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings

Create the node in the panel

Open your panel (https://panel.yourdomain.com) and log in as admin:

  1. Go to Admin → Locations → Create New
  2. Name: "Home" or "Hetzner DE" (anything)
  3. Go to Admin → Nodes → Create New
  4. Name: "Node 1"
  5. FQDN: panel.yourdomain.com (or a separate subdomain)
  6. Memory: your RAM in MB (e.g. 3500 for a 4GB VPS, leave some headroom)
  7. Disk: your storage in MB
  8. Save

Configure Wings

In the panel: Nodes → Your node → Configuration tab. Copy the content and save it (or use the "Generate Token" button):

sudo nano /etc/pterodactyl/config.yml
# Paste the copied content, save with Ctrl+X, Y, Enter

If the panel uses SSL, Wings needs a certificate for its FQDN. Start Wings once in debug mode and stop it with Ctrl+C after a clean run (Pterodactyl docs, as of Nov 8, 2026):

sudo wings --debug

Set up Wings as a service

sudo nano /etc/systemd/system/wings.service

Insert the following content:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target

Start Wings

sudo systemctl enable --now wings

Check the status:

sudo systemctl status wings

The status should show "active (running)".


Step 3: Configure the firewall

For players to connect, the right ports must be open. Important: allow SSH first and only then enable the firewall, otherwise you lock yourself out.

sudo ufw allow OpenSSH    # SSH first
sudo ufw allow 80         # HTTP (for Let's Encrypt)
sudo ufw allow 443        # HTTPS (panel)
sudo ufw allow 8080       # Wings API
sudo ufw allow 2022       # Wings SFTP
sudo ufw allow 25565:25580/tcp  # Minecraft ports (range for several servers)
sudo ufw enable           # Enable firewall

8080 (API) and 2022 (SFTP) are the Wings default ports (Wings source code, as of Nov 8, 2026). Ports published by Docker bypass ufw rules (Docker docs, as of Nov 8, 2026).


Step 4: Create a Minecraft server

Now comes the fun part: creating your first Minecraft server.

Create an allocation

In the panel: Admin → Nodes → Your node → Allocations

IP: the IP of your network interface (the first address shown by hostname -I), ports: 25565-25570 (or more). Behind NAT it is the internal IP, never 127.0.0.1 (Pterodactyl docs, as of Nov 8, 2026).

Create the server

Admin → Servers → Create New

FieldValue
Server NameMy Minecraft Server
Server OwnerYour admin account
NodeNode 1
Allocation25565
Memory2048 (for 2GB)
Disk10240 (for 10GB)
NestMinecraft
EggPaper or another Minecraft egg (Forge, Fabric)

Configure the server

After creating it: open the server page → Startup tab

SettingValue
Server Versionlatest or e.g. 1.21.1
Build Numberlatest

Start the server

Console tab → click Start

On first start, Paper/Forge downloads the required files. This can take a few minutes.

Your server is now reachable on the allocation IP and port 25565!


Bonus: Aikar flags (per the PaperMC docs)

The PaperMC docs present and explain Aikar's flags (PaperMC docs, as of Nov 8, 2026). In Pterodactyl you set them like this:

  1. In the panel: Admin → Servers → Your server → Startup
  2. Look for "Startup Command" or "Java Flags"
  3. Add the Aikar flags

The heap (-Xmx) must stay below the memory limit assigned in the panel; with 2048 MB, e.g. 1536 MB:

-Xms1536M -Xmx1536M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1

More in our Minecraft server optimization guide.


Troubleshooting: common problems

Wings does not connect to the panel

  • Check whether port 8080 is open: sudo ufw status
  • Check the Wings logs: sudo journalctl -u wings -f
  • Does the FQDN in the Wings config match the panel?

Docker does not start

  • Does your virtualization support Docker? Check with systemd-detect-virt
  • Check: sudo systemctl status docker
  • Reinstall: remove conflicting packages and reinstall Docker per the Docker docs (Docker docs, as of Nov 8, 2026)

Server starts, but I cannot connect

  • Firewall: Docker ports bypass ufw; check the allocation and your host's firewall
  • Check the server logs in the panel for errors
  • Is the IP right? Use your server's public IPv4 – on Hetzner Cloud it is optional (Hetzner docs, as of Nov 8, 2026)

EULA not accepted

  • In the panel: Files tab → open eula.txt
  • Change eula=false to eula=true
  • Restart the server

Out of memory

  • Did you assign enough RAM?
  • Panel and Wings also need memory themselves; plan headroom
  • The Java heap must stay below the server's memory limit

Several Minecraft servers on one VPS

One advantage of Pterodactyl: you can run several servers in parallel.

Example with 8 GB RAM:

ServerRAMPort
Survival3GB25565
Creative2GB25566

The rest remains for system, panel and Wings.

Tip: With Velocity or BungeeCord you can connect the servers into a network.


Frequently Asked Questions

Does Pterodactyl work on Hetzner Cloud?
Pterodactyl needs virtualization with Docker support; check it with systemd-detect-virt (Pterodactyl docs, as of Nov 8, 2026). Suitable plans: Hetzner page in the provider comparison.
How much RAM does Pterodactyl itself need?
The Pterodactyl docs name no minimum size (as of Nov 8, 2026). Your game servers mainly drive it; plan headroom for system, panel and Wings too.
Can I host several Minecraft servers?
Yes. Each server needs its own allocation (IP:port); how many run in parallel depends on RAM, CPU and storage.
Does Pterodactyl cost anything?
Pterodactyl is open source under the MIT license, with no license fee (pterodactyl.io, as of Nov 8, 2026). You pay for your VPS.
Is Pterodactyl secure?
Wings runs each game server in its own Docker container (Pterodactyl docs, as of Nov 8, 2026). Set up HTTPS (optional via Let's Encrypt in the installer), use secure passwords and keep system and panel up to date.
Can I host other games too?
Yes. Eggs for other games, e.g. Valheim, Rust, ARK, Terraria or Counter-Strike 2, are in the egg library (eggs.pterodactyl.io, as of Nov 8, 2026).

Ready for your own panel?

Find a suitable VPS for Pterodactyl – with our comparison.

Compare VPS with 4GB+

Related Articles