Fresh Installation
A comprehensive guide for setting up Pyrodactyl using Docker
This comprehensive guide walks you through setting up Pyrodactyl using Docker, from scratch to a fully functional system.
The guide for migration has moved to a new page.
For Pyrodactyl-specific issues, please use Pyrodactyl GitHub Discussions or join our Discord community at discord.gg/FGWKZT5dxv for support.
Windows is currently only supported for development purposes.
Prerequisites
- Linux system with root access
- Docker Engine and Docker Compose installed
- Docker expertise and basic system administration skills
- Consider Portainer for easier Docker management
- Avoid using Snap-based Docker installations on Ubuntu
- Enable Docker auto-start on boot
Panel Installation
-
Download and configure the docker-compose file (template).
- Modify all placeholder variables under
x-common
- Adjust exposed ports if needed (add 443 if you want to use HTTPS)
- Modify all placeholder variables under
-
Create a new folder (e.g. pyrodactyl-panel) on your server in a safe location, and move or upload your edited compose file into it. Rename the file to docker-compose.yml.
-
In terminal, cd into the directory, and run the following command to start the panel:
-
Run the command below, and go through its prompts to create an admin user:
-
Check that the panel is accessible using the IP address or domain of your server.
Panel Configuration
-
Access the panel via your server's IP/domain and login to your previously created user
-
Navigate to admin panel (three dots menu → Admin)
-
Navigate to Locations, make a new location. It can have any name
-
Navigate to Nodes, create a new node
- FQDN is the domain or IP address (if you're not using HTTPS) of the server you're going to use as a backend
- You should make sure the daemon ports are free on your backend server
-
On the new node, go to the:
- Configuration tab: Copy the contents to /etc/pterodactyl/config.yml on your backend server
- Allocation tab: Add some allocations to use for your servers. The IP should be 0.0.0.0. If you want to show a different IP in the UI (e.g. a subdomain), add an alias. You can input a range of ports like 25565-26000
Wings Installation
In addition to the Pyrodactyl panel, you'll need Pterodactyl Wings as a backend for your servers, which we will also use Docker for. You can have multiple Wings instances on different servers, but for now, we're setting up just one.
-
Run the commands below to setup the compose for Wings:
-
Run the following command to start Wings:
-
Verify Wings status:
-
If applicable, allow wings in your firewall:
- If using
ufw
: - If using
iptables
:
- If using
Post-Installation Steps
Email Configuration
For user password reset emails, etc, you'll need an SFTP server. For this, you can use:
You can configure SFTP settings in Admin Panel → Settings.
DDoS protection
If you're planning to have your server publicly accessible, your server could be vulnerable to DDoS attacks. Although not covered here due to its complexity, consider using:
The goal is to not have your server's IP address on any of your known domains.
Troubleshooting
If issues arise:
- Test with vanilla Pterodactyl by changing panel image to
ghcr.io/pterodactyl/panel:latest
- Debug issues
- Switch back to Pyrodactyl image when resolved