Migrating from other panels

A comprehensive guide for migrating to Pyrodactyl from other game panels

This comprehensive guide walks you through migrating to Pyrodactyl, whether you use Docker or run your panel natively.

For Pyrodactyl-specific issues, please use Pyrodactyl GitHub Discussions instead of Pterodactyl or Pelican support channels.

Migrating from Pterodactyl (Docker)

Always make sure you take a backup of your Pterodactyl database and other relevant data.

If you already have Pterodactyl running in Docker, simply update your panel image in your docker-compose.yml file:

-image: ghcr.io/pterodactyl/panel:latest
+image: ghcr.io/pyrohost/pyrodactyl:main

Swapping between Pyrodactyl and Pterodactyl is unsupported and can cause data loss. Pyrodactyl makes changes to the database schema, making it unlikely Pterodactyl will function correctly. If you care about the validity of your database, make a backup before swapping back to Pterodactyl.

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 builtin 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.

Migrating from Pterodactyl (Native)

The latest NodeJS LTS is required to be installed to migrate without Docker.

Simply follow the manual Pterodactyl updating guide.

However, on the Download the Update step, use these commands instead:

git clone https://github.com/pyrohost/pyrodactyl.git /var/www/pterodactyl --depth=2
npm ci && npm run ship
chmod -R 755 storage/* bootstrap/cache/

On this page