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. Run the command below, and go through its prompts to create an admin user:

    docker compose exec panel php artisan p:user:make
  5. Check that the panel is 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/elytra/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

Elytra Installation

As of release 5.0, Hydrodactyl is compatible with both Pterodactyl Wings and Pyro Inc.© Elytra. You can find info to install at Elytra Docs

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