Fresh Installation
A comprehensive guide for setting up Hydrodactyl using Docker
This comprehensive guide walks you through setting up Hydrodactyl using Docker, from scratch to a fully functional system.
The guide for migration has moved to a new page.
For Hydrodactyl-specific issues, join our Discord community at https://discord.gg/sK686yHdaK for support.
Windows is currently only supported for development purposes.
Prerequisites
- Linux system with root access
- Docker and Docker Compose installed
- Experience with Docker and basic system administration skills
- 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. hydrodactyl-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:
docker compose up -d -
Open the panel via your server's IP address or domain in a web browser. With no accounts on the system yet, the panel's builtin initial admin creation suite will guide you through creating the first administrator account.
-
Check that the panel remains 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
Post-Installation Steps
Email Configuration
For user password reset emails, etc, you'll need an SMTP 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 Hydrodactyl image when resolved