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

  1. 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)
  2. 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.

  3. In terminal, cd into the directory, and run the following command to start the panel:

    docker compose up -d
  4. 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.

  5. Check that the panel remains accessible using the IP address or domain of your server.

Panel Configuration

  1. Access the panel via your server's IP/domain and login to your previously created user

  2. Navigate to admin panel (three dots menu → Admin)

  3. Navigate to Locations, make a new location. It can have any name

  4. 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
  5. 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:

  1. Test with vanilla Pterodactyl by changing panel image to ghcr.io/pterodactyl/panel:latest
  2. Debug issues
  3. Switch back to Hydrodactyl image when resolved

Additional Resources