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):
| Question | Answer |
|---|---|
| What to install? | 0 (panel); 2 installs panel and Wings on the same machine |
| Database name | panel (press Enter) |
| Database username | pterodactyl |
| Database password | Enter = random password, or your own secure password |
| Timezone | Europe/Berlin |
| Your email | |
| Admin email | Your email |
| Admin username | admin |
| First and last name | Your details |
| Admin password | Secure password! |
| FQDN | panel.yourdomain.com |
| Firewall | Yes, if the installer should set it up |
| Let's Encrypt | Yes, for HTTPS |
| Telemetry | Defaults 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:
- Go to Admin → Locations → Create New
- Name: "Home" or "Hetzner DE" (anything)
- Go to Admin → Nodes → Create New
- Name: "Node 1"
- FQDN: panel.yourdomain.com (or a separate subdomain)
- Memory: your RAM in MB (e.g. 3500 for a 4GB VPS, leave some headroom)
- Disk: your storage in MB
- 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
| Field | Value |
|---|---|
| Server Name | My Minecraft Server |
| Server Owner | Your admin account |
| Node | Node 1 |
| Allocation | 25565 |
| Memory | 2048 (for 2GB) |
| Disk | 10240 (for 10GB) |
| Nest | Minecraft |
| Egg | Paper or another Minecraft egg (Forge, Fabric) |
Configure the server
After creating it: open the server page → Startup tab
| Setting | Value |
|---|---|
| Server Version | latest or e.g. 1.21.1 |
| Build Number | latest |
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:
- In the panel: Admin → Servers → Your server → Startup
- Look for "Startup Command" or "Java Flags"
- 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=falsetoeula=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:
| Server | RAM | Port |
|---|---|---|
| Survival | 3GB | 25565 |
| Creative | 2GB | 25566 |
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?
How much RAM does Pterodactyl itself need?
Can I host several Minecraft servers?
Does Pterodactyl cost anything?
Is Pterodactyl secure?
Can I host other games too?
More Minecraft Guides
Ready for your own panel?
Find a suitable VPS for Pterodactyl – with our comparison.
Compare VPS with 4GB+




