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.
Author
Yuvraj Verma
Written as a practical guide, not just a summary.

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:
- Buy a fresh VPS.
- Point
panel.example.comto the VPS IP. - SSH into the server as root.
- Update packages and install
curl. - Run the installer command.
- Choose Panel, Wings, or both.
- Finish the prompts.
- Open the panel URL.
- Check the web server, queue worker, Docker, and Wings services.
- 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:
| Requirement | What you need |
|---|---|
| Fresh VPS or dedicated server | Avoid servers with existing websites or panels |
| Root SSH access | The script should be run as root |
| Supported OS | Check the script's supported operating systems before starting |
| Domain or subdomain | Example: panel.example.com |
| DNS record | An A record pointing to your server IP |
| Open ports | See the port table below |
| Email address | Needed 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.
| Port | Purpose | Required where? |
|---|---|---|
80/TCP | HTTP and certificate validation | Panel server |
443/TCP | Panel HTTPS | Panel server |
8080/TCP or configured alternative | Wings API / node communication | Node |
8443/TCP or configured alternative | Common Wings HTTPS alternative, especially with some proxy setups | Node |
2022/TCP or configured alternative | Wings SFTP | Node |
| Allocation ports | Individual game servers | Node |
22/TCP | SSH administration | Panel 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.
| Check | Why it matters |
|---|---|
| VPS is fresh | Old Nginx, Docker, or database configs can conflict with the script |
| DNS is already pointed | SSL can fail if the domain does not resolve to the server |
| You know your panel domain | Changing it later can confuse beginners |
| You have root access | The installer needs root-level permissions |
| You know if this is test or production | That decides whether script install is even the right choice |
| You are not using OpenVZ | Docker 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:
| Type | Name | Value |
|---|---|---|
| A | panel | YOUR_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 situation | Best choice |
|---|---|
| You are learning Pterodactyl | Install both Panel and Wings |
| You want a quick demo | Install both Panel and Wings |
| You already have a Panel | Install Wings only on the node |
| You are building a hosting brand | Use a planned full setup |
| You have multiple game nodes | Keep 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 area | Beginner choice |
|---|---|
| Domain | panel.example.com |
| SSL | Yes, if DNS is already pointed correctly |
| Web server | Nginx |
| Database | Let the script create it |
| Firewall | Yes, if this is a fresh server |
| Wings | Yes, 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
80and443are 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:
| Item | Common 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
| Problem | Likely cause | What to check |
|---|---|---|
| SSL failed | DNS not pointed correctly | dig panel.example.com, port 80, Cloudflare proxy |
| 502 Bad Gateway | PHP-FPM or Nginx issue | systemctl status nginx, PHP service status, Nginx logs |
| Panel loads but jobs do not run | Queue worker problem | systemctl status pteroq |
| Wings offline | Bad node config or blocked port | Wings config, firewall, Panel URL, Docker |
| Server install fails | Docker or allocation issue | Docker status, node allocations, Wings logs |
| Login/email issue | Mail config not set | Panel 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:
| Goal | Use script? | Better option |
|---|---|---|
| Learn Pterodactyl quickly | Yes | Script install is fine |
| Make a YouTube/demo panel | Yes | Script install is fine |
| Test eggs or plugins | Yes | Script install on a fresh VPS |
| Host a few friends | Maybe | Script is okay if you can troubleshoot |
| Sell hosting to customers | Be careful | Full manual/planned setup |
| Run a serious hosting brand | No shortcut | Full 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.
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
Pterodactyl Panel Script vs Manual Installation: Which Should You Choose?
A practical comparison of Pterodactyl script installation and manual installation, including speed, security, debugging, production use, and which method you should choose.
Open articlePterodactyl Node Capacity: Stop Wasting Game Hosting Resources
A practical capacity planning guide for game server hosting owners using Pterodactyl, covering node limits, resource fragmentation, safe overcommit tests, and monitoring.
Open articleGame Server Hosting in India: The Honest Reality Nobody Talks About
A deep research piece on game server hosting in India in 2026. Written from 6 years of personal experience running FiveM and Minecraft servers. For Indian players, server owners, and hosting companies thinking about entering this market.
Open article