Native to Native Migration

Guide for migrating from native Pterodactyl installation to native Pyrodactyl installation

Migrating from Pterodactyl (Native → Native)

Before making any changes, back up your entire panel directory and database. Pyrodactyl modifies the database schema, and rolling back to Pterodactyl may result in data loss or instability.

Prerequisites

  • Root or sudo access on your Linux server
  • Latest NodeJS LTS installed
  • Composer installed globally
  • MySQL database access and credentials
  • Backup of .env and your current database

Migration Steps

  1. Install a Node Version Manager

    curl -o- https://fnm.vercel.app/install | bash
  2. Install Node 22

    fnm install 22
  3. Navigate to the directory where your current Pterodactyl panel is installed

    cd /var/www/pterodactyl
  4. Put the panel into maintenance mode

    php artisan down
  5. Download and extract the latest Pyrodactyl release:

    curl -L https://github.com/pyrohost/pyrodactyl/releases/latest/download/panel.tar.gz | tar -xzv
  6. Set proper permissions:

    chmod -R 755 storage/* bootstrap/cache
  7. Install PHP dependencies:

    composer install --no-dev --optimize-autoloader
  8. Clear cached views and configuration:

    php artisan view:clear
    php artisan config:clear
  9. Run the database migrations:

    php artisan migrate --seed --force
  10. Set ownership to the web server user:

    chown -R www-data:www-data /var/www/pterodactyl/*
  11. Restart the queue worker:

    php artisan queue:restart
  12. Build the frontend assets:

    npm install -g corepack@latest
    corepack enable pnpm
    pnpm i --frozen-lockfile && pnpm run ship
    chmod -R 755 storage/* bootstrap/cache/
  13. Bring the panel back online:

    php artisan up

🎉 Boom! Your panel is now migrated to Pyrodactyl!