Migration addon (v3.x → v4)
Automated utility to migrate your Jexactyl/Pterodactyl panel to Jexactyl v4.
🚀 Quick Start
Run the migration script in one command:
bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)
📖 Full migration guide (How script works)
1. Backup your Panel
While this migration is designed to be as simple as possible, we strongly advise you to back up all data.
# Backs up the file structure and .env key
cp -R /var/www/jexactyl /var/www/jexactyl-backup
# Dump the MySQL database
mysqldump -u root -p panel > /var/www/jexactyl-backup/panel.sql
2. Mark Panel as unavailable
php artisan down
3. Download Jexactyl
# Download the latest Jexactyl v4 release
curl -L -o panel.tar.gz https://github.com/Jexactyl/Jexactyl/releases/download/v4.0.0-rc1/panel.tar.gz
# Extract files
tar -xzvf panel.tar.gz && rm -f panel.tar.gz
chmod -R 755 storage/* bootstrap/cache
4. Apply temporary fixes
Edit app/Console/Commands/Environment/EmailSettingsCommand.php
:
- Jexactyl\Traits\Commands\EnvironmentWriterTrait
+ Everest\Traits\Commands\EnvironmentWriterTrait
Remove old migrations:
rm database/migrations/2024_03_30_211213_create_tickets_table.php
rm database/migrations/2024_03_30_211447_create_ticket_messages_table.php
rm database/migrations/2024_04_15_203406_add_theme_table.php
rm database/migrations/2024_05_01_124250_add_deployable_column_to_nodes_table.php
5. Update Composer dependencies
composer install --no-dev --optimize-autoloader
6. Clear cache
php artisan optimize:clear
7. Update database
php artisan migrate --seed --force
8. Reassign permissions
# Debian/Ubuntu (NGINX/Apache)
chown -R www-data:www-data /var/www/jexactyl/*
# CentOS (NGINX)
chown -R nginx:nginx /var/www/jexactyl/*
# CentOS (Apache)
chown -R apache:apache /var/www/jexactyl/*
9. Restart Queue Workers
php artisan queue:restart
10. Bring Panel online
php artisan up