Pterodactyl on a VPS

Back to VPS

Pterodactyl on a VPS

Explains how to install the Pterodactyl Panel and Wings on your VPS using our own browser-based installer.

With our own Pterodactyl installer, you set up the Pterodactyl Panel and/or Wings on your VPS in a few steps, mostly through your browser. You don't need any technical knowledge for this.

Note: Not affiliated with the official Pterodactyl project. Pterodactyl® is a registered trademark of its owners. Our installer is based on the open source pterodactyl-installer by Vilhelm Prytz, adapted and extended by Etheron Hosting.

Requirements

  • A fresh VPS, with no other software on it. Already running a panel? Use the official Pterodactyl guide to upgrade instead of this installer.
  • One of the following operating systems:
Operating systemVersions
Ubuntu22.04, 24.04, 26.04
Debian12, 13
Rocky Linux8, 9, 10
AlmaLinux8, 9, 10
  • Root access on your VPS.
  • The required ports open (see the Ports table below). Does your hosting provider (such as us) have its own firewall? Open the ports there as well.

Step 1. Connecting via SSH

  1. Log in to your VPS via SSH, for example with PuTTY or your computer's terminal.
  2. Log in as root, or become root with sudo -i.

Note: While entering your password, nothing will show up on screen, this is normal SSH behavior.

Step 2. Installing curl

Copy and paste the command that matches your operating system:

Ubuntu or Debian:

apt update && apt install -y curl

Rocky Linux or AlmaLinux:

dnf install -y curl

Step 3. Starting the installer

Copy and paste this command:

bash <(curl -fsSL https://raw.githubusercontent.com/etheronhosting/Pterodactyl-install-script-etheron-hosting/main/install.sh) web

The installer sets up Python and OpenSSL, requests a free certificate, and then starts an installation wizard on port 8443.

Step 4. Opening the wizard in your browser

  1. The terminal shows a link with a one-time access code, for example https://installer-203-0-113-10.sslip.io:8443/?token=....
  2. Open this link in your browser. You can safely close the SSH window afterward, the installation now runs entirely through your browser.

Note: Getting a certificate warning in your browser? This can happen if port 80 wasn't open yet. You can safely click through. If unsure, check whether the certificate fingerprint matches what was shown in the terminal.

Step 5. Choosing what to install

In the wizard, you choose:

  • What to install: Panel, Wings, or both together on one server.
  • How your server should be reachable:
ChoiceAddressHTTPS
Own domaine.g. panel.yourdomain.com (point an A record to your VPS)Free via Let's Encrypt (recommended)
Free address (nip.io)e.g. 203-0-113-10.nip.ioFree via Let's Encrypt
IP address onlye.g. 203.0.113.10None, only suitable for testing

No domain of your own? No problem, nip.io automatically gives you a free address pointing to your server. You don't need to configure anything for this yourself.

Note: Using Cloudflare for your domain? Turn the proxy (the orange cloud) off for this record, otherwise the certificate cannot be requested.

Want to use your own certificate instead of Let's Encrypt? Place the certificate at /etc/ssl/<domain>.pem and the key at /etc/ssl/<domain>.key, and restart nginx with nginx -t && systemctl restart nginx.

Step 6. Filling in details and installing

  1. Create an admin account for the Panel.
  2. Fill in the Wings options, if applicable.
  3. The installer checks everything before actually installing anything.
  4. Follow the installation live in the wizard. You can close the page and reopen it later with the same link, the installation keeps running in the background.

Note: The web installer automatically shuts down: 30 minutes after a completed installation, after 1 hour of inactivity, after 24 hours, or when you click Shut down web installer yourself.

Step 7. Creating the node and starting Wings

At the end of the wizard, click Create node and start Wings. This automatically handles:

  • Creating a location (default nl).
  • Creating a node, using the memory and free disk space of your VPS.
  • Adding and opening the ports for game servers (default 25565–25600).
  • Configuring and starting Wings.

You've now installed Pterodactyl on your VPS!

Running your Panel on a different server than Wings? Then you need an API key from the Panel (Admin → Application API → Create New), with Read & Write on Locations, Nodes, and Allocations.

Databases for game servers

When setting up Wings, you choose from three options:

OptionWhat happens
AutomaticThe installer creates everything itself and sets up the database host directly in the panel. Only available if Panel and Wings are on the same server.
Set up myselfYou choose your own username and password. Add the database host manually afterward via Admin → Databases.
Not neededNothing is configured.

Note: Choosing Automatic means the database is only reachable from the game servers themselves. Port 3306 stays closed from the outside.

Ports

The installer opens these ports itself on the VPS. Does your hosting provider have a separate firewall? Open them there too, otherwise it won't work.

ComponentPortsWhen
SSHusually 22always
Panel80, 443 (TCP)when installing the Panel
Wings8080, 2022 (TCP)when installing Wings
Wings with HTTPS80, 443 (TCP)if you use a certificate for Wings
Game serversdefault 25565–25600 (TCP and UDP)when linking the node
Web installer8443 (TCP), temporaryas long as the web installer is running

Troubleshooting

  • The link in the terminal doesn't work: check whether port 8443 is open, and whether you copied the full link (including ?token=...).
  • The certificate for your own domain fails: check whether the A record actually points to your VPS, and whether Cloudflare's proxy (orange cloud) is turned off for this record.
  • Wings doesn't start after creating the node: check whether the correct ports (see the Ports table) are open, both on the VPS itself and on any external firewall.

Still stuck? Feel free to reach out via Discord or create a support ticket!

Lars
Updated on: 11/11/2026
Was this article helpful?