Native to Docker Migration

Guide for migrating from native Pterodactyl installation to Pyrodactyl with Docker

Migrating from Pterodactyl (Native → Docker)

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

Pyrodactyl Installation

  1. Create a new folder (e.g. pyrodactyl-panel) on your server in a safe location, and switch to it.

  2. Download and configure the docker-compose.example.yml

  3. Modify placeholder variables under x-common

  4. If you are using built-in HTTPS, add port 443 (to the ports section under the panel container) and set the LE_EMAIL variable (in the panel section under x-common) to a registered Let's Encrypt email address.

  5. Copy the following environment variables from your Pterodactyl .env to your docker-compose.yml:

    APP_KEY
    APP_URL
    DB_CONNECTION
    DB_HOST
    DB_PORT
    DB_DATABASE
    DB_USERNAME
    DB_PASSWORD
    HASHIDS_SALT
    HASHIDS_LENGTH # (if it's not 8)

    The following are only applicable if email is set up:

    MAIL_MAILER
    MAIL_HOST
    MAIL_PORT
    MAIL_USERNAME
    MAIL_PASSWORD
    MAIL_ENCRYPTION
    MAIL_FROM_ADDRESS
    MAIL_FROM_NAME
    APP_SERVICE_AUTHOR
    MAIL_DRIVER
  6. If your database is running on the same machine as your panel, set it to listen on the IP 172.17.0.1, and change the DB_HOST environment variable to 172.17.0.1.

  7. Rename docker-compose.example.yml to docker-compose.yml

  8. Run the following command to start the panel:

    docker compose up -d

Your panel is now running! You can access it at the same URL as before, and use the same user accounts.