Installation Guide
This guide will walk you through installing Pterodactyl Panel and the Wings daemon. Follow each step carefully to ensure a successful installation.Overview
Pterodactyl installation consists of three main components:1
Panel Installation
Install the web interface and management system
2
Wings Installation
Install the server control daemon on game server nodes
3
Configuration
Connect Wings to the Panel and configure your first server
Prerequisites
Before beginning, ensure you have:- A server meeting system requirements
- Root or sudo access to the server
- A domain name pointing to your server IP
- Basic knowledge of Linux command line
Part 1: Panel Installation
Step 1: Install Dependencies
First, update your system and install required dependencies.Step 2: Install Composer
Composer is required to install PHP dependencies.Step 3: Download Panel Files
Create the directory for the Panel and download the files.Step 4: Configure Database
Secure your MySQL installation and create the Panel database.When prompted, set a strong root password and answer ‘Y’ to all security questions.
Step 5: Install Panel Dependencies
Install PHP dependencies using Composer.This process may take several minutes depending on your server’s speed.
Step 6: Environment Configuration
Generate the environment file and application key.- Author Email: Your email address for Let’s Encrypt
- Application URL: Your Panel URL (e.g.,
https://panel.example.com) - Timezone: Your timezone (e.g.,
America/New_York) - Cache Driver: Select
redis(recommended) - Session Driver: Select
redis(recommended) - Queue Driver: Select
redis(recommended)
- Database Host:
127.0.0.1 - Database Port:
3306 - Database Name:
panel - Username:
pterodactyl - Password: The password you set earlier
Step 7: Database Setup
Run database migrations to set up the Panel schema.Step 8: Create Admin User
Create your first administrator account.- Email: Your email address
- Username: Your username
- First Name: Your first name
- Last Name: Your last name
- Password: A strong password
- Admin:
yes
Step 9: Set Permissions
Set the correct ownership and permissions.Step 10: Configure Queue Worker
Create a systemd service for the queue worker.Step 11: Configure Cron Job
Add a cron job for scheduled tasks.Step 12: Configure Web Server
Configure NGINX or Apache to serve the Panel.- NGINX
- Apache
Remove the default configuration:Create the Panel configuration:Paste the following (replace Enable the configuration:Test and restart NGINX:
panel.example.com with your domain):Step 13: Install SSL Certificate
Install Certbot and obtain an SSL certificate.Certbot will automatically configure SSL and set up auto-renewal.
Panel Installation Complete!
You should now be able to access your Panel athttps://panel.example.com. Log in with the admin account you created.
Part 2: Wings Installation
Wings must be installed on every server where you want to run game servers. This can be the same server as the Panel or separate machines.Step 1: Install Docker
Install Docker on your Wings node.Step 2: Enable Swap (Optional but Recommended)
Enable swap to prevent out-of-memory issues.Step 3: Download Wings
Download the Wings binary.Step 4: Create Node in Panel
Before configuring Wings, you need to create a node in the Panel.1
Access Admin Panel
Log in to your Panel and navigate to the Admin area
2
Create Location
Go to Locations → Create New and create a location (e.g., “US East”)
3
Create Node
Go to Nodes → Create New and fill in:
- Name: A descriptive name (e.g., “Node-1”)
- Location: Select the location you created
- FQDN: Your node’s domain or IP (e.g.,
node1.example.com) - Communicate Over SSL: Enable if using HTTPS
- Behind Proxy: Enable if behind a proxy
- Memory: Total RAM to allocate to servers
- Disk Space: Total disk space to allocate
4
Get Configuration
After creating the node, go to the Configuration tab and copy the configuration file
Step 5: Configure Wings
Create the Wings configuration file.Step 6: Create Wings Service
Create a systemd service for Wings.Step 7: Configure Firewall
Open necessary ports for Wings.Step 8: Verify Connection
In your Panel, navigate to Admin → Nodes and check if the node shows as online with a green heart icon.Part 3: Creating Your First Server
Now that both Panel and Wings are installed, create your first game server.Step 1: Import Eggs
Eggs are server templates. Import default eggs:1
Download Eggs
Visit pterodactyl-eggs repository and download eggs for your desired games
2
Import to Panel
Go to Admin → Nests → Select a nest → Import Egg and upload the JSON file
The Panel comes with some default eggs, but the community repository has many more options.
Step 2: Create Allocations
Allocations are IP:Port combinations for game servers.- Go to Admin → Nodes → Select your node → Allocation
- Enter:
- IP Address: Your server’s IP
- Ports: Port range (e.g.,
25565-25665)
- Click Submit
Step 3: Create Server
1
Navigate to Servers
Go to Admin → Servers → Create New
2
Core Details
- Server Name: Name your server
- Server Owner: Select a user
- Description: Optional description
3
Allocation
- Node: Select your node
- Default Allocation: Select an available allocation
4
Application Feature Limits
Configure database and backup limits
5
Resource Management
- Memory: Allocated RAM (MB)
- Disk Space: Allocated disk (MB)
- CPU Limit: CPU percentage (100 = 1 core)
6
Nest Configuration
- Nest: Select game category (e.g., Minecraft)
- Egg: Select server type (e.g., Paper)
- Docker Image: Default is usually fine
- Startup Command: Customize if needed
7
Create Server
Click Create Server and wait for installation
Step 4: Access Server
Once created, access your server:- Go to the client area (not admin)
- Click on your server
- Use the console to start/stop and manage your server
Troubleshooting
Panel Issues
500 Error - Missing manifest.json
500 Error - Missing manifest.json
This occurs when assets aren’t built. If using pre-built releases, ensure you extracted all files correctly.For development:
Queue worker not processing jobs
Queue worker not processing jobs
Check the queue worker status:View logs:
Can't connect to database
Can't connect to database
Verify database credentials in
/var/www/pterodactyl/.envTest connection:Wings Issues
Node appears offline
Node appears offline
Check Wings status:View logs:Verify:
- Port 8080 is accessible from Panel
- SSL configuration matches Panel settings
remoteURL in config.yml is correct
Server installation fails
Server installation fails
Check Wings logs:Verify:
- Docker is running:
systemctl status docker - Disk space available:
df -h - Permissions on
/var/lib/pterodactyl
Can't connect to SFTP
Can't connect to SFTP
Verify:
- Wings is running
- Port 2022 is open in firewall
- Using Panel username and password
- SFTP address is
node_address:2022
Post-Installation
Security Hardening
1
Enable 2FA
Enable Two-Factor Authentication for all admin accounts
2
Configure Firewall
Ensure only necessary ports are open
3
Regular Updates
Keep Panel, Wings, and system packages updated
4
Backup Strategy
Configure automated backups for database and server files
Optimization
- Configure Redis for better performance
- Set up queue workers for background processing
- Enable OPcache for PHP performance
- Consider CDN for static assets (large installations)
- Monitor resource usage and scale as needed
Updating
To update Pterodactyl:- Panel Update
- Wings Update
Next Steps
Official Documentation
Read the complete documentation for advanced configuration
Community Discord
Join the community for support and discussions
API Documentation
Learn how to integrate with the Pterodactyl API
Community Eggs
Browse hundreds of community-maintained server eggs
Support
If you encounter issues:- Check the official documentation
- Search existing GitHub issues
- Join the Discord server for community help
- Review logs for error messages
