Yuvraj Verma LogoYuvraj Verma
Back to blogs
PterodactylJul 4, 202615 min read

Install Pterodactyl from Script: Fast VPS Setup Guide

A practical guide to installing Pterodactyl Panel with the unofficial community script, including VPS preparation, install choices, post-install checks, security notes, and common fixes.

Yuvraj Verma

Author

Yuvraj Verma

Written as a practical guide, not just a summary.

Install Pterodactyl from Script: Fast VPS Setup Guide

Script installation can be the fastest way for you to install Pterodactyl Panel on a fresh VPS. If you want to test the panel, learn how game server hosting works, import eggs, or quickly create a demo setup, the installer script can save a lot of time.

Instead of manually setting up PHP, MariaDB, Redis, Nginx, SSL, cron, the queue worker, Docker, and Wings one by one, the script handles most of the setup flow and gets you to a working panel much faster.

The script automates the installation. It does not replace server administration.

What is Pterodactyl Panel?

Pterodactyl is an open-source game-server management platform. The Panel provides the web dashboard where admins and users manage servers, while Wings runs on each node and manages game servers inside Docker containers. An egg defines how a particular game or application is installed and started.

In simple terms: the Panel is what you use in the browser, Wings is what runs the game servers, and eggs are the templates that tell Pterodactyl how each server should work.

Important before you start

The popular Pterodactyl installer script is not an official Pterodactyl project. It is a community tool. You will not get official Pterodactyl support for problems caused by the script, script configs, or script-based installation issues. Use it on a fresh server, and do not treat a quick script install as a replacement for a proper production setup.

This guide is not just "run this command and good luck." I will show you what to prepare before running the script, which installer choices make sense, what to check after the install, and when you should skip the script and get a full Pterodactyl setup instead.

Who this guide is for

This guide is for you if:

  • you want a quick Pterodactyl test panel
  • you are learning game server hosting
  • you want to try Minecraft, FiveM, Rust, ARK, or bot hosting from a panel
  • you need a temporary demo panel
  • you are using a fresh VPS and do not want to do a full manual install today

This is not the best path if:

  • customers already depend on the server
  • the VPS already has websites, databases, mail servers, or custom firewall rules
  • you need a long-term hosting business setup
  • you need a cleaner supportable production install
  • you need a clean multi-node production architecture

If you want the fast route, continue with the script. If you want the full production route, skip to the service section later in this guide.

What the script actually does

The community installer automates the boring but important parts of a Pterodactyl setup:

  • installs panel dependencies
  • configures the database
  • sets up the web server
  • creates the cron job and queue worker
  • optionally configures Let's Encrypt SSL
  • optionally installs and configures Wings
  • optionally configures a firewall

The commonly used one-line launcher is hosted at pterodactyl-installer.se.

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

That command downloads and runs the installer. It will ask whether you want to install the Panel, Wings, or both on the same machine.

After installation, you still need to understand domains, SSL, firewall ports, Docker, Wings, allocations, backups, and updates.

The quick path

If you already know what you are doing, the rough flow is:

  1. Buy a fresh VPS.
  2. Point panel.example.com to the VPS IP.
  3. SSH into the server as root.
  4. Update packages and install curl.
  5. Run the installer command.
  6. Choose Panel, Wings, or both.
  7. Finish the prompts.
  8. Open the panel URL.
  9. Check the web server, queue worker, Docker, and Wings services.
  10. Create one small test server before importing real customer data.

If any of those steps sound confusing, keep reading. The details below are where most beginner mistakes happen.

Requirements

Before running the script, prepare these things:

RequirementWhat you need
Fresh VPS or dedicated serverAvoid servers with existing websites or panels
Root SSH accessThe script should be run as root
Supported OSCheck the script's supported operating systems before starting
Domain or subdomainExample: panel.example.com
DNS recordAn A record pointing to your server IP
Open portsSee the port table below
Email addressNeeded if you use Let's Encrypt SSL

At the time of writing, the installer supports modern Ubuntu, Debian, Rocky Linux, and AlmaLinux releases. This can change, so check the script's supported operating systems before running the command on a new server.

For most beginners, I would choose:

  • Ubuntu 24.04 or Ubuntu 22.04
  • a clean VPS
  • at least 2 vCPU and 4GB RAM for testing
  • a real domain pointed to the server

If you still need a VPS, ZAP-Hosting has Pterodactyl-ready VPS options starting at $6 with voucher yuvraj-20. Pick enough CPU, RAM, and storage for the game servers you actually plan to run.

You can install on smaller machines for testing, but once you start running actual game servers, the node needs enough CPU, RAM, disk, and network capacity for the containers.

Common ports to plan

These are common defaults, not immutable Pterodactyl requirements. Always use the ports configured for your Panel and node.

PortPurposeRequired where?
80/TCPHTTP and certificate validationPanel server
443/TCPPanel HTTPSPanel server
8080/TCP or configured alternativeWings API / node communicationNode
8443/TCP or configured alternativeCommon Wings HTTPS alternative, especially with some proxy setupsNode
2022/TCP or configured alternativeWings SFTPNode
Allocation portsIndividual game serversNode
22/TCPSSH administrationPanel or node, preferably restricted

Before you run the script

Spend five minutes checking the basics before you start. It is much easier than fixing a half-installed panel later.

CheckWhy it matters
VPS is freshOld Nginx, Docker, or database configs can conflict with the script
DNS is already pointedSSL can fail if the domain does not resolve to the server
You know your panel domainChanging it later can confuse beginners
You have root accessThe installer needs root-level permissions
You know if this is test or productionThat decides whether script install is even the right choice
You are not using OpenVZDocker usually needs proper virtualization support

If you are installing on a server that already has important data, stop and take a backup first. A script install should not be treated like a harmless theme change. It touches web server config, database packages, services, firewall rules, and Docker.

Step 1: Point your domain to the VPS

Create a DNS A record before you start the installer.

Example:

TypeNameValue
ApanelYOUR_SERVER_IP

If your domain is example.com, this creates:

panel.example.com

Wait until DNS resolves before asking the installer to issue SSL. You can check from your local computer:

ping panel.example.com

Or from the server:

dig panel.example.com

If the domain still points somewhere else, SSL will fail. That is one of the most common script-install problems.

Step 2: SSH into the server as root

Connect to your VPS:

ssh root@YOUR_SERVER_IP

Update the server first:

apt update && apt upgrade -y

Install curl if it is missing:

apt install curl -y

If you are not on a Debian or Ubuntu based system, use your distro's package manager instead.

Use a clean terminal session

Run the installer in a stable SSH session. If your internet disconnects halfway through, the install can be left in an awkward state. If you are comfortable with Linux, running inside tmux is even better.

Step 3: Run the installer script

Run the installer as root:

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

This starts the script installation flow. From here, answer the prompts carefully and choose whether you want the Panel, Wings, or both.

Step 4: Choose what to install

The installer gives you options similar to:

  • install the Panel
  • install Wings
  • install both Panel and Wings on the same machine
  • uninstall Panel or Wings
  • use canary script options

For a beginner test setup, choose install both Panel and Wings on the same machine. That gives you the dashboard and the node daemon together, so you can create a server and test everything without needing a second machine.

For a cleaner hosting setup, you normally separate them:

  • Panel on one VPS or web server
  • Wings on one or more game server nodes

That separation is better when you are building a real game hosting business, because the web dashboard and game containers are different workloads.

Your situationBest choice
You are learning PterodactylInstall both Panel and Wings
You want a quick demoInstall both Panel and Wings
You already have a PanelInstall Wings only on the node
You are building a hosting brandUse a planned full setup
You have multiple game nodesKeep Panel separate and install Wings per node

Simple beginner choice

If you are following this guide for the first time, install both Panel and Wings on one server. Once you understand the flow, you can move to a cleaner separated setup.

Step 5: Answer the installer prompts

The exact prompts can change between releases, but expect questions around:

  • your panel domain
  • whether to use SSL
  • your email address for Let's Encrypt
  • timezone
  • database settings
  • web server choice
  • firewall configuration
  • whether to install Wings
  • node or daemon settings

For a simple first install, these choices are usually sensible:

Prompt areaBeginner choice
Domainpanel.example.com
SSLYes, if DNS is already pointed correctly
Web serverNginx
DatabaseLet the script create it
FirewallYes, if this is a fresh server
WingsYes, if testing Panel and Wings together

Do not rush through the prompts. The script is fast, but wrong input still creates wrong config.

Do not guess the domain

Use the final domain you actually want for the panel. Changing panel URLs later is possible, but it is annoying for beginners because you may need to update environment config, SSL, web server settings, and Wings connection details.

What domain should you use?

Use a clean subdomain:

panel.example.com

Do not use:

  • a domain still pointing to another server
  • a Cloudflare proxied record while issuing SSL
  • a random temporary hostname you plan to change later
  • the same domain already used by another website

If you use Cloudflare, set the DNS record to DNS only while issuing SSL. After SSL works, you can decide whether proxying makes sense for your setup. For game server traffic, remember that Cloudflare's normal proxy is not for arbitrary game ports.

Step 6: Wait for the installer to finish

The install usually takes a few minutes, depending on server speed and package mirrors.

If something fails, check the installer log:

cat /var/log/pterodactyl-installer.log

If you need to watch the end of the log:

tail -n 100 /var/log/pterodactyl-installer.log

Do not repeatedly rerun the installer without reading the error log. If the first attempt created part of the database, SSL config, or web server config, repeated runs can make the server messier.

Step 7: Open the panel

Once the script finishes, open your panel domain in the browser:

https://panel.example.com

If everything worked, you should see the Pterodactyl login page or setup flow.

If the browser shows an SSL error, check:

  • DNS points to the correct server IP
  • ports 80 and 443 are open
  • no Cloudflare proxy issue is blocking certificate validation
  • Nginx is running
  • Let's Encrypt did not hit a rate limit

You can check Nginx with:

systemctl status nginx

And test the domain from the server:

curl -I https://panel.example.com

A working login page confirms the Panel is online, not that Wings or your game servers are working. Continue with the checks below before calling the setup finished.

Step 8: Check the services

After the panel loads, check the background services.

For the web server:

systemctl status nginx

For the queue worker:

systemctl status pteroq

For Wings:

systemctl status wings

If Wings is not installed on the same machine, that is fine. You only need wings running on your node server.

If Wings is installed but not connecting, check:

  • the node exists in the Panel
  • the Wings config was generated correctly
  • the Panel URL is correct
  • the node FQDN resolves correctly
  • required ports are open
  • Docker is running

Docker check:

systemctl status docker

You can also check recent Wings logs:

journalctl -u wings --no-pager -n 100

If the node is offline in the Panel, read the logs before changing random settings. Most Wings problems are simple once you see the actual error: wrong FQDN, bad SSL, blocked port, invalid config, or Docker not running.

Step 9: Create your first test server

After Panel and Wings are connected, create a small test server.

I like testing with something simple first:

  • Minecraft Vanilla
  • Node.js
  • Python
  • a small generic egg

Do not start with your biggest modded Minecraft pack or a heavily customized FiveM server. First prove the basics:

  • server can be created
  • files generate correctly
  • console works
  • startup completes
  • ports are reachable
  • restart works

Once that works, then move to heavier game servers.

Step 10: Do the boring security checks

A fast install is useful, but do not leave the server in a sloppy state.

After your first test server works, check these items:

  • use a strong admin password
  • remove unused admin accounts
  • keep SSH protected with a strong password or SSH keys
  • disable password login if you know how to manage keys safely
  • keep only required ports open
  • save panel, database, and server credentials in a password manager
  • confirm backups before hosting anything important
  • write down where the Panel, Wings config, logs, and service files are located

For a test panel, you do not need enterprise-level hardening. But you should at least know what is exposed to the internet and what credentials you would need if the server breaks.

Where important files usually live

These paths are useful when you need to troubleshoot:

ItemCommon location
Panel files/var/www/pterodactyl
Panel environment file/var/www/pterodactyl/.env
Wings config/etc/pterodactyl/config.yml
Queue worker service/etc/systemd/system/pteroq.service
Wings service/etc/systemd/system/wings.service
Installer log/var/log/pterodactyl-installer.log

Do not edit files randomly, especially .env and config.yml. But knowing where they live makes troubleshooting much less scary.

Common script installation problems

ProblemLikely causeWhat to check
SSL failedDNS not pointed correctlydig panel.example.com, port 80, Cloudflare proxy
502 Bad GatewayPHP-FPM or Nginx issuesystemctl status nginx, PHP service status, Nginx logs
Panel loads but jobs do not runQueue worker problemsystemctl status pteroq
Wings offlineBad node config or blocked portWings config, firewall, Panel URL, Docker
Server install failsDocker or allocation issueDocker status, node allocations, Wings logs
Login/email issueMail config not setPanel mail settings and SMTP credentials

For logs, these are useful starting points:

journalctl -u nginx --no-pager -n 100
journalctl -u pteroq --no-pager -n 100
journalctl -u wings --no-pager -n 100
tail -n 100 /var/log/pterodactyl-installer.log

Should you use the script for production?

For a demo, test panel, learning server, or personal project, the script is very useful.

For production hosting, be more careful.

The problem is not that scripts are always bad. The problem is that a script can leave you with a working panel that you do not understand. When something breaks later, you need to know where Pterodactyl stores its files, how Nginx is configured, how the database connects, how the queue worker runs, how Wings talks to the Panel, and how Docker is managing game containers.

If real customers depend on the panel, either:

  • install manually from the official docs
  • use the script but review every service and config after installation
  • get someone experienced to set it up and explain the handoff

Here is the honest decision:

GoalUse script?Better option
Learn Pterodactyl quicklyYesScript install is fine
Make a YouTube/demo panelYesScript install is fine
Test eggs or pluginsYesScript install on a fresh VPS
Host a few friendsMaybeScript is okay if you can troubleshoot
Sell hosting to customersBe carefulFull manual/planned setup
Run a serious hosting brandNo shortcutFull setup with backups, monitoring, and clean nodes

If you want the full Pterodactyl setup instead of only a quick script installation, get the full installation service. This is the better choice when you care about a clean setup, proper handoff, and a panel that is ready for real game hosting:

Final thought

Installing Pterodactyl from a script is the fastest way to get started. It removes a lot of manual Linux work and gives beginners a working panel without spending the whole day fighting dependencies.

But the script is the beginning, not the finish line.

After it installs, take ten minutes to inspect what it created. Look at the services. Read the Nginx config. Check the Wings config. Understand which machine is the Panel and which machine is the node. That saves time later when a server refuses to start and everyone is asking why the panel is down.

Fast setup is useful. Understanding the installation is what makes it maintainable.

Yuvraj Verma

Written by

Yuvraj Verma

Yuvraj Verma writes practical guides on hosting, monetization, and game server infrastructure.

His content is built to help creators and hosting businesses launch faster with fewer mistakes.

Next articles

Read these next