From db9d30eb840fde10b74cbc230c19dde3f80c2429 Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 11:45:13 +0300 Subject: [PATCH 01/25] Create _category_.json --- docs/migrate/_category_.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/migrate/_category_.json diff --git a/docs/migrate/_category_.json b/docs/migrate/_category_.json new file mode 100644 index 0000000..54fe75a --- /dev/null +++ b/docs/migrate/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Migrate from Jexactyl v3.x", + "position": 3, + "link": { + "type": "generated-index" + } +} From c334b57147bc810247e36c942d2b93c1c8d64309 Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 11:46:23 +0300 Subject: [PATCH 02/25] Update _category_.json --- docs/migrate/_category_.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/_category_.json b/docs/migrate/_category_.json index 54fe75a..11634ca 100644 --- a/docs/migrate/_category_.json +++ b/docs/migrate/_category_.json @@ -1,5 +1,5 @@ { - "label": "Migrate from Jexactyl v3.x", + "label": "Migration", "position": 3, "link": { "type": "generated-index" From 2db7385ba2be88bac70acf9d8c03e5a1b4e156a0 Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 12:01:42 +0300 Subject: [PATCH 03/25] Create jexactyl.md --- docs/migrate/jexactyl.md | 102 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs/migrate/jexactyl.md diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md new file mode 100644 index 0000000..5c9478b --- /dev/null +++ b/docs/migrate/jexactyl.md @@ -0,0 +1,102 @@ +--- +sidebar_position: 1 +--- + +# From Jexactyl (v3.x) + +Migrate from Jexactyl v3 to all new v4. + +### Backup your Panel! +While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: +```bash +# Backs up the file structure and .env key. +cp -R /var/www/jexactyl /var/www/jexactyl-backup + +# Dump the MySQL database and save it in the backup dir. +mysqldump -u root -p panel > /var/www/jexactyl-backup/panel.sql +``` + +### Mark Panel as unavailable +:::warning +Make sure you're in the `/var/www/jexactyl` directory before continuing. +::: +While the migration takes place, we'll put the Panel into an 'unavailable' state so users cannot access the UI or API. We can do this by running the following: +```bash +php artisan down +``` + +### Download Jexactyl +After your backup is complete and the Panel is offline, we'll download the Jexactyl files and overwrite the existing ones. +```bash +# Download the latest Jexactyl v4 release using CURL. +curl -L -o panel.tar.gz https://github.com/Jexactyl/Jexactyl/releases/download/v4.0.0-beta7/panel.tar.gz + +# Download the updated files and delete the archive file. +tar -xzvf panel.tar.gz && rm -f panel.tar.gz +``` + +Then, set permissions so that the Panel's files can be accessed. +```bash +chmod -R 755 storage/* bootstrap/cache +``` + +### Temporary fixes +In the file `app/Console/Commands/Environment/EmailSettingsCommand.php` replace: +```bash +Jexactyl\Traits\Commands\EnvironmentWriterTrait +``` +with: +```bash +Everest\Traits\Commands\EnvironmentWriterTrait +``` + +Remove Old Migrations: +```bash +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 +``` + +### Update Composer dependencies +After the new files have been downloaded, you'll need to update the PHP Composer dependencies that run this Panel. To do so, use `composer` to update the packages: +```bash +composer install --no-dev --optimize-autoloader +``` + +### Clear compiled UI cache +You'll also want to clear the Panel's cache so that the new site will appear correctly. +```bash +php artisan optimize:clear +``` + +### Update database migrations +Jexactyl includes new features and functions that require you to migrate to your database. Luckily, this is a simple process which only involves running one command: +```bash +php artisan migrate --seed --force +``` + +### Reassign webserver permissions +Due to the change in files on the machine, we'll need to allow Apache/NGINX to read these new files. You can do so by running the command specific to your webserver: +```bash +# If using NGINX or Apache (not on CentOS): +chown -R www-data:www-data /var/www/jexactyl/* + +# If using NGINX on CentOS: +chown -R nginx:nginx /var/www/jexactyl/* + +# If using Apache on CentOS +chown -R apache:apache /var/www/jexactyl/* +``` + +### Restart Queue Workers +After every update you should restart the queue worker, to ensure that the new code is loaded and used. +```bash +php artisan queue:restart +``` + +### Mark Panel as online +Now that the migration is complete, you can bring the Panel back online and make it available to users. +```bash +php artisan up +``` From 3b69e12702facf227299c1b2e60aae1b209d0c6d Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 12:09:24 +0300 Subject: [PATCH 04/25] Update intro.md --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 00ee476..90349c8 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -19,7 +19,7 @@ Want to install Jexactyl? Here are the options to get the ball rolling: - If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/intro.md) -- If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/intro.md) +- If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.md) ## Support us! From 003d8b2568f7d8e8e092ef653aff6fe633bf848e Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 20:24:58 +0300 Subject: [PATCH 05/25] Create pterodactyl.md --- docs/migrate/pterodactyl.md | 98 +++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 docs/migrate/pterodactyl.md diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md new file mode 100644 index 0000000..77d950e --- /dev/null +++ b/docs/migrate/pterodactyl.md @@ -0,0 +1,98 @@ +--- +sidebar_position: 2 +--- + +# From Pterodactyl (v1.x) + +Migrate from Pterodactyl v1 to all new Jexactyl v4. + +:::danger +Pterodactyl v0.7 is EOL (end-of-life) and is not supported for migration by Jexactyl. If you're running v0.7, please upgrade from Pterodactyl v0.7 to Pterodactyl v1.0 before following this migration guide. +::: + +### Backup your Panel! +While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: +```bash +# Backs up the file structure and .env key. +cp -R /var/www/pterodactyl /var/www/pterodactyl-backup + +# Dump the MySQL database and save it in the backup dir. +mysqldump -u root -p panel > /var/www/pterodactyl-backup/panel.sql +``` + +### Mark Panel as unavailable +:::warning +Make sure you're in the `/var/www/pterodactyl` directory before continuing. +::: +While the migration takes place, we'll put the Panel into an 'unavailable' state so users cannot access the UI or API. We can do this by running the following: +```bash +php artisan down +``` + +### Download Jexactyl +After your backup is complete and the Panel is offline, we'll download the Jexactyl files and overwrite the existing ones. +```bash +# Download the latest Jexactyl v4 release using CURL. +curl -L -o panel.tar.gz https://github.com/Jexactyl/Jexactyl/releases/download/v4.0.0-beta7/panel.tar.gz + +# Download the updated files and delete the archive file. +tar -xzvf panel.tar.gz && rm -f panel.tar.gz +``` + +Then, set permissions so that the Panel's files can be accessed. +```bash +chmod -R 755 storage/* bootstrap/cache +``` + +### Temporary fixes +In the file `app/Console/Commands/Environment/EmailSettingsCommand.php` replace: +```bash +Pterodactyl\Traits\Commands\EnvironmentWriterTrait +``` +with: +```bash +Everest\Traits\Commands\EnvironmentWriterTrait +``` + +### Update Composer dependencies +After the new files have been downloaded, you'll need to update the PHP Composer dependencies that run this Panel. To do so, use `composer` to update the packages: +```bash +composer install --no-dev --optimize-autoloader +``` + +### Clear compiled UI cache +You'll also want to clear the Panel's cache so that the new site will appear correctly. +```bash +php artisan optimize:clear +``` + +### Update database migrations +Jexactyl includes new features and functions that require you to migrate to your database. Luckily, this is a simple process which only involves running one command: +```bash +php artisan migrate --seed --force +``` + +### Reassign webserver permissions +Due to the change in files on the machine, we'll need to allow Apache/NGINX to read these new files. You can do so by running the command specific to your webserver: +```bash +# If using NGINX or Apache (not on CentOS): +chown -R www-data:www-data /var/www/pterodactyl/* + +# If using NGINX on CentOS: +chown -R nginx:nginx /var/www/pterodactyl/* + +# If using Apache on CentOS +chown -R apache:apache /var/www/pterodactyl/* +``` + +### Restart Queue Workers +After every update you should restart the queue worker, to ensure that the new code is loaded and used. +```bash +php artisan queue:restart +``` + +### Mark Panel as online +Now that the migration is complete, you can bring the Panel back online and make it available to users. +```bash +php artisan up +``` From a1c7db8510367f57b922ab304756fd8cc33bff31 Mon Sep 17 00:00:00 2001 From: freeutka Date: Sun, 17 Aug 2025 20:26:14 +0300 Subject: [PATCH 06/25] Update intro.md --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 90349c8..cee38c7 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -17,7 +17,7 @@ Want to install Jexactyl? Here are the options to get the ball rolling: - If you are **installing from scratch**, follow the [**Fresh Install Documentation**](/docs/intro.md) -- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/intro.md) +- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/migrate/pterodactyl.md) - If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.md) From 0461b0087ff510577e1a59424217320f44d1805a Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 18 Aug 2025 22:35:02 +0300 Subject: [PATCH 07/25] Update jexactyl.md --- docs/migrate/jexactyl.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md index 5c9478b..9562942 100644 --- a/docs/migrate/jexactyl.md +++ b/docs/migrate/jexactyl.md @@ -6,6 +6,10 @@ sidebar_position: 1 Migrate from Jexactyl v3 to all new v4. +::info +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` +:: + ### Backup your Panel! While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: ```bash From 79365c9da0045f9dfc01c0522bc1b261204fc0d7 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 18 Aug 2025 22:35:16 +0300 Subject: [PATCH 08/25] Update pterodactyl.md --- docs/migrate/pterodactyl.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md index 77d950e..27e3769 100644 --- a/docs/migrate/pterodactyl.md +++ b/docs/migrate/pterodactyl.md @@ -6,6 +6,10 @@ sidebar_position: 2 Migrate from Pterodactyl v1 to all new Jexactyl v4. +::info +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` +:: + :::danger Pterodactyl v0.7 is EOL (end-of-life) and is not supported for migration by Jexactyl. If you're running v0.7, please upgrade from Pterodactyl v0.7 to Pterodactyl v1.0 before following this migration guide. ::: From bcedeefc8081538310b1883c0abfd6346da17528 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 18 Aug 2025 23:03:09 +0300 Subject: [PATCH 09/25] Update jexactyl.md --- docs/migrate/jexactyl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md index 9562942..b38d6e0 100644 --- a/docs/migrate/jexactyl.md +++ b/docs/migrate/jexactyl.md @@ -6,9 +6,9 @@ sidebar_position: 1 Migrate from Jexactyl v3 to all new v4. -::info +:::tip If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` -:: +::: ### Backup your Panel! While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: From 742e815bb7fca97e295fbbd007c070c12887328f Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 18 Aug 2025 23:03:20 +0300 Subject: [PATCH 10/25] Update pterodactyl.md --- docs/migrate/pterodactyl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md index 27e3769..c7295a3 100644 --- a/docs/migrate/pterodactyl.md +++ b/docs/migrate/pterodactyl.md @@ -6,9 +6,9 @@ sidebar_position: 2 Migrate from Pterodactyl v1 to all new Jexactyl v4. -::info +:::tip If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` -:: +::: :::danger Pterodactyl v0.7 is EOL (end-of-life) and is not supported for migration by Jexactyl. If you're running v0.7, please upgrade from Pterodactyl v0.7 to Pterodactyl v1.0 before following this migration guide. From 1e8f9d43f3725a9bce2a2c5a72cf77fe65796bf9 Mon Sep 17 00:00:00 2001 From: freeutka Date: Tue, 19 Aug 2025 14:44:41 +0300 Subject: [PATCH 11/25] Update jexactyl.md --- docs/migrate/jexactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md index b38d6e0..5b7ff4e 100644 --- a/docs/migrate/jexactyl.md +++ b/docs/migrate/jexactyl.md @@ -7,7 +7,7 @@ sidebar_position: 1 Migrate from Jexactyl v3 to all new v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh.txt)` ::: ### Backup your Panel! From 4421e1125942bb5c378877d8b37b47c951444309 Mon Sep 17 00:00:00 2001 From: freeutka Date: Tue, 19 Aug 2025 14:45:40 +0300 Subject: [PATCH 12/25] Update pterodactyl.md --- docs/migrate/pterodactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md index c7295a3..a757fca 100644 --- a/docs/migrate/pterodactyl.md +++ b/docs/migrate/pterodactyl.md @@ -7,7 +7,7 @@ sidebar_position: 2 Migrate from Pterodactyl v1 to all new Jexactyl v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s https://raw.githubusercontent.com/freeutka/gotov4/refs/heads/main/migrate.sh)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh.txt)` ::: :::danger From 3f0bf25ea6a3b2dc098443820b0fd1403c299d67 Mon Sep 17 00:00:00 2001 From: freeutka Date: Tue, 19 Aug 2025 14:49:20 +0300 Subject: [PATCH 13/25] Update jexactyl.md --- docs/migrate/jexactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md index 5b7ff4e..d396139 100644 --- a/docs/migrate/jexactyl.md +++ b/docs/migrate/jexactyl.md @@ -7,7 +7,7 @@ sidebar_position: 1 Migrate from Jexactyl v3 to all new v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh.txt)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh)` ::: ### Backup your Panel! From 84128faef56526615ba6ac6d39a7450124d776c6 Mon Sep 17 00:00:00 2001 From: freeutka Date: Tue, 19 Aug 2025 14:49:29 +0300 Subject: [PATCH 14/25] Update pterodactyl.md --- docs/migrate/pterodactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md index a757fca..a267d75 100644 --- a/docs/migrate/pterodactyl.md +++ b/docs/migrate/pterodactyl.md @@ -7,7 +7,7 @@ sidebar_position: 2 Migrate from Pterodactyl v1 to all new Jexactyl v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh.txt)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh)` ::: :::danger From 859e921049009a709de64a705075f52d9402c8b6 Mon Sep 17 00:00:00 2001 From: freeutka Date: Wed, 20 Aug 2025 00:59:46 +0300 Subject: [PATCH 15/25] Update jexactyl.md --- docs/migrate/jexactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md index d396139..7329fbb 100644 --- a/docs/migrate/jexactyl.md +++ b/docs/migrate/jexactyl.md @@ -7,7 +7,7 @@ sidebar_position: 1 Migrate from Jexactyl v3 to all new v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)` ::: ### Backup your Panel! From a10b902a4f36632ee827362b35ef5325c00283cb Mon Sep 17 00:00:00 2001 From: freeutka Date: Wed, 20 Aug 2025 00:59:56 +0300 Subject: [PATCH 16/25] Update pterodactyl.md --- docs/migrate/pterodactyl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md index a267d75..ed638ff 100644 --- a/docs/migrate/pterodactyl.md +++ b/docs/migrate/pterodactyl.md @@ -7,7 +7,7 @@ sidebar_position: 2 Migrate from Pterodactyl v1 to all new Jexactyl v4. :::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.com/migrate.sh)` +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)` ::: :::danger From 12777c3ee966835b619723ddb84d1a75f19266bf Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 19:53:58 +0300 Subject: [PATCH 17/25] Update intro.md --- docs/intro.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 7c3f5c0..2488ff2 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -16,10 +16,9 @@ Jexpanel is a *hyperfast, clean and intricate* fullstack web application built u Want to install Jexpanel? Here are the options to get the ball rolling: - If you are **installing from scratch**, follow the [**Fresh Install Documentation**](/docs/category/install---from-scratch) - - -- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/migrate/pterodactyl.md) -- + +- If you plan to **migrate from Pterodactyl v1.x**, follow the **Pterodactyl Migration** (coming soon) + - If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.md) From 237d1b80fbc3270c7464b7e51e92813b3da4cdfa Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 19:54:24 +0300 Subject: [PATCH 18/25] Delete docs/migrate/jexactyl.md --- docs/migrate/jexactyl.md | 106 --------------------------------------- 1 file changed, 106 deletions(-) delete mode 100644 docs/migrate/jexactyl.md diff --git a/docs/migrate/jexactyl.md b/docs/migrate/jexactyl.md deleted file mode 100644 index 7329fbb..0000000 --- a/docs/migrate/jexactyl.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -sidebar_position: 1 ---- - -# From Jexactyl (v3.x) - -Migrate from Jexactyl v3 to all new v4. - -:::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)` -::: - -### Backup your Panel! -While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: -```bash -# Backs up the file structure and .env key. -cp -R /var/www/jexactyl /var/www/jexactyl-backup - -# Dump the MySQL database and save it in the backup dir. -mysqldump -u root -p panel > /var/www/jexactyl-backup/panel.sql -``` - -### Mark Panel as unavailable -:::warning -Make sure you're in the `/var/www/jexactyl` directory before continuing. -::: -While the migration takes place, we'll put the Panel into an 'unavailable' state so users cannot access the UI or API. We can do this by running the following: -```bash -php artisan down -``` - -### Download Jexactyl -After your backup is complete and the Panel is offline, we'll download the Jexactyl files and overwrite the existing ones. -```bash -# Download the latest Jexactyl v4 release using CURL. -curl -L -o panel.tar.gz https://github.com/Jexactyl/Jexactyl/releases/download/v4.0.0-beta7/panel.tar.gz - -# Download the updated files and delete the archive file. -tar -xzvf panel.tar.gz && rm -f panel.tar.gz -``` - -Then, set permissions so that the Panel's files can be accessed. -```bash -chmod -R 755 storage/* bootstrap/cache -``` - -### Temporary fixes -In the file `app/Console/Commands/Environment/EmailSettingsCommand.php` replace: -```bash -Jexactyl\Traits\Commands\EnvironmentWriterTrait -``` -with: -```bash -Everest\Traits\Commands\EnvironmentWriterTrait -``` - -Remove Old Migrations: -```bash -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 -``` - -### Update Composer dependencies -After the new files have been downloaded, you'll need to update the PHP Composer dependencies that run this Panel. To do so, use `composer` to update the packages: -```bash -composer install --no-dev --optimize-autoloader -``` - -### Clear compiled UI cache -You'll also want to clear the Panel's cache so that the new site will appear correctly. -```bash -php artisan optimize:clear -``` - -### Update database migrations -Jexactyl includes new features and functions that require you to migrate to your database. Luckily, this is a simple process which only involves running one command: -```bash -php artisan migrate --seed --force -``` - -### Reassign webserver permissions -Due to the change in files on the machine, we'll need to allow Apache/NGINX to read these new files. You can do so by running the command specific to your webserver: -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data /var/www/jexactyl/* - -# If using NGINX on CentOS: -chown -R nginx:nginx /var/www/jexactyl/* - -# If using Apache on CentOS -chown -R apache:apache /var/www/jexactyl/* -``` - -### Restart Queue Workers -After every update you should restart the queue worker, to ensure that the new code is loaded and used. -```bash -php artisan queue:restart -``` - -### Mark Panel as online -Now that the migration is complete, you can bring the Panel back online and make it available to users. -```bash -php artisan up -``` From 787ea298d7efd9559fc336aa6a26b0a18594e8dd Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 19:54:58 +0300 Subject: [PATCH 19/25] Add automatic migration script --- docs/migrate/jexactyl.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/migrate/jexactyl.mdx b/docs/migrate/jexactyl.mdx index 1705cd9..397daa9 100644 --- a/docs/migrate/jexactyl.mdx +++ b/docs/migrate/jexactyl.mdx @@ -6,6 +6,10 @@ sidebar_position: 1 This guide is for migrating from Jexactyl v3 -> Jexpanel v4. +:::tip +If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)` +::: + :::danger These instructions are ONLY for people moving from Jexactyl v3.x to Jexpanel v4. Check the sidebar if you wish to upgrade your existing instance or migrate your data from another panel. From 770a235605adf91bc3964805f09b0d4d6c8f63d6 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 19:58:20 +0300 Subject: [PATCH 20/25] Update and rename pterodactyl.md to pterodactyl.mdx + Logic renew --- docs/migrate/pterodactyl.md | 102 ----------------------------------- docs/migrate/pterodactyl.mdx | 97 +++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 102 deletions(-) delete mode 100644 docs/migrate/pterodactyl.md create mode 100644 docs/migrate/pterodactyl.mdx diff --git a/docs/migrate/pterodactyl.md b/docs/migrate/pterodactyl.md deleted file mode 100644 index ed638ff..0000000 --- a/docs/migrate/pterodactyl.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_position: 2 ---- - -# From Pterodactyl (v1.x) - -Migrate from Pterodactyl v1 to all new Jexactyl v4. - -:::tip -If you prefer an **automatic migration**, you can use the following command: `bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh)` -::: - -:::danger -Pterodactyl v0.7 is EOL (end-of-life) and is not supported for migration by Jexactyl. If you're running v0.7, please upgrade from Pterodactyl v0.7 to Pterodactyl v1.0 before following this migration guide. -::: - -### Backup your Panel! -While this migration is designed to be as simple as possible, we strongly advise you take a backup of all data, just to make sure nothing goes wrong during migration. You can do this by running the following commands: -```bash -# Backs up the file structure and .env key. -cp -R /var/www/pterodactyl /var/www/pterodactyl-backup - -# Dump the MySQL database and save it in the backup dir. -mysqldump -u root -p panel > /var/www/pterodactyl-backup/panel.sql -``` - -### Mark Panel as unavailable -:::warning -Make sure you're in the `/var/www/pterodactyl` directory before continuing. -::: -While the migration takes place, we'll put the Panel into an 'unavailable' state so users cannot access the UI or API. We can do this by running the following: -```bash -php artisan down -``` - -### Download Jexactyl -After your backup is complete and the Panel is offline, we'll download the Jexactyl files and overwrite the existing ones. -```bash -# Download the latest Jexactyl v4 release using CURL. -curl -L -o panel.tar.gz https://github.com/Jexactyl/Jexactyl/releases/download/v4.0.0-beta7/panel.tar.gz - -# Download the updated files and delete the archive file. -tar -xzvf panel.tar.gz && rm -f panel.tar.gz -``` - -Then, set permissions so that the Panel's files can be accessed. -```bash -chmod -R 755 storage/* bootstrap/cache -``` - -### Temporary fixes -In the file `app/Console/Commands/Environment/EmailSettingsCommand.php` replace: -```bash -Pterodactyl\Traits\Commands\EnvironmentWriterTrait -``` -with: -```bash -Everest\Traits\Commands\EnvironmentWriterTrait -``` - -### Update Composer dependencies -After the new files have been downloaded, you'll need to update the PHP Composer dependencies that run this Panel. To do so, use `composer` to update the packages: -```bash -composer install --no-dev --optimize-autoloader -``` - -### Clear compiled UI cache -You'll also want to clear the Panel's cache so that the new site will appear correctly. -```bash -php artisan optimize:clear -``` - -### Update database migrations -Jexactyl includes new features and functions that require you to migrate to your database. Luckily, this is a simple process which only involves running one command: -```bash -php artisan migrate --seed --force -``` - -### Reassign webserver permissions -Due to the change in files on the machine, we'll need to allow Apache/NGINX to read these new files. You can do so by running the command specific to your webserver: -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data /var/www/pterodactyl/* - -# If using NGINX on CentOS: -chown -R nginx:nginx /var/www/pterodactyl/* - -# If using Apache on CentOS -chown -R apache:apache /var/www/pterodactyl/* -``` - -### Restart Queue Workers -After every update you should restart the queue worker, to ensure that the new code is loaded and used. -```bash -php artisan queue:restart -``` - -### Mark Panel as online -Now that the migration is complete, you can bring the Panel back online and make it available to users. -```bash -php artisan up -``` diff --git a/docs/migrate/pterodactyl.mdx b/docs/migrate/pterodactyl.mdx new file mode 100644 index 0000000..61991a3 --- /dev/null +++ b/docs/migrate/pterodactyl.mdx @@ -0,0 +1,97 @@ +--- +sidebar_position: 2 +--- + +# Migrate from Pterodactyl v1 + +This guide is for migrating from **Pterodactyl v1.x → Jexpanel v4**. + +:::tip +If you prefer an **automatic migration**, you can use the following command: +```bash +bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh) +```` + +\::: + +### Enter maintenance mode + +To keep the panel's integrity, put the app into maintenance mode so no one can access it. + +```bash +php /var/www/pterodactyl/artisan down +``` + +### Download and extract update + +```bash +cd /var/www/pterodactyl +# Download file archive from GitHub +curl -Lo panel.tar.gz https://github.com/jexactyl/jexactyl/releases/download/v4.0.0-rc2/panel.tar.gz + +# Extract the archive +tar -xzvf panel.tar.gz +rm panel.tar.gz + +# Give certain folders higher permissions for access +chmod -R 755 storage/* bootstrap/cache/ +``` + +### Update dependencies + +```bash +# Delete old vendor files +rm -r vendor +rm app/Console/Commands/Environment/EmailSettingsCommand.php +# Install new dependencies +composer install --no-dev --optimize-autoloader +``` + +### Clear application cache + +```bash +php artisan optimize:clear +``` + +### Edit database fields + +```bash +# Replace 'panel' with the name of your database if needed +mysqldump panel > /var/www/pterodactyl/backup.sql + +# Enter MySQL console and make changes +mysql -u root -p +USE panel; +DROP TABLE tickets; +DROP TABLE ticket_messages; +DROP TABLE theme; +ALTER TABLE nodes DROP COLUMN deployable; +exit; +``` + +Then, once this is complete, we can migrate the new database changes. + +### Migrate database changes + +```bash +php artisan migrate --seed --force +``` + +### Set webserver permissions + +```bash +# If using NGINX or Apache (not on CentOS) +chown -R www-data:www-data /var/www/pterodactyl/* + +# If using NGINX on CentOS +chown -R nginx:nginx /var/www/pterodactyl/* + +# If using Apache on CentOS +chown -R apache:apache /var/www/pterodactyl/* +``` + +### Exit maintenance mode + +```bash +php artisan up +``` From 7d8cd6a35d24693d1e509c8e07313f5ca0b98073 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 19:59:10 +0300 Subject: [PATCH 21/25] Update pterodactyl.mdx --- docs/migrate/pterodactyl.mdx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/migrate/pterodactyl.mdx b/docs/migrate/pterodactyl.mdx index 61991a3..f288a78 100644 --- a/docs/migrate/pterodactyl.mdx +++ b/docs/migrate/pterodactyl.mdx @@ -6,14 +6,6 @@ sidebar_position: 2 This guide is for migrating from **Pterodactyl v1.x → Jexpanel v4**. -:::tip -If you prefer an **automatic migration**, you can use the following command: -```bash -bash <(curl -s http://jexactyl.freeutka.xyz/migrate.sh) -```` - -\::: - ### Enter maintenance mode To keep the panel's integrity, put the app into maintenance mode so no one can access it. From a0f8b120ebe54dae621e827583b4e129c7976547 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 20:00:09 +0300 Subject: [PATCH 22/25] Update pterodactyl.mdx --- docs/migrate/pterodactyl.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/migrate/pterodactyl.mdx b/docs/migrate/pterodactyl.mdx index f288a78..4d1404a 100644 --- a/docs/migrate/pterodactyl.mdx +++ b/docs/migrate/pterodactyl.mdx @@ -2,7 +2,7 @@ sidebar_position: 2 --- -# Migrate from Pterodactyl v1 +# Migrate from Pterodactyl v1.x This guide is for migrating from **Pterodactyl v1.x → Jexpanel v4**. From 39fae81ff7b7720e3e3972c9e1c5d19b847a6ccd Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 20:01:37 +0300 Subject: [PATCH 23/25] Update intro.md --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 2488ff2..6c6bef1 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -17,7 +17,7 @@ Want to install Jexpanel? Here are the options to get the ball rolling: - If you are **installing from scratch**, follow the [**Fresh Install Documentation**](/docs/category/install---from-scratch) -- If you plan to **migrate from Pterodactyl v1.x**, follow the **Pterodactyl Migration** (coming soon) +- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/migrate/pterodactyl.md) - If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.md) From 9285c446b7ca9800126225f1cef66480d1b6ed57 Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 20:06:12 +0300 Subject: [PATCH 24/25] Update intro.md --- docs/intro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 6c6bef1..67d90e5 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -17,9 +17,9 @@ Want to install Jexpanel? Here are the options to get the ball rolling: - If you are **installing from scratch**, follow the [**Fresh Install Documentation**](/docs/category/install---from-scratch) -- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/migrate/pterodactyl.md) +- If you plan to **migrate from Pterodactyl v1.x**, follow the [**Pterodactyl Migration**](/docs/migrate/pterodactyl.mdx) -- If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.md) +- If you plan to **migrate from Jexactyl v3.x**, follow the [**Jexactyl Migration**](/docs/migrate/jexactyl.mdx) ## Support us! From e3e764b5c8856c94a5f9ad42c5accc3f0136ef7f Mon Sep 17 00:00:00 2001 From: freeutka Date: Mon, 25 Aug 2025 21:51:46 +0300 Subject: [PATCH 25/25] Removed tickets from database --- docs/migrate/pterodactyl.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/migrate/pterodactyl.mdx b/docs/migrate/pterodactyl.mdx index 4d1404a..d706315 100644 --- a/docs/migrate/pterodactyl.mdx +++ b/docs/migrate/pterodactyl.mdx @@ -54,8 +54,6 @@ mysqldump panel > /var/www/pterodactyl/backup.sql # Enter MySQL console and make changes mysql -u root -p USE panel; -DROP TABLE tickets; -DROP TABLE ticket_messages; DROP TABLE theme; ALTER TABLE nodes DROP COLUMN deployable; exit;