From 4a36716574442559c99fd971db091160798fdc8c Mon Sep 17 00:00:00 2001 From: Naterfute Date: Thu, 1 Jan 2026 18:43:31 -0800 Subject: [PATCH 01/17] feat(ui): updated email templates to match Pyrodactyl theme --- .../vendor/notifications/email.blade.php | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php index 94f86a960..39c439e88 100644 --- a/resources/views/vendor/notifications/email.blade.php +++ b/resources/views/vendor/notifications/email.blade.php @@ -20,53 +20,53 @@ $style = [ /* Layout ------------------------------ */ - 'body' => 'margin: 0; padding: 0; width: 100%; background-color: #F2F4F6;', - 'email-wrapper' => 'width: 100%; margin: 0; padding: 0; background-color: #F2F4F6;', + 'body' => 'margin: 0; padding: 0; width: 100%; background-color: #0a0a0a;', + 'email-wrapper' => 'width: 100%; margin: 0; padding: 0; background-color: #0a0a0a;', /* Masthead ----------------------- */ 'email-masthead' => 'padding: 25px 0; text-align: center;', - 'email-masthead_name' => 'font-size: 16px; font-weight: bold; color: #2F3133; text-decoration: none; text-shadow: 0 1px 0 white;', + 'email-masthead_name' => 'font-size: 16px; font-weight: bold; color: #ef4444; text-decoration: none;', - 'email-body' => 'width: 100%; margin: 0; padding: 0; border-top: 1px solid #EDEFF2; border-bottom: 1px solid #EDEFF2; background-color: #FFF;', + 'email-body' => 'width: 100%; margin: 0; padding: 0; border-top: 1px solid #1f1f1f; border-bottom: 1px solid #1f1f1f; background-color: #141414;', 'email-body_inner' => 'width: auto; max-width: 570px; margin: 0 auto; padding: 0;', 'email-body_cell' => 'padding: 35px;', 'email-footer' => 'width: auto; max-width: 570px; margin: 0 auto; padding: 0; text-align: center;', - 'email-footer_cell' => 'color: #AEAEAE; padding: 35px; text-align: center;', + 'email-footer_cell' => 'color: #6b7280; padding: 35px; text-align: center;', /* Body ------------------------------ */ 'body_action' => 'width: 100%; margin: 30px auto; padding: 0; text-align: center;', - 'body_sub' => 'margin-top: 25px; padding-top: 25px; border-top: 1px solid #EDEFF2;', + 'body_sub' => 'margin-top: 25px; padding-top: 25px; border-top: 1px solid #1f1f1f;', /* Type ------------------------------ */ - 'anchor' => 'color: #3869D4;', - 'header-1' => 'margin-top: 0; color: #2F3133; font-size: 19px; font-weight: bold; text-align: left;', - 'paragraph' => 'margin-top: 0; color: #74787E; font-size: 16px; line-height: 1.5em;', - 'paragraph-sub' => 'margin-top: 0; color: #74787E; font-size: 12px; line-height: 1.5em;', + 'anchor' => 'color: #ef4444; text-decoration: underline;', + 'header-1' => 'margin-top: 0; color: #f9fafb; font-size: 19px; font-weight: bold; text-align: left;', + 'paragraph' => 'margin-top: 0; color: #9ca3af; font-size: 16px; line-height: 1.5em;', + 'paragraph-sub' => 'margin-top: 0; color: #6b7280; font-size: 12px; line-height: 1.5em;', 'paragraph-center' => 'text-align: center;', /* Buttons ------------------------------ */ - 'button' => 'display: block; display: inline-block; width: 200px; min-height: 20px; padding: 10px; - background-color: #3869D4; border-radius: 3px; color: #ffffff; font-size: 15px; line-height: 25px; - text-align: center; text-decoration: none; -webkit-text-size-adjust: none;', + 'button' => 'display: inline-block; width: 200px; min-height: 20px; padding: 10px; + background-color: #ef4444; border-radius: 3px; color: #ffffff; font-size: 15px; line-height: 25px; + text-align: center; text-decoration: none;', - 'button--green' => 'background-color: #22BC66;', - 'button--red' => 'background-color: #dc4d2f;', - 'button--blue' => 'background-color: #3869D4;', + 'button--green' => 'background-color: #10b981;', + 'button--red' => 'background-color: #dc2626;', + 'button--blue' => 'background-color: #ef4444;', ]; ?> - +
- +
@@ -79,7 +79,7 @@ $style = [
- +
@@ -104,7 +104,7 @@ $style = [ @if (isset($actionText)) - +
@@ -145,16 +145,16 @@ $style = [ @if (isset($actionText)) -
+ target="_blank" rel="noopener"> {{ $actionText }}
+

- If you’re having trouble clicking the "{{ $actionText }}" button, + If you're having trouble clicking the "{{ $actionText }}" button, copy and paste the URL below into your web browser:

- + {{ $actionUrl }}

@@ -171,12 +171,12 @@ $style = [
- +
From 2e81dd47262ac0be43beb2908e9aef3e578be948 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 04:52:17 -0800 Subject: [PATCH 02/17] feat: add Pterodactyl Wings support alonside Elytra Support --- .github/docker/entrypoint.sh | 2 +- .gitignore | 1 + app/Console/Commands/Node/MakeNodeCommand.php | 6 +- app/Contracts/Daemon/Daemon.php | 11 + app/Enums/Captcha/Captchas.php | 34 ++ app/Enums/Daemon/Adapters.php | 52 +++ app/Enums/Daemon/DaemonType.php | 39 ++ app/Enums/Subdomain/Features.php | 55 +++ app/Enums/Subdomain/Providers.php | 68 +++ .../Admin/NodeAutoDeployController.php | 3 +- .../Admin/Nodes/NodeController.php | 57 ++- .../Admin/Nodes/NodeViewController.php | 9 +- .../Controllers/Admin/NodesController.php | 7 +- .../Admin/Servers/CreateServerController.php | 3 +- .../Admin/Servers/ServerController.php | 4 +- .../Admin/Servers/ServerViewController.php | 4 +- .../Admin/Settings/CaptchaController.php | 13 +- .../Admin/Settings/DomainsController.php | 23 +- .../Api/Client/ClientController.php | 1 + .../Api/Client/ServerController.php | 53 +++ .../Servers/Elytra/ActivityLogController.php | 54 +++ .../{ => Elytra}/BackupsController.php | 4 +- .../Servers/Elytra/CommandController.php | 54 +++ .../Servers/Elytra/DatabaseController.php | 102 +++++ .../{ => Elytra}/ElytraJobsController.php | 5 +- .../Client/Servers/Elytra/FileController.php | 265 ++++++++++++ .../Servers/Elytra/FileUploadController.php | 54 +++ .../NetworkAllocationController.php | 2 +- .../Client/Servers/Elytra/PowerController.php | 35 ++ .../Elytra/ResourceUtilizationController.php | 41 ++ .../{ => Elytra}/ScheduleController.php | 2 +- .../{ => Elytra}/ScheduleTaskController.php | 2 +- .../Servers/Elytra/ServerController.php | 35 ++ .../{ => Elytra}/SettingsController.php | 181 ++++---- .../{ => Elytra}/StartupController.php | 10 +- .../{ => Elytra}/SubdomainController.php | 20 +- .../Servers/Elytra/WebsocketController.php | 73 ++++ .../{ => Wings}/ActivityLogController.php | 2 +- .../Client/Servers/Wings/BackupController.php | 224 ++++++++++ .../Servers/{ => Wings}/CommandController.php | 2 +- .../{ => Wings}/DatabaseController.php | 2 +- .../Servers/{ => Wings}/FileController.php | 2 +- .../{ => Wings}/FileUploadController.php | 2 +- .../Wings/NetworkAllocationController.php | 140 ++++++ .../Servers/{ => Wings}/PowerController.php | 2 +- .../ResourceUtilizationController.php | 2 +- .../Servers/Wings/ScheduleController.php | 184 ++++++++ .../Servers/Wings/ScheduleTaskController.php | 175 ++++++++ .../Servers/{ => Wings}/ServerController.php | 2 +- .../Servers/Wings/SettingsController.php | 224 ++++++++++ .../Servers/Wings/StartupController.php | 99 +++++ .../{ => Wings}/WebsocketController.php | 2 +- .../Server/AuthenticateServerAccess.php | 4 +- .../Api/Client/Server/CheckDaemonType.php | 26 ++ .../Requests/Admin/Node/NodeFormRequest.php | 3 + .../Backups/BackupRemoteUploadController.php | 135 ++++++ .../Remote/Backups/BackupStatusController.php | 159 +++++++ app/Jobs/Server/ApplyEggChangeJob.php | 32 +- app/Models/Backup.php | 19 +- app/Models/Daemons/.info | 1 + app/Models/Daemons/Elytra.php | 93 ++++ app/Models/Daemons/Wings.php | 50 +++ app/Models/Node.php | 104 ++--- app/Models/Permission.php | 398 +++++++++--------- app/Models/Server.php | 30 +- .../Eloquent/BackupRepository.php | 45 ++ app/Repositories/Eloquent/NodeRepository.php | 12 + .../Elytra/DaemonCommandRepository.php | 37 ++ .../Elytra/DaemonConfigurationRepository.php | 50 +++ .../Elytra/DaemonFileRepository.php | 301 +++++++++++++ .../Elytra/DaemonPowerRepository.php | 35 ++ app/Repositories/Elytra/DaemonRepository.php | 69 +++ .../Elytra/DaemonServerRepository.php | 162 +++++++ .../Elytra/DaemonTransferRepository.php | 37 ++ .../Wings/DaemonBackupRepository.php | 97 +++++ .../Wings/DaemonFileRepository.php | 4 +- app/Repositories/Wings/DaemonRepository.php | 4 +- .../Wings/DaemonRevocationRepository.php | 28 ++ .../Backups/Wings/DeleteBackupService.php | 81 ++++ .../Backups/Wings/DownloadLinkService.php | 60 +++ .../Backups/Wings/InitiateBackupService.php | 134 ++++++ app/Services/Captcha/CaptchaManager.php | 5 +- .../Captcha/Providers/RecaptchaProvider.php | 8 +- app/Services/Elytra/Jobs/BackupJob.php | 11 +- .../Subdomain/SubdomainManagementService.php | 24 +- .../Api/Client/ServerTransformer.php | 244 +++++------ composer.json | 4 +- config/backups.php | 2 +- config/captcha.php | 2 +- config/javascript.php | 2 +- database/Factories/NodeFactory.php | 62 +-- .../2025_12_07_022523_wings_or_elytra.php | 28 ++ .../2026_01_02_044710_backup_disk.php | 28 ++ package.json | 5 +- pnpm-lock.yaml | 155 +++++++ .../themes/pterodactyl/js/admin/new-server.js | 38 +- .../pterodactyl/js/plugins/minecraft/eula.js | 12 +- resources/scripts/api/server/activity.ts | 4 +- .../scripts/api/server/applyEggChange.ts | 5 +- .../scripts/api/server/applyEggChangeSync.ts | 84 ++++ .../api/server/backups/createServerBackup.ts | 4 +- .../server/backups/deleteAllServerBackups.ts | 14 + .../api/server/backups/getBackupStatus.ts | 4 +- resources/scripts/api/server/backups/index.ts | 15 +- .../scripts/api/server/backups/retryBackup.ts | 4 +- .../server/databases/createServerDatabase.ts | 3 +- .../server/databases/deleteServerDatabase.ts | 3 +- .../server/databases/getServerDatabases.ts | 5 +- .../databases/rotateDatabasePassword.ts | 4 +- .../scripts/api/server/files/chmodFiles.ts | 3 +- .../scripts/api/server/files/compressFiles.ts | 3 +- .../scripts/api/server/files/copyFile.ts | 3 +- .../api/server/files/createDirectory.ts | 3 +- .../api/server/files/decompressFiles.ts | 3 +- .../scripts/api/server/files/deleteFiles.ts | 3 +- .../api/server/files/getFileContents.ts | 3 +- .../api/server/files/getFileDownloadUrl.ts | 3 +- .../api/server/files/getFileUploadUrl.ts | 3 +- .../scripts/api/server/files/loadDirectory.ts | 3 +- .../scripts/api/server/files/renameFiles.ts | 3 +- .../api/server/files/saveFileContents.ts | 3 +- resources/scripts/api/server/getServer.ts | 51 ++- .../api/server/getServerResourceUsage.ts | 4 +- .../scripts/api/server/getWebsocketToken.ts | 5 +- .../scripts/api/server/network/subdomain.ts | 1 + .../scripts/api/server/previewEggChange.ts | 4 +- .../api/server/processStartupCommand.ts | 4 +- .../scripts/api/server/reinstallServer.ts | 3 +- resources/scripts/api/server/renameServer.ts | 3 +- .../scripts/api/server/resetStartupCommand.ts | 3 +- .../scripts/api/server/revertDockerImage.ts | 5 +- .../schedules/createOrUpdateSchedule.ts | 24 +- .../schedules/createOrUpdateScheduleTask.ts | 3 +- .../api/server/schedules/deleteSchedule.ts | 3 +- .../server/schedules/deleteScheduleTask.ts | 3 +- .../api/server/schedules/getServerSchedule.ts | 3 +- .../server/schedules/getServerSchedules.ts | 3 +- .../schedules/triggerScheduleExecution.ts | 3 +- .../scripts/api/server/serverOperations.ts | 5 +- .../api/server/setSelectedDockerImage.ts | 5 +- .../api/server/updateStartupCommand.ts | 5 +- .../api/server/updateStartupVariable.ts | 6 +- .../api/server/users/createOrUpdateSubuser.ts | 3 +- .../scripts/api/server/users/deleteSubuser.ts | 3 +- .../api/server/users/getServerSubusers.ts | 3 +- .../scripts/api/swr/getServerAllocations.ts | 4 +- resources/scripts/api/swr/getServerBackups.ts | 4 +- resources/scripts/api/swr/getServerStartup.ts | 3 +- .../components/dashboard/ServerRow.tsx | 59 +-- .../server/backups/BackupContainer.tsx | 44 +- .../{ => elytra}/BackupContextMenu.tsx | 12 +- .../backups/{ => elytra}/BackupItem.tsx | 5 +- .../server/backups/useUnifiedBackups.ts | 6 +- .../components/server/console/StatBlock.tsx | 4 +- .../WingsOperationProgressModal.tsx | 260 ++++++++++++ .../server/shell/ShellContainer.tsx | 118 ++++-- resources/scripts/routers/ServerRouter.tsx | 8 +- resources/views/admin/eggs/new.blade.php | 2 +- resources/views/admin/index.blade.php | 5 +- resources/views/admin/nodes/index.blade.php | 28 +- resources/views/admin/nodes/new.blade.php | 64 ++- .../admin/nodes/view/configuration.blade.php | 7 +- .../views/admin/nodes/view/settings.blade.php | 84 +++- resources/views/admin/servers/index.blade.php | 4 +- resources/views/admin/servers/new.blade.php | 2 + .../admin/servers/view/startup.blade.php | 18 +- .../views/admin/settings/captcha.blade.php | 8 +- routes/api-application.php | 102 ++--- routes/api-client.php | 158 ++----- routes/api-remote.php | 27 +- routes/servers/elytra.php | 144 +++++++ routes/servers/wings.php | 119 ++++++ vite.config.ts | 35 +- 173 files changed, 5825 insertions(+), 1137 deletions(-) create mode 100644 app/Contracts/Daemon/Daemon.php create mode 100644 app/Enums/Captcha/Captchas.php create mode 100644 app/Enums/Daemon/Adapters.php create mode 100644 app/Enums/Daemon/DaemonType.php create mode 100644 app/Enums/Subdomain/Features.php create mode 100644 app/Enums/Subdomain/Providers.php create mode 100644 app/Http/Controllers/Api/Client/ServerController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/ActivityLogController.php rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/BackupsController.php (99%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/CommandController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/DatabaseController.php rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/ElytraJobsController.php (98%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/FileController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/FileUploadController.php rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/NetworkAllocationController.php (98%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/PowerController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/ResourceUtilizationController.php rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/ScheduleController.php (99%) rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/ScheduleTaskController.php (99%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/ServerController.php rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/SettingsController.php (62%) rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/StartupController.php (98%) rename app/Http/Controllers/Api/Client/Servers/{ => Elytra}/SubdomainController.php (98%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Elytra/WebsocketController.php rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/ActivityLogController.php (97%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/BackupController.php rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/CommandController.php (96%) rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/DatabaseController.php (98%) rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/FileController.php (99%) rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/FileUploadController.php (95%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/NetworkAllocationController.php rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/PowerController.php (93%) rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/ResourceUtilizationController.php (95%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/ScheduleController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/ScheduleTaskController.php rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/ServerController.php (94%) create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/SettingsController.php create mode 100644 app/Http/Controllers/Api/Client/Servers/Wings/StartupController.php rename app/Http/Controllers/Api/Client/Servers/{ => Wings}/WebsocketController.php (97%) create mode 100644 app/Http/Middleware/Api/Client/Server/CheckDaemonType.php create mode 100644 app/Http/Requests/Api/Remote/Backups/BackupRemoteUploadController.php create mode 100644 app/Http/Requests/Api/Remote/Backups/BackupStatusController.php create mode 100644 app/Models/Daemons/.info create mode 100644 app/Models/Daemons/Elytra.php create mode 100644 app/Models/Daemons/Wings.php create mode 100644 app/Repositories/Eloquent/BackupRepository.php create mode 100644 app/Repositories/Elytra/DaemonCommandRepository.php create mode 100644 app/Repositories/Elytra/DaemonConfigurationRepository.php create mode 100644 app/Repositories/Elytra/DaemonFileRepository.php create mode 100644 app/Repositories/Elytra/DaemonPowerRepository.php create mode 100644 app/Repositories/Elytra/DaemonRepository.php create mode 100644 app/Repositories/Elytra/DaemonServerRepository.php create mode 100644 app/Repositories/Elytra/DaemonTransferRepository.php create mode 100644 app/Repositories/Wings/DaemonBackupRepository.php create mode 100644 app/Repositories/Wings/DaemonRevocationRepository.php create mode 100644 app/Services/Backups/Wings/DeleteBackupService.php create mode 100644 app/Services/Backups/Wings/DownloadLinkService.php create mode 100644 app/Services/Backups/Wings/InitiateBackupService.php create mode 100644 database/migrations/2025_12_07_022523_wings_or_elytra.php create mode 100644 database/migrations/2026_01_02_044710_backup_disk.php create mode 100644 resources/scripts/api/server/applyEggChangeSync.ts create mode 100644 resources/scripts/api/server/backups/deleteAllServerBackups.ts rename resources/scripts/components/server/backups/{ => elytra}/BackupContextMenu.tsx (97%) rename resources/scripts/components/server/backups/{ => elytra}/BackupItem.tsx (98%) create mode 100644 resources/scripts/components/server/operations/WingsOperationProgressModal.tsx create mode 100644 routes/servers/elytra.php create mode 100644 routes/servers/wings.php diff --git a/.github/docker/entrypoint.sh b/.github/docker/entrypoint.sh index d7ced73a4..a3de9c14a 100644 --- a/.github/docker/entrypoint.sh +++ b/.github/docker/entrypoint.sh @@ -140,7 +140,7 @@ fi fi # Make a location and node for the panel php artisan p:location:make -n --short local --long Local - php artisan p:node:make -n --name local --description "Development Node" --locationId 1 --fqdn localhost --internal-fqdn $ELYTRA_INTERNAL_IP --public 1 --scheme http --proxy 0 --maxMemory 1024 --maxDisk 10240 --overallocateMemory 0 --overallocateDisk 0 + php artisan p:node:make -n --name local --description "Development Node" --locationId 1 --fqdn localhost --internal-fqdn $ELYTRA_INTERNAL_IP --public 1 --scheme http --proxy 0 --maxMemory 1024 --maxDisk 10240 --overallocateMemory 0 --overallocateDisk 0 --daemonType elytra echo "Adding dummy allocations..." if [ "$DB_CONNECTION" = "mysql" ] || [ "$DB_CONNECTION" = "mariadb" ]; then diff --git a/.gitignore b/.gitignore index 7cecd762a..22378573b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .git/ .vscode/ .env +.github/workflows/ci.yaml # Elytra binary diff --git a/app/Console/Commands/Node/MakeNodeCommand.php b/app/Console/Commands/Node/MakeNodeCommand.php index f3ba12223..aa0c1c09b 100644 --- a/app/Console/Commands/Node/MakeNodeCommand.php +++ b/app/Console/Commands/Node/MakeNodeCommand.php @@ -24,7 +24,9 @@ class MakeNodeCommand extends Command {--uploadSize= : Enter the maximum upload filesize.} {--daemonListeningPort= : Enter the wings listening port.} {--daemonSFTPPort= : Enter the wings SFTP listening port.} - {--daemonBase= : Enter the base folder.}'; + {--daemonBase= : Enter the base folder.} + {--daemonType= : Enter the daemon Backend.} + {--backupDisk= : Enter the Backup type}'; protected $description = 'Creates a new node on the system via the CLI.'; @@ -64,6 +66,8 @@ class MakeNodeCommand extends Command $data['daemonListen'] = $this->option('daemonListeningPort') ?? $this->ask('Enter the wings listening port', '8080'); $data['daemonSFTP'] = $this->option('daemonSFTPPort') ?? $this->ask('Enter the wings SFTP listening port', '2022'); $data['daemonBase'] = $this->option('daemonBase') ?? $this->ask('Enter the base folder', '/var/lib/pterodactyl/volumes'); + $data['daemonType'] = $this->option('daemonType') ?? $this->ask('Enter the daemon backend', 'elytra'); + $data['backupDisk'] = $this->option('backupDisk') ?? $this->ask('Enter the Backup Disk', 'rustic_local'); $node = $this->creationService->handle($data); $this->line('Successfully created a new node on the location ' . $data['location_id'] . ' with the name ' . $data['name'] . ' and has an id of ' . $node->id . '.'); diff --git a/app/Contracts/Daemon/Daemon.php b/app/Contracts/Daemon/Daemon.php new file mode 100644 index 000000000..6b860e7da --- /dev/null +++ b/app/Contracts/Daemon/Daemon.php @@ -0,0 +1,11 @@ +value => 'Disabled', + self::TURNSTILE->value => 'Cloudflare Turnstile', + self::HCAPTCHA->value => 'HCaptcha', + self::RECAPTCHA->value => 'Google ReCaptcha', + ]; + + + public static function all(): array + { + $result = []; + foreach (self::cases() as $case) { + $result[$case->value] = self::DESCRIPTION_MAP[$case->value]; + } + return $result; + } + + + public static function values(): array + { + return array_column(self::cases(), 'value'); + } +} diff --git a/app/Enums/Daemon/Adapters.php b/app/Enums/Daemon/Adapters.php new file mode 100644 index 000000000..52bd446ad --- /dev/null +++ b/app/Enums/Daemon/Adapters.php @@ -0,0 +1,52 @@ + self::all_elytra(), 'wings' => self::all_wings()]; + } + + + public static function all_elytra(): array + { + return array_column(self::ELYTRA, "value"); + } + + public static function all_wings(): array + { + return array_column(self::WINGS, "value"); + } + + public static function values(): array + { + return array_column(self::cases(), 'value'); + } +} diff --git a/app/Enums/Daemon/DaemonType.php b/app/Enums/Daemon/DaemonType.php new file mode 100644 index 000000000..54800dda8 --- /dev/null +++ b/app/Enums/Daemon/DaemonType.php @@ -0,0 +1,39 @@ +value => \Pterodactyl\Models\Daemons\Wings::class, + self::ELYTRA->value => \Pterodactyl\Models\Daemons\Elytra::class, + ]; + + private const RESOURCE_MAP = [ + self::WINGS->value => \Pterodactyl\Http\Controllers\Api\Client\Servers\Elytra\ResourceUtilizationController::class, + self::ELYTRA->value => \Pterodactyl\Http\Controllers\Api\Client\Servers\Wings\ResourceUtilizationController::class, + ]; + + public static function all(): array + { + return array_column(self::cases(), 'value', 'value'); + } + + public static function allResources(): array + { + return self::RESOURCE_MAP; + } + + public static function allClass(): array + { + return self::CLASS_MAP; + } + + public static function values(): array + { + return array_column(self::cases(), 'value'); + } +} diff --git a/app/Enums/Subdomain/Features.php b/app/Enums/Subdomain/Features.php new file mode 100644 index 000000000..d841dd63f --- /dev/null +++ b/app/Enums/Subdomain/Features.php @@ -0,0 +1,55 @@ +value => FactorioSubdomainFeature::class, + self::MINECRAFT->value => MinecraftSubdomainFeature::class, + self::RUST->value => RustSubdomainFeature::class, + self::SCPSL->value => ScpSlSubdomainFeature::class, + self::TEAMSPEAK->value => TeamSpeakSubdomainFeature::class, + self::VINTAGESTORY->value => VintageStorySubdomainFeature::class, + ]; + + public static function all(): array + { + $result = []; + foreach (self::cases() as $case) { + $result[$case->value] = $case->getClassName(); + } + return $result; + } + + public static function values(): array + { + return array_column(self::cases(), 'value'); + } + + public function getClassName(): string + { + return self::CLASS_MAP[$this->value]; + } + + public static function getClass(string $provider): string + { + return self::from($provider)->getClassName(); + } +} diff --git a/app/Enums/Subdomain/Providers.php b/app/Enums/Subdomain/Providers.php new file mode 100644 index 000000000..e8280a3e0 --- /dev/null +++ b/app/Enums/Subdomain/Providers.php @@ -0,0 +1,68 @@ +value => CloudflareProvider::class, + self::HETZNER->value => HetznerProvider::class, + self::ROUTE53->value => Route53Provider::class, + ]; + + private const DESCRIPTION_MAP = [ + self::CLOUDFLARE->value => 'Cloudflare DNS service', + self::HETZNER->value => 'Hetzner DNS Console', + self::ROUTE53->value => 'AWS Route53 Dns Service', + ]; + + + public static function all(): array + { + $result = []; + foreach (self::cases() as $case) { + $result[$case->value] = self::getClass($case->value); + } + return $result; + } + + /** + * Returns providers with name and description + */ + public static function allWithDescriptions(): array + { + $result = []; + foreach (self::cases() as $case) { + $result[$case->value] = [ + "name" => $case->value, + "description" => self::DESCRIPTION_MAP[$case->value] + ]; + } + + return $result; + } + + public static function values(): array + { + return array_column(self::cases(), 'value'); + } + + public function getClassName(): string + { + return self::CLASS_MAP[$this->value]; + } + + public static function getClass(string $provider): string + { + return self::from($provider)->getClassName(); + } +} diff --git a/app/Http/Controllers/Admin/NodeAutoDeployController.php b/app/Http/Controllers/Admin/NodeAutoDeployController.php index c53d8b9a4..2c38476e5 100644 --- a/app/Http/Controllers/Admin/NodeAutoDeployController.php +++ b/app/Http/Controllers/Admin/NodeAutoDeployController.php @@ -20,8 +20,7 @@ class NodeAutoDeployController extends Controller private ApiKeyRepository $repository, private Encrypter $encrypter, private KeyCreationService $keyCreationService, - ) { - } + ) {} /** * Generates a new API key for the logged-in user with only permission to read diff --git a/app/Http/Controllers/Admin/Nodes/NodeController.php b/app/Http/Controllers/Admin/Nodes/NodeController.php index c4ba0c61e..8209ec92f 100644 --- a/app/Http/Controllers/Admin/Nodes/NodeController.php +++ b/app/Http/Controllers/Admin/Nodes/NodeController.php @@ -8,28 +8,47 @@ use Pterodactyl\Models\Node; use Spatie\QueryBuilder\QueryBuilder; use Pterodactyl\Http\Controllers\Controller; use Illuminate\Contracts\View\Factory as ViewFactory; +use Pterodactyl\Repositories\Eloquent\NodeRepository; +use Illuminate\Support\Facades\Log; class NodeController extends Controller { - /** - * NodeController constructor. - */ - public function __construct(private ViewFactory $view) - { - } + /** + * NodeController constructor. + */ + public function __construct(private ViewFactory $view) {} - /** - * Returns a listing of nodes on the system. - */ - public function index(Request $request): View - { - $nodes = QueryBuilder::for( - Node::query()->with('location')->withCount('servers') - ) - ->allowedFilters(['uuid', 'name']) - ->allowedSorts(['id']) - ->paginate(25); + /** + * Returns a listing of nodes on the system. + */ + public function index(Request $request): View + { + $nodes = QueryBuilder::for( + Node::query()->with('location')->withCount('servers') + ) + ->allowedFilters(['uuid', 'name']) + ->allowedSorts(['id']) + ->paginate(25); - return $this->view->make('admin.nodes.index', ['nodes' => $nodes]); - } + foreach ($nodes as $node) { + $stats = app('Pterodactyl\Repositories\Eloquent\NodeRepository')->getUsageStatsRaw($node); + // NOTE: Pre-creating stats so we donn't do it in the blade + + $memoryPercent = ($stats['memory']['value'] / $stats['memory']['base_limit']) * 100; + $diskPercent = ($stats['disk']['value'] / $stats['disk']['base_limit']) * 100; + + $node->memory_percent = round($memoryPercent); + $node->memory_color = $memoryPercent < 50 ? '#50af51' : ($memoryPercent < 70 ? '#e0a800' : '#d9534f'); + $node->allocated_memory = humanizeSize($stats['memory']['value'] * 1024 * 1024); + $node->total_memory = humanizeSize($stats['memory']['max'] * 1024 * 1024); + + $node->disk_percent = round($diskPercent); + $node->disk_color = $diskPercent < 50 ? '#50af51' : ($diskPercent < 70 ? '#e0a800' : '#d9534f'); + $node->allocated_disk = humanizeSize($stats['disk']['value'] * 1024 * 1024); + $node->total_disk = humanizeSize($stats['disk']['max'] * 1024 * 1024); + } + + + return $this->view->make('admin.nodes.index', ['nodes' => $nodes]); + } } diff --git a/app/Http/Controllers/Admin/Nodes/NodeViewController.php b/app/Http/Controllers/Admin/Nodes/NodeViewController.php index acd44c2b7..4f6e7931f 100644 --- a/app/Http/Controllers/Admin/Nodes/NodeViewController.php +++ b/app/Http/Controllers/Admin/Nodes/NodeViewController.php @@ -16,6 +16,8 @@ use Pterodactyl\Services\Helpers\SoftwareVersionService; use Pterodactyl\Repositories\Eloquent\LocationRepository; use Pterodactyl\Repositories\Eloquent\AllocationRepository; use Illuminate\Support\Facades\DB; +use Pterodactyl\Enums\Daemon\DaemonType; +use Pterodactyl\Enums\Daemon\Adapters; class NodeViewController extends Controller { @@ -39,10 +41,11 @@ class NodeViewController extends Controller public function index(Request $request, Node $node): View { $node = $this->repository->loadLocationAndServerCount($node); + $stats = $this->repository->getUsageStats($node); return $this->view->make('admin.nodes.view.index', [ 'node' => $node, - 'stats' => $this->repository->getUsageStats($node), + 'stats' => $stats, 'version' => $this->versionService, ]); } @@ -55,6 +58,8 @@ class NodeViewController extends Controller return $this->view->make('admin.nodes.view.settings', [ 'node' => $node, 'locations' => $this->locationRepository->all(), + 'daemonTypes' => DaemonType::all(), + 'backupDisks' => Adapters::all_sorted(), ]); } @@ -76,7 +81,7 @@ class NodeViewController extends Controller $this->plainInject(['node' => Collection::wrap($node)->only(['id'])]); switch (DB::getPdo()->getAttribute(DB::getPdo()::ATTR_DRIVER_NAME)) { - case 'mysql': + default: return $this->view->make('admin.nodes.view.allocation', [ 'node' => $node, 'allocations' => Allocation::query()->where('node_id', $node->id) diff --git a/app/Http/Controllers/Admin/NodesController.php b/app/Http/Controllers/Admin/NodesController.php index b71493292..c19cfcb63 100644 --- a/app/Http/Controllers/Admin/NodesController.php +++ b/app/Http/Controllers/Admin/NodesController.php @@ -9,6 +9,8 @@ use Illuminate\Http\Response; use Pterodactyl\Models\Allocation; use Illuminate\Http\RedirectResponse; use Prologue\Alerts\AlertsMessageBag; +use Pterodactyl\Enums\Daemon\Adapters; +use Pterodactyl\Enums\Daemon\DaemonType; use Illuminate\View\Factory as ViewFactory; use Pterodactyl\Http\Controllers\Controller; use Pterodactyl\Services\Nodes\NodeUpdateService; @@ -45,8 +47,7 @@ class NodesController extends Controller protected NodeUpdateService $updateService, protected SoftwareVersionService $versionService, protected ViewFactory $view, - ) { - } + ) {} /** * Displays create new node page. @@ -60,7 +61,7 @@ class NodesController extends Controller return redirect()->route('admin.locations'); } - return $this->view->make('admin.nodes.new', ['locations' => $locations]); + return $this->view->make('admin.nodes.new', ['locations' => $locations, 'daemonTypes' => DaemonType::all(), 'backupDisks' => Adapters::all_sorted()]); } /** diff --git a/app/Http/Controllers/Admin/Servers/CreateServerController.php b/app/Http/Controllers/Admin/Servers/CreateServerController.php index 0bf26df49..9c71e4198 100644 --- a/app/Http/Controllers/Admin/Servers/CreateServerController.php +++ b/app/Http/Controllers/Admin/Servers/CreateServerController.php @@ -25,8 +25,7 @@ class CreateServerController extends Controller private NodeRepository $nodeRepository, private ServerCreationService $creationService, private ViewFactory $view, - ) { - } + ) {} /** * Displays the create server page. diff --git a/app/Http/Controllers/Admin/Servers/ServerController.php b/app/Http/Controllers/Admin/Servers/ServerController.php index 430c3f2b9..b330c23be 100644 --- a/app/Http/Controllers/Admin/Servers/ServerController.php +++ b/app/Http/Controllers/Admin/Servers/ServerController.php @@ -16,9 +16,7 @@ class ServerController extends Controller /** * ServerController constructor. */ - public function __construct(private ViewFactory $view) - { - } + public function __construct(private ViewFactory $view) {} /** * Returns all the servers that exist on the system using a paginated result set. If diff --git a/app/Http/Controllers/Admin/Servers/ServerViewController.php b/app/Http/Controllers/Admin/Servers/ServerViewController.php index 1bf731cf1..2850d84c6 100644 --- a/app/Http/Controllers/Admin/Servers/ServerViewController.php +++ b/app/Http/Controllers/Admin/Servers/ServerViewController.php @@ -10,6 +10,7 @@ use Pterodactyl\Exceptions\DisplayException; use Pterodactyl\Http\Controllers\Controller; use Pterodactyl\Services\Servers\EnvironmentService; use Illuminate\Contracts\View\Factory as ViewFactory; +use Illuminate\Support\Facades\Log; use Pterodactyl\Repositories\Eloquent\NestRepository; use Pterodactyl\Repositories\Eloquent\NodeRepository; use Pterodactyl\Repositories\Eloquent\MountRepository; @@ -34,8 +35,7 @@ class ServerViewController extends Controller private ServerRepository $repository, private EnvironmentService $environmentService, private ViewFactory $view, - ) { - } + ) {} /** * Returns the index view for a server. diff --git a/app/Http/Controllers/Admin/Settings/CaptchaController.php b/app/Http/Controllers/Admin/Settings/CaptchaController.php index 5072be2b5..289cd3352 100644 --- a/app/Http/Controllers/Admin/Settings/CaptchaController.php +++ b/app/Http/Controllers/Admin/Settings/CaptchaController.php @@ -12,6 +12,7 @@ use Pterodactyl\Services\Captcha\CaptchaManager; use Illuminate\Contracts\Encryption\Encrypter; use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface; use Pterodactyl\Http\Requests\Admin\Settings\CaptchaSettingsFormRequest; +use Pterodactyl\Enums\Captcha\Captchas; class CaptchaController extends Controller { @@ -32,13 +33,9 @@ class CaptchaController extends Controller */ public function index(): View { + return $this->view->make('admin.settings.captcha', [ - 'providers' => [ - 'none' => 'Disabled', - 'turnstile' => 'Cloudflare Turnstile', - 'hcaptcha' => 'hCaptcha', - 'recaptcha' => 'Google reCAPTCHA', - ], + 'providers' => Captchas::all(), ]); } @@ -51,13 +48,13 @@ class CaptchaController extends Controller public function update(CaptchaSettingsFormRequest $request): RedirectResponse { $values = $request->normalize(); - + foreach ($values as $key => $value) { // Encrypt secret keys before storing if (in_array($key, \Pterodactyl\Providers\SettingsServiceProvider::getEncryptedKeys()) && !empty($value)) { $value = $this->encrypter->encrypt($value); } - + $this->settings->set('settings::' . $key, $value); } diff --git a/app/Http/Controllers/Admin/Settings/DomainsController.php b/app/Http/Controllers/Admin/Settings/DomainsController.php index c292bdacb..8cf70ec3f 100644 --- a/app/Http/Controllers/Admin/Settings/DomainsController.php +++ b/app/Http/Controllers/Admin/Settings/DomainsController.php @@ -11,6 +11,7 @@ use Pterodactyl\Services\Subdomain\SubdomainManagementService; use Pterodactyl\Exceptions\Dns\DnsProviderException; use Illuminate\Contracts\View\Factory as ViewFactory; use Pterodactyl\Http\Requests\Admin\Settings\DomainFormRequest; +use Pterodactyl\Enums\Subdomain\Providers; class DomainsController extends Controller { @@ -220,20 +221,7 @@ class DomainsController extends Controller */ private function getAvailableProviders(): array { - return [ - 'cloudflare' => [ - 'name' => 'Cloudflare', - 'description' => 'Cloudflare DNS service', - ], - 'hetzner' => [ - 'name' => 'Hetzner', - 'description' => 'Hetzner DNS Console', - ], - 'route53' => [ - 'name' => 'Route53', - 'description' => 'AWS Route53 Dns Service', - ], - ]; + return Providers::allWithDescriptions(); } /** @@ -241,11 +229,7 @@ class DomainsController extends Controller */ private function getProviderClass(string $provider): string { - $providers = [ - 'cloudflare' => \Pterodactyl\Services\Dns\Providers\CloudflareProvider::class, - 'hetzner' => \Pterodactyl\Services\Dns\Providers\HetznerProvider::class, - 'route53' => \Pterodactyl\Services\Dns\Providers\Route53Provider::class, - ]; + $providers = Providers::all(); if (!isset($providers[$provider])) { throw new \Exception("Unsupported DNS provider: {$provider}"); @@ -254,4 +238,3 @@ class DomainsController extends Controller return $providers[$provider]; } } - diff --git a/app/Http/Controllers/Api/Client/ClientController.php b/app/Http/Controllers/Api/Client/ClientController.php index 8a0364611..26a1007a7 100644 --- a/app/Http/Controllers/Api/Client/ClientController.php +++ b/app/Http/Controllers/Api/Client/ClientController.php @@ -37,6 +37,7 @@ class ClientController extends ClientApiController 'name', 'description', 'external_id', + 'daemonType', AllowedFilter::custom('*', new MultiFieldServerFilter()), ]); diff --git a/app/Http/Controllers/Api/Client/ServerController.php b/app/Http/Controllers/Api/Client/ServerController.php new file mode 100644 index 000000000..7a325558a --- /dev/null +++ b/app/Http/Controllers/Api/Client/ServerController.php @@ -0,0 +1,53 @@ +loadMissing('node'); + + $daemonType = $server->node?->daemonType; + return $this->fractal->item($server) + ->transformWith($this->getTransformer(ServerTransformer::class)) + ->addMeta([ + 'daemonType' => $daemonType, + 'is_server_owner' => $request->user()->id === $server->owner_id, + 'user_permissions' => $this->permissionsService->handle($server, $request->user()), + ]) + ->toArray(); + } + + public function resources(GetServerRequest $request, Server $server): array + { + $server->loadMissing('node'); + + $daemonType = $server->node?->daemonType ?? 'elytra'; + $controllers = DaemonType::allResources(); + $controllerClass = $controllers[$daemonType]; + + $controller = app($controllerClass); + return $controller->__invoke($request, $server); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/ActivityLogController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/ActivityLogController.php new file mode 100644 index 000000000..1d1581a5d --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/ActivityLogController.php @@ -0,0 +1,54 @@ +authorize(Permission::ACTION_ACTIVITY_READ, $server); + + $activity = QueryBuilder::for($server->activity()) + ->with('actor') + ->allowedSorts(['timestamp']) + ->allowedFilters([AllowedFilter::partial('event')]) + ->whereNotIn('activity_logs.event', ActivityLog::DISABLED_EVENTS) + ->when(config('activity.hide_admin_activity'), function (Builder $builder) use ($server) { + // We could do this with a query and a lot of joins, but that gets pretty + // painful so for now we'll execute a simpler query. + $subusers = $server->subusers()->pluck('user_id')->merge($server->owner_id); + + $builder->select('activity_logs.*') + ->leftJoin('users', function (JoinClause $join) { + $join->on('users.id', 'activity_logs.actor_id') + ->where('activity_logs.actor_type', (new User())->getMorphClass()); + }) + ->where(function (Builder $builder) use ($subusers) { + $builder->whereNull('users.id') + ->orWhere('users.root_admin', 0) + ->orWhereIn('users.id', $subusers); + }); + }) + ->paginate(min($request->query('per_page', 25), 100)) + ->appends($request->query()); + + return $this->fractal->collection($activity) + ->transformWith($this->getTransformer(ActivityLogTransformer::class)) + ->toArray(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/BackupsController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php similarity index 99% rename from app/Http/Controllers/Api/Client/Servers/BackupsController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php index de54afde9..65df79e8c 100644 --- a/app/Http/Controllers/Api/Client/Servers/BackupsController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php @@ -1,6 +1,6 @@ count($backupUuids), ]); } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/CommandController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/CommandController.php new file mode 100644 index 000000000..3432ff642 --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/CommandController.php @@ -0,0 +1,54 @@ +repository->setServer($server)->send($request->input('command')); + } catch (DaemonConnectionException $exception) { + $previous = $exception->getPrevious(); + + if ($previous instanceof BadResponseException) { + if ( + $previous->getResponse() instanceof ResponseInterface + && $previous->getResponse()->getStatusCode() === Response::HTTP_BAD_GATEWAY + ) { + throw new HttpException(Response::HTTP_BAD_GATEWAY, 'Server must be online in order to send commands.', $exception); + } + } + + throw $exception; + } + + Activity::event('server:console.command')->property('command', $request->input('command'))->log(); + + return $this->returnNoContent(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/DatabaseController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/DatabaseController.php new file mode 100644 index 000000000..85bc3291e --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/DatabaseController.php @@ -0,0 +1,102 @@ +fractal->collection($server->databases) + ->transformWith($this->getTransformer(DatabaseTransformer::class)) + ->toArray(); + } + + /** + * Create a new database for the given server and return it. + * + * @throws \Throwable + * @throws \Pterodactyl\Exceptions\Service\Database\TooManyDatabasesException + * @throws \Pterodactyl\Exceptions\Service\Database\DatabaseClientFeatureNotEnabledException + */ + public function store(StoreDatabaseRequest $request, Server $server): array + { + $database = $this->deployDatabaseService->handle($server, $request->validated()); + + Activity::event('server:database.create') + ->subject($database) + ->property('name', $database->database) + ->log(); + + return $this->fractal->item($database) + ->parseIncludes(['password']) + ->transformWith($this->getTransformer(DatabaseTransformer::class)) + ->toArray(); + } + + /** + * Rotates the password for the given server model and returns a fresh instance to + * the caller. + * + * @throws \Throwable + */ + public function rotatePassword(RotatePasswordRequest $request, Server $server, Database $database): array + { + $this->passwordService->handle($database); + $database->refresh(); + + Activity::event('server:database.rotate-password') + ->subject($database) + ->property('name', $database->database) + ->log(); + + return $this->fractal->item($database) + ->parseIncludes(['password']) + ->transformWith($this->getTransformer(DatabaseTransformer::class)) + ->toArray(); + } + + /** + * Removes a database from the server. + * + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function delete(DeleteDatabaseRequest $request, Server $server, Database $database): Response + { + $this->managementService->delete($database); + + Activity::event('server:database.delete') + ->subject($database) + ->property('name', $database->database) + ->log(); + + return new Response('', Response::HTTP_NO_CONTENT); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/ElytraJobsController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/ElytraJobsController.php similarity index 98% rename from app/Http/Controllers/Api/Client/Servers/ElytraJobsController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/ElytraJobsController.php index dcb2da065..67e58bfed 100644 --- a/app/Http/Controllers/Api/Client/Servers/ElytraJobsController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/ElytraJobsController.php @@ -1,6 +1,6 @@ fileRepository + ->setServer($server) + ->getDirectory($request->get('directory') ?? '/'); + + return $this->fractal->collection($contents) + ->transformWith($this->getTransformer(FileObjectTransformer::class)) + ->toArray(); + } + + /** + * Return the contents of a specified file for the user. + * + * @throws \Throwable + */ + public function contents(GetFileContentsRequest $request, Server $server): Response + { + $response = $this->fileRepository->setServer($server)->getContent( + $request->get('file'), + config('pterodactyl.files.max_edit_size') + ); + + Activity::event('server:file.read')->property('file', $request->get('file'))->log(); + + return new Response($response, Response::HTTP_OK, ['Content-Type' => 'text/plain']); + } + + /** + * Generates a one-time token with a link that the user can use to + * download a given file. + * + * @throws \Throwable + */ + public function download(GetFileContentsRequest $request, Server $server): array + { + $token = $this->jwtService + ->setExpiresAt(CarbonImmutable::now()->addMinutes(15)) + ->setUser($request->user()) + ->setClaims([ + 'file_path' => rawurldecode($request->get('file')), + 'server_uuid' => $server->uuid, + ]) + ->handle($server->node, $request->user()->id . $server->uuid); + + Activity::event('server:file.download')->property('file', $request->get('file'))->log(); + + return [ + 'object' => 'signed_url', + 'attributes' => [ + 'url' => sprintf( + '%s/download/file?token=%s', + $server->node->getConnectionAddress(), + $token->toString() + ), + ], + ]; + } + + /** + * Writes the contents of the specified file to the server. + * + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function write(WriteFileContentRequest $request, Server $server): JsonResponse + { + $this->fileRepository->setServer($server)->putContent($request->get('file'), $request->getContent()); + + Activity::event('server:file.write')->property('file', $request->get('file'))->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Creates a new folder on the server. + * + * @throws \Throwable + */ + public function create(CreateFolderRequest $request, Server $server): JsonResponse + { + $this->fileRepository + ->setServer($server) + ->createDirectory($request->input('name'), $request->input('root', '/')); + + Activity::event('server:file.create-directory') + ->property('name', $request->input('name')) + ->property('directory', $request->input('root')) + ->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Renames a file on the remote machine. + * + * @throws \Throwable + */ + public function rename(RenameFileRequest $request, Server $server): JsonResponse + { + $this->fileRepository + ->setServer($server) + ->renameFiles($request->input('root'), $request->input('files')); + + Activity::event('server:file.rename') + ->property('directory', $request->input('root')) + ->property('files', $request->input('files')) + ->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Copies a file on the server. + * + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function copy(CopyFileRequest $request, Server $server): JsonResponse + { + $this->fileRepository + ->setServer($server) + ->copyFile($request->input('location')); + + Activity::event('server:file.copy')->property('file', $request->input('location'))->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function compress(CompressFilesRequest $request, Server $server): array + { + $file = $this->fileRepository->setServer($server)->compressFiles( + $request->input('root'), + $request->input('files') + ); + + Activity::event('server:file.compress') + ->property('directory', $request->input('root')) + ->property('files', $request->input('files')) + ->log(); + + return $this->fractal->item($file) + ->transformWith($this->getTransformer(FileObjectTransformer::class)) + ->toArray(); + } + + /** + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function decompress(DecompressFilesRequest $request, Server $server): JsonResponse + { + set_time_limit(300); + + $this->fileRepository->setServer($server)->decompressFile( + $request->input('root'), + $request->input('file') + ); + + Activity::event('server:file.decompress') + ->property('directory', $request->input('root')) + ->property('files', $request->input('file')) + ->log(); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } + + /** + * Deletes files or folders for the server in the given root directory. + * + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function delete(DeleteFileRequest $request, Server $server): JsonResponse + { + $this->fileRepository->setServer($server)->deleteFiles( + $request->input('root'), + $request->input('files') + ); + + Activity::event('server:file.delete') + ->property('directory', $request->input('root')) + ->property('files', $request->input('files')) + ->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Updates file permissions for file(s) in the given root directory. + * + * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException + */ + public function chmod(ChmodFilesRequest $request, Server $server): JsonResponse + { + $this->fileRepository->setServer($server)->chmodFiles( + $request->input('root'), + $request->input('files') + ); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Requests that a file be downloaded from a remote location by Wings. + * + * @throws \Throwable + */ + public function pull(PullFileRequest $request, Server $server): JsonResponse + { + $this->fileRepository->setServer($server)->pull( + $request->input('url'), + $request->input('directory'), + $request->safe(['filename', 'use_header', 'foreground']) + ); + + Activity::event('server:file.pull') + ->property('directory', $request->input('directory')) + ->property('url', $request->input('url')) + ->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/FileUploadController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/FileUploadController.php new file mode 100644 index 000000000..f9530609f --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/FileUploadController.php @@ -0,0 +1,54 @@ + 'signed_url', + 'attributes' => [ + 'url' => $this->getUploadUrl($server, $request->user()), + ], + ]); + } + + /** + * Returns an url where files can be uploaded to. + */ + protected function getUploadUrl(Server $server, User $user): string + { + $token = $this->jwtService + ->setExpiresAt(CarbonImmutable::now()->addMinutes(15)) + ->setUser($user) + ->setClaims(['server_uuid' => $server->uuid]) + ->handle($server->node, $user->id . $server->uuid); + + return sprintf( + '%s/upload/file?token=%s', + $server->node->getConnectionAddress(), + $token->toString() + ); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/NetworkAllocationController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/NetworkAllocationController.php similarity index 98% rename from app/Http/Controllers/Api/Client/Servers/NetworkAllocationController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/NetworkAllocationController.php index 11a573423..6808b645f 100644 --- a/app/Http/Controllers/Api/Client/Servers/NetworkAllocationController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/NetworkAllocationController.php @@ -1,6 +1,6 @@ repository->setServer($server)->send( + $request->input('signal') + ); + + Activity::event(strtolower("server:power.{$request->input('signal')}"))->log(); + + return $this->returnNoContent(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/ResourceUtilizationController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/ResourceUtilizationController.php new file mode 100644 index 000000000..42f15b312 --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/ResourceUtilizationController.php @@ -0,0 +1,41 @@ +uuid"; + $stats = $this->cache->remember($key, Carbon::now()->addSeconds(20), function () use ($server) { + return $this->repository->setServer($server)->getDetails(); + }); + + return $this->fractal->item($stats) + ->transformWith($this->getTransformer(StatsTransformer::class)) + ->toArray(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/ScheduleController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/ScheduleController.php similarity index 99% rename from app/Http/Controllers/Api/Client/Servers/ScheduleController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/ScheduleController.php index bfbbf5123..525a60bc0 100644 --- a/app/Http/Controllers/Api/Client/Servers/ScheduleController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/ScheduleController.php @@ -1,6 +1,6 @@ fractal->item($server) + ->transformWith($this->getTransformer(ServerTransformer::class)) + ->addMeta([ + 'is_server_owner' => $request->user()->id === $server->owner_id, + 'user_permissions' => $this->permissionsService->handle($server, $request->user()), + ]) + ->toArray(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/SettingsController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/SettingsController.php similarity index 62% rename from app/Http/Controllers/Api/Client/Servers/SettingsController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/SettingsController.php index 364192397..6be3f1691 100644 --- a/app/Http/Controllers/Api/Client/Servers/SettingsController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/SettingsController.php @@ -1,6 +1,6 @@ image; $defaultImage = $server->getDefaultDockerImage(); - + if (empty($defaultImage)) { throw new BadRequestHttpException('No default docker image available for this server\'s egg.'); } @@ -140,98 +140,95 @@ class SettingsController extends ClientApiController return new JsonResponse([], Response::HTTP_NO_CONTENT); } - public function previewEggChange(PreviewEggRequest $request, Server $server): JsonResponse - { - try { - $eggId = $request->input('egg_id'); - $nestId = $request->input('nest_id'); - - $previewData = $this->eggChangeService->previewEggChange($server, $eggId, $nestId); - - // Log the preview action - Activity::event('server:settings.egg-preview') - ->property([ - 'current_egg_id' => $server->egg_id, - 'preview_egg_id' => $eggId, - 'preview_nest_id' => $nestId, - ]) - ->log(); - - return new JsonResponse($previewData); - } catch (Exception $e) { - Log::error('Failed to preview egg change', [ - 'server_id' => $server->id, - 'egg_id' => $request->input('egg_id'), - 'nest_id' => $request->input('nest_id'), - 'error' => $e->getMessage(), - ]); - - throw $e; - } - } + public function previewEggChange(PreviewEggRequest $request, Server $server): JsonResponse + { + try { + $eggId = $request->input('egg_id'); + $nestId = $request->input('nest_id'); - /** - * Apply egg configuration changes asynchronously. - * This dispatches a background job to handle the complete egg change process. - * - * @throws \Throwable - */ - public function applyEggChange(ApplyEggChangeRequest $request, Server $server): JsonResponse - { - try { - $eggId = $request->input('egg_id'); - $nestId = $request->input('nest_id'); - $dockerImage = $request->input('docker_image'); - $startupCommand = $request->input('startup_command'); - $environment = $request->input('environment', []); - $shouldBackup = $request->input('should_backup', false); - $shouldWipe = $request->input('should_wipe', false); - - $result = $this->eggChangeService->applyEggChangeAsync( - $server, - $request->user(), - $eggId, - $nestId, - $dockerImage, - $startupCommand, - $environment, - $shouldBackup, - $shouldWipe - ); - - Activity::event('server:software.change-queued') - ->property([ - 'operation_id' => $result['operation_id'], - 'from_egg' => $server->egg_id, - 'to_egg' => $eggId, - 'should_backup' => $shouldBackup, - 'should_wipe' => $shouldWipe, - ]) - ->log(); - - return new JsonResponse($result, Response::HTTP_ACCEPTED); - } catch (Exception $e) { - Log::error('Failed to apply egg change', [ - 'server_id' => $server->id, - 'error' => $e->getMessage(), - ]); - - throw $e; - } - } + $previewData = $this->eggChangeService->previewEggChange($server, $eggId, $nestId); - public function getOperationStatus(Server $server, string $operationId): JsonResponse - { - $operation = $this->operationService->getOperation($server, $operationId); - return new JsonResponse($this->operationService->formatOperationResponse($operation)); - } + // Log the preview action + Activity::event('server:settings.egg-preview') + ->property([ + 'current_egg_id' => $server->egg_id, + 'preview_egg_id' => $eggId, + 'preview_nest_id' => $nestId, + ]) + ->log(); - public function getServerOperations(Server $server): JsonResponse - { - $operations = $this->operationService->getServerOperations($server); - return new JsonResponse(['operations' => $operations]); - } + return new JsonResponse($previewData); + } catch (Exception $e) { + Log::error('Failed to preview egg change', [ + 'server_id' => $server->id, + 'egg_id' => $request->input('egg_id'), + 'nest_id' => $request->input('nest_id'), + 'error' => $e->getMessage(), + ]); - + throw $e; + } + } + + /** + * Apply egg configuration changes asynchronously. + * This dispatches a background job to handle the complete egg change process. + * + * @throws \Throwable + */ + public function applyEggChange(ApplyEggChangeRequest $request, Server $server): JsonResponse + { + try { + $eggId = $request->input('egg_id'); + $nestId = $request->input('nest_id'); + $dockerImage = $request->input('docker_image'); + $startupCommand = $request->input('startup_command'); + $environment = $request->input('environment', []); + $shouldBackup = $request->input('should_backup', false); + $shouldWipe = $request->input('should_wipe', false); + + $result = $this->eggChangeService->applyEggChangeAsync( + $server, + $request->user(), + $eggId, + $nestId, + $dockerImage, + $startupCommand, + $environment, + $shouldBackup, + $shouldWipe + ); + + Activity::event('server:software.change-queued') + ->property([ + 'operation_id' => $result['operation_id'], + 'from_egg' => $server->egg_id, + 'to_egg' => $eggId, + 'should_backup' => $shouldBackup, + 'should_wipe' => $shouldWipe, + ]) + ->log(); + + return new JsonResponse($result, Response::HTTP_ACCEPTED); + } catch (Exception $e) { + Log::error('Failed to apply egg change', [ + 'server_id' => $server->id, + 'error' => $e->getMessage(), + ]); + + throw $e; + } + } + + public function getOperationStatus(Server $server, string $operationId): JsonResponse + { + $operation = $this->operationService->getOperation($server, $operationId); + return new JsonResponse($this->operationService->formatOperationResponse($operation)); + } + + public function getServerOperations(Server $server): JsonResponse + { + $operations = $this->operationService->getServerOperations($server); + return new JsonResponse(['operations' => $operations]); + } } - diff --git a/app/Http/Controllers/Api/Client/Servers/StartupController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/StartupController.php similarity index 98% rename from app/Http/Controllers/Api/Client/Servers/StartupController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/StartupController.php index dfee51a52..cbceedc47 100644 --- a/app/Http/Controllers/Api/Client/Servers/StartupController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/StartupController.php @@ -1,6 +1,6 @@ input('command', $server->startup); - + // Temporarily update the server's startup command for processing $originalStartup = $server->startup; $server->startup = $command; - + $processedCommand = $this->startupCommandService->handle($server, false); - + // Restore original startup command $server->startup = $originalStartup; - + return [ 'processed_command' => $processedCommand, ]; diff --git a/app/Http/Controllers/Api/Client/Servers/SubdomainController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/SubdomainController.php similarity index 98% rename from app/Http/Controllers/Api/Client/Servers/SubdomainController.php rename to app/Http/Controllers/Api/Client/Servers/Elytra/SubdomainController.php index 2901cd8fb..294309982 100644 --- a/app/Http/Controllers/Api/Client/Servers/SubdomainController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/SubdomainController.php @@ -1,6 +1,6 @@ attributes->get('server'); - + $this->authorize(Permission::ACTION_ALLOCATION_READ, $server); try { @@ -73,15 +73,15 @@ class SubdomainController extends ClientApiController public function store(CreateSubdomainRequest $request): JsonResponse { $server = $request->attributes->get('server'); - + $this->authorize(Permission::ACTION_ALLOCATION_CREATE, $server); - + $data = $request->validated(); try { // Get ALL active subdomains for this server (more than one should be impossible, but PHP makes me angry) $existingSubdomains = $server->subdomains()->where('is_active', true)->get(); - + $domain = Domain::where('id', $data['domain_id']) ->where('is_active', true) ->first(); @@ -148,7 +148,7 @@ class SubdomainController extends ClientApiController public function destroy(Request $request): JsonResponse { $server = $request->attributes->get('server'); - + $this->authorize(Permission::ACTION_ALLOCATION_DELETE, $server); try { @@ -179,7 +179,6 @@ class SubdomainController extends ClientApiController return response()->json([ 'error' => 'Failed to delete subdomain(s).' ], 422); - } } @@ -189,9 +188,9 @@ class SubdomainController extends ClientApiController public function checkAvailability(Request $request): JsonResponse { $server = $request->attributes->get('server'); - + $this->authorize(Permission::ACTION_ALLOCATION_READ, $server); - + $request->validate([ 'subdomain' => 'required|string|min:1|max:63|regex:/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/', 'domain_id' => 'required|integer|exists:domains,id', @@ -221,4 +220,5 @@ class SubdomainController extends ClientApiController ], 422); } } -} \ No newline at end of file +} + diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/WebsocketController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/WebsocketController.php new file mode 100644 index 000000000..114d9b963 --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/WebsocketController.php @@ -0,0 +1,73 @@ +user(); + if ($user->cannot(Permission::ACTION_WEBSOCKET_CONNECT, $server)) { + throw new HttpForbiddenException('You do not have permission to connect to this server\'s websocket.'); + } + + $permissions = $this->permissionsService->handle($server, $user); + + $node = $server->node; + if (!is_null($server->transfer)) { + // Check if the user has permissions to receive transfer logs. + if (!in_array('admin.websocket.transfer', $permissions)) { + throw new HttpForbiddenException('You do not have permission to view server transfer logs.'); + } + + // Redirect the websocket request to the new node if the server has been archived. + if ($server->transfer->archived) { + $node = $server->transfer->newNode; + } + } + + $token = $this->jwtService + ->setExpiresAt(CarbonImmutable::now()->addMinutes(10)) + ->setUser($request->user()) + ->setClaims([ + 'server_uuid' => $server->uuid, + 'permissions' => $permissions, + ]) + ->handle($node, $user->id . $server->uuid); + + $socket = str_replace(['https://', 'http://'], ['wss://', 'ws://'], $node->getBrowserConnectionAddress()); + + return new JsonResponse([ + 'data' => [ + 'token' => $token->toString(), + 'socket' => $socket . sprintf('/api/servers/%s/ws', $server->uuid), + ], + ]); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/ActivityLogController.php b/app/Http/Controllers/Api/Client/Servers/Wings/ActivityLogController.php similarity index 97% rename from app/Http/Controllers/Api/Client/Servers/ActivityLogController.php rename to app/Http/Controllers/Api/Client/Servers/Wings/ActivityLogController.php index f569c4122..33f2e1583 100644 --- a/app/Http/Controllers/Api/Client/Servers/ActivityLogController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/ActivityLogController.php @@ -1,6 +1,6 @@ user()->can(Permission::ACTION_BACKUP_READ, $server)) { + throw new AuthorizationException(); + } + + $limit = min($request->query('per_page') ?? 20, 50); + + return $this->fractal->collection($server->backups()->paginate($limit)) + ->transformWith($this->getTransformer(BackupTransformer::class)) + ->addMeta([ + 'backup_count' => $this->repository->getNonFailedBackups($server)->count(), + ]) + ->toArray(); + } + + /** + * Starts the backup process for a server. + * + * @throws \Spatie\Fractalistic\Exceptions\InvalidTransformation + * @throws \Spatie\Fractalistic\Exceptions\NoTransformerSpecified + * @throws \Throwable + */ + public function store(StoreBackupRequest $request, Server $server): array + { + $action = $this->initiateBackupService + ->setIgnoredFiles(explode(PHP_EOL, $request->input('ignored') ?? '')); + + // Only set the lock status if the user even has permission to delete backups, + // otherwise ignore this status. This gets a little funky since it isn't clear + // how best to allow a user to create a backup that is locked without also preventing + // them from just filling up a server with backups that can never be deleted? + if ($request->user()->can(Permission::ACTION_BACKUP_DELETE, $server)) { + $action->setIsLocked((bool) $request->input('is_locked')); + } + + $backup = $action->handle($server, $request->input('name')); + + Activity::event('server:backup.start') + ->subject($backup) + ->property(['name' => $backup->name, 'locked' => (bool) $request->input('is_locked')]) + ->log(); + + return $this->fractal->item($backup) + ->transformWith($this->getTransformer(BackupTransformer::class)) + ->toArray(); + } + + /** + * Toggles the lock status of a given backup for a server. + * + * @throws \Throwable + * @throws AuthorizationException + */ + public function toggleLock(Request $request, Server $server, Backup $backup): array + { + if (!$request->user()->can(Permission::ACTION_BACKUP_DELETE, $server)) { + throw new AuthorizationException(); + } + + $action = $backup->is_locked ? 'server:backup.unlock' : 'server:backup.lock'; + + $backup->update(['is_locked' => !$backup->is_locked]); + + Activity::event($action)->subject($backup)->property('name', $backup->name)->log(); + + return $this->fractal->item($backup) + ->transformWith($this->getTransformer(BackupTransformer::class)) + ->toArray(); + } + + /** + * Returns information about a single backup. + * + * @throws AuthorizationException + */ + public function view(Request $request, Server $server, Backup $backup): array + { + if (!$request->user()->can(Permission::ACTION_BACKUP_READ, $server)) { + throw new AuthorizationException(); + } + + return $this->fractal->item($backup) + ->transformWith($this->getTransformer(BackupTransformer::class)) + ->toArray(); + } + + /** + * Deletes a backup from the panel as well as the remote source where it is currently + * being stored. + * + * @throws \Throwable + */ + public function delete(Request $request, Server $server, Backup $backup): JsonResponse + { + if (!$request->user()->can(Permission::ACTION_BACKUP_DELETE, $server)) { + throw new AuthorizationException(); + } + + $this->deleteBackupService->handle($backup); + + Activity::event('server:backup.delete') + ->subject($backup) + ->property(['name' => $backup->name, 'failed' => !$backup->is_successful]) + ->log(); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } + + /** + * Download the backup for a given server instance. For daemon local files, the file + * will be streamed back through the Panel. For AWS S3 files, a signed URL will be generated + * which the user is redirected to. + * + * @throws \Throwable + * @throws AuthorizationException + */ + public function download(Request $request, Server $server, Backup $backup): JsonResponse + { + if (!$request->user()->can(Permission::ACTION_BACKUP_DOWNLOAD, $server)) { + throw new AuthorizationException(); + } + + if ($backup->disk !== Backup::ADAPTER_AWS_S3 && $backup->disk !== Backup::ADAPTER_WINGS) { + throw new BadRequestHttpException('The backup requested references an unknown disk driver type and cannot be downloaded.'); + } + + $url = $this->downloadLinkService->handle($backup, $request->user()); + + Activity::event('server:backup.download')->subject($backup)->property('name', $backup->name)->log(); + + return new JsonResponse([ + 'object' => 'signed_url', + 'attributes' => ['url' => $url], + ]); + } + + /** + * Handles restoring a backup by making a request to the Wings instance telling it + * to begin the process of finding (or downloading) the backup and unpacking it + * over the server files. + * + * If the "truncate" flag is passed through in this request then all the + * files that currently exist on the server will be deleted before restoring. + * Otherwise, the archive will simply be unpacked over the existing files. + * + * @throws \Throwable + */ + public function restore(RestoreBackupRequest $request, Server $server, Backup $backup): JsonResponse + { + // Cannot restore a backup unless a server is fully installed and not currently + // processing a different backup restoration request. + if (!is_null($server->status)) { + throw new BadRequestHttpException('This server is not currently in a state that allows for a backup to be restored.'); + } + + if (!$backup->is_successful && is_null($backup->completed_at)) { + throw new BadRequestHttpException('This backup cannot be restored at this time: not completed or failed.'); + } + + $log = Activity::event('server:backup.restore') + ->subject($backup) + ->property(['name' => $backup->name, 'truncate' => $request->input('truncate')]); + + $log->transaction(function () use ($backup, $server, $request) { + // If the backup is for an S3 file we need to generate a unique Download link for + // it that will allow Wings to actually access the file. + if ($backup->disk === Backup::ADAPTER_AWS_S3) { + $url = $this->downloadLinkService->handle($backup, $request->user()); + } + + // Update the status right away for the server so that we know not to allow certain + // actions against it via the Panel API. + $server->update(['status' => Server::STATUS_RESTORING_BACKUP]); + + $this->daemonRepository->setServer($server)->restore($backup, $url ?? null, $request->input('truncate')); + }); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/CommandController.php b/app/Http/Controllers/Api/Client/Servers/Wings/CommandController.php similarity index 96% rename from app/Http/Controllers/Api/Client/Servers/CommandController.php rename to app/Http/Controllers/Api/Client/Servers/Wings/CommandController.php index 55ac2131a..0e3b5145c 100644 --- a/app/Http/Controllers/Api/Client/Servers/CommandController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/CommandController.php @@ -1,6 +1,6 @@ fractal->collection($server->allocations) + ->transformWith($this->getTransformer(AllocationTransformer::class)) + ->toArray(); + } + + /** + * Set the primary allocation for a server. + * + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function update(UpdateAllocationRequest $request, Server $server, Allocation $allocation): array + { + $original = $allocation->notes; + + $allocation->forceFill(['notes' => $request->input('notes')])->save(); + + if ($original !== $allocation->notes) { + Activity::event('server:allocation.notes') + ->subject($allocation) + ->property(['allocation' => $allocation->toString(), 'old' => $original, 'new' => $allocation->notes]) + ->log(); + } + + return $this->fractal->item($allocation) + ->transformWith($this->getTransformer(AllocationTransformer::class)) + ->toArray(); + } + + /** + * Set the primary allocation for a server. + * + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function setPrimary(SetPrimaryAllocationRequest $request, Server $server, Allocation $allocation): array + { + $this->serverRepository->update($server->id, ['allocation_id' => $allocation->id]); + + Activity::event('server:allocation.primary') + ->subject($allocation) + ->property('allocation', $allocation->toString()) + ->log(); + + return $this->fractal->item($allocation) + ->transformWith($this->getTransformer(AllocationTransformer::class)) + ->toArray(); + } + + /** + * Set the notes for the allocation for a server. + *s. + * + * @throws DisplayException + */ + public function store(NewAllocationRequest $request, Server $server): array + { + if ($server->allocations()->count() >= $server->allocation_limit) { + throw new DisplayException('Cannot assign additional allocations to this server: limit has been reached.'); + } + + $allocation = $this->assignableAllocationService->handle($server); + + Activity::event('server:allocation.create') + ->subject($allocation) + ->property('allocation', $allocation->toString()) + ->log(); + + return $this->fractal->item($allocation) + ->transformWith($this->getTransformer(AllocationTransformer::class)) + ->toArray(); + } + + /** + * Delete an allocation from a server. + * + * @throws DisplayException + */ + public function delete(DeleteAllocationRequest $request, Server $server, Allocation $allocation): JsonResponse + { + // Don't allow the deletion of allocations if the server does not have an + // allocation limit set. + if (empty($server->allocation_limit)) { + throw new DisplayException('You cannot delete allocations for this server: no allocation limit is set.'); + } + + if ($allocation->id === $server->allocation_id) { + throw new DisplayException('You cannot delete the primary allocation for this server.'); + } + + Allocation::query()->where('id', $allocation->id)->update([ + 'notes' => null, + 'server_id' => null, + ]); + + Activity::event('server:allocation.delete') + ->subject($allocation) + ->property('allocation', $allocation->toString()) + ->log(); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/PowerController.php b/app/Http/Controllers/Api/Client/Servers/Wings/PowerController.php similarity index 93% rename from app/Http/Controllers/Api/Client/Servers/PowerController.php rename to app/Http/Controllers/Api/Client/Servers/Wings/PowerController.php index ca0575765..3d63d9dba 100644 --- a/app/Http/Controllers/Api/Client/Servers/PowerController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/PowerController.php @@ -1,6 +1,6 @@ schedules->loadMissing('tasks'); + + return $this->fractal->collection($schedules) + ->transformWith($this->getTransformer(ScheduleTransformer::class)) + ->toArray(); + } + + /** + * Store a new schedule for a server. + * + * @throws DisplayException + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + */ + public function store(StoreScheduleRequest $request, Server $server): array + { + /** @var Schedule $model */ + $model = $this->repository->create([ + 'server_id' => $server->id, + 'name' => $request->input('name'), + 'cron_day_of_week' => $request->input('day_of_week'), + 'cron_month' => $request->input('month'), + 'cron_day_of_month' => $request->input('day_of_month'), + 'cron_hour' => $request->input('hour'), + 'cron_minute' => $request->input('minute'), + 'is_active' => (bool) $request->input('is_active'), + 'only_when_online' => (bool) $request->input('only_when_online'), + 'next_run_at' => $this->getNextRunAt($request), + ]); + + Activity::event('server:schedule.create') + ->subject($model) + ->property('name', $model->name) + ->log(); + + return $this->fractal->item($model) + ->transformWith($this->getTransformer(ScheduleTransformer::class)) + ->toArray(); + } + + /** + * Returns a specific schedule for the server. + */ + public function view(ViewScheduleRequest $request, Server $server, Schedule $schedule): array + { + if ($schedule->server_id !== $server->id) { + throw new NotFoundHttpException(); + } + + $schedule->loadMissing('tasks'); + + return $this->fractal->item($schedule) + ->transformWith($this->getTransformer(ScheduleTransformer::class)) + ->toArray(); + } + + /** + * Updates a given schedule with the new data provided. + * + * @throws DisplayException + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function update(UpdateScheduleRequest $request, Server $server, Schedule $schedule): array + { + $active = (bool) $request->input('is_active'); + + $data = [ + 'name' => $request->input('name'), + 'cron_day_of_week' => $request->input('day_of_week'), + 'cron_month' => $request->input('month'), + 'cron_day_of_month' => $request->input('day_of_month'), + 'cron_hour' => $request->input('hour'), + 'cron_minute' => $request->input('minute'), + 'is_active' => $active, + 'only_when_online' => (bool) $request->input('only_when_online'), + 'next_run_at' => $this->getNextRunAt($request), + ]; + + // Toggle the processing state of the scheduled task when it is enabled or disabled so that an + // invalid state can be reset without manual database intervention. + // + // @see https://github.com/pterodactyl/panel/issues/2425 + if ($schedule->is_active !== $active) { + $data['is_processing'] = false; + } + + $this->repository->update($schedule->id, $data); + + Activity::event('server:schedule.update') + ->subject($schedule) + ->property(['name' => $schedule->name, 'active' => $active]) + ->log(); + + return $this->fractal->item($schedule->refresh()) + ->transformWith($this->getTransformer(ScheduleTransformer::class)) + ->toArray(); + } + + /** + * Executes a given schedule immediately rather than waiting on it's normally scheduled time + * to pass. This does not care about the schedule state. + * + * @throws \Throwable + */ + public function execute(TriggerScheduleRequest $request, Server $server, Schedule $schedule): JsonResponse + { + $this->service->handle($schedule, true); + + Activity::event('server:schedule.execute')->subject($schedule)->property('name', $schedule->name)->log(); + + return new JsonResponse([], JsonResponse::HTTP_ACCEPTED); + } + + /** + * Deletes a schedule and it's associated tasks. + */ + public function delete(DeleteScheduleRequest $request, Server $server, Schedule $schedule): JsonResponse + { + $this->repository->delete($schedule->id); + + Activity::event('server:schedule.delete')->subject($schedule)->property('name', $schedule->name)->log(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Get the next run timestamp based on the cron data provided. + * + * @throws DisplayException + */ + protected function getNextRunAt(Request $request): Carbon + { + try { + return Utilities::getScheduleNextRunDate( + $request->input('minute'), + $request->input('hour'), + $request->input('day_of_month'), + $request->input('month'), + $request->input('day_of_week') + ); + } catch (\Exception $exception) { + throw new DisplayException('The cron data provided does not evaluate to a valid expression.'); + } + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Wings/ScheduleTaskController.php b/app/Http/Controllers/Api/Client/Servers/Wings/ScheduleTaskController.php new file mode 100644 index 000000000..18cc2cd3c --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Wings/ScheduleTaskController.php @@ -0,0 +1,175 @@ +tasks()->count() >= $limit) { + throw new ServiceLimitExceededException("Schedules may not have more than $limit tasks associated with them. Creating this task would put this schedule over the limit."); + } + + if ($server->backup_limit === 0 && $request->action === 'backup') { + throw new HttpForbiddenException("A backup task cannot be created when the server's backup limit is set to 0."); + } + + /** @var Task|null $lastTask */ + $lastTask = $schedule->tasks()->orderByDesc('sequence_id')->first(); + + /** @var Task $task */ + $task = $this->connection->transaction(function () use ($request, $schedule, $lastTask) { + $sequenceId = ($lastTask->sequence_id ?? 0) + 1; + $requestSequenceId = $request->integer('sequence_id', $sequenceId); + + // Ensure that the sequence id is at least 1. + if ($requestSequenceId < 1) { + $requestSequenceId = 1; + } + + // If the sequence id from the request is greater than or equal to the next available + // sequence id, we don't need to do anything special. Otherwise, we need to update + // the sequence id of all tasks that are greater than or equal to the request sequence + // id to be one greater than the current value. + if ($requestSequenceId < $sequenceId) { + $schedule->tasks() + ->where('sequence_id', '>=', $requestSequenceId) + ->increment('sequence_id'); + $sequenceId = $requestSequenceId; + } + + return $this->repository->create([ + 'schedule_id' => $schedule->id, + 'sequence_id' => $sequenceId, + 'action' => $request->input('action'), + 'payload' => $request->input('payload') ?? '', + 'time_offset' => $request->input('time_offset'), + 'continue_on_failure' => $request->boolean('continue_on_failure'), + ]); + }); + + Activity::event('server:task.create') + ->subject($schedule, $task) + ->property(['name' => $schedule->name, 'action' => $task->action, 'payload' => $task->payload]) + ->log(); + + return $this->fractal->item($task) + ->transformWith($this->getTransformer(TaskTransformer::class)) + ->toArray(); + } + + /** + * Updates a given task for a server. + * + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function update(StoreTaskRequest $request, Server $server, Schedule $schedule, Task $task): array + { + if ($schedule->id !== $task->schedule_id || $server->id !== $schedule->server_id) { + throw new NotFoundHttpException(); + } + + if ($server->backup_limit === 0 && $request->action === 'backup') { + throw new HttpForbiddenException("A backup task cannot be created when the server's backup limit is set to 0."); + } + + $this->connection->transaction(function () use ($request, $schedule, $task) { + $sequenceId = $request->integer('sequence_id', $task->sequence_id); + // Ensure that the sequence id is at least 1. + if ($sequenceId < 1) { + $sequenceId = 1; + } + + // Shift all other tasks in the schedule up or down to make room for the new task. + if ($sequenceId < $task->sequence_id) { + $schedule->tasks() + ->where('sequence_id', '>=', $sequenceId) + ->where('sequence_id', '<', $task->sequence_id) + ->increment('sequence_id'); + } elseif ($sequenceId > $task->sequence_id) { + $schedule->tasks() + ->where('sequence_id', '>', $task->sequence_id) + ->where('sequence_id', '<=', $sequenceId) + ->decrement('sequence_id'); + } + + $this->repository->update($task->id, [ + 'sequence_id' => $sequenceId, + 'action' => $request->input('action'), + 'payload' => $request->input('payload') ?? '', + 'time_offset' => $request->input('time_offset'), + 'continue_on_failure' => $request->boolean('continue_on_failure'), + ]); + }); + + Activity::event('server:task.update') + ->subject($schedule, $task) + ->property(['name' => $schedule->name, 'action' => $task->action, 'payload' => $task->payload]) + ->log(); + + return $this->fractal->item($task->refresh()) + ->transformWith($this->getTransformer(TaskTransformer::class)) + ->toArray(); + } + + /** + * Delete a given task for a schedule. If there are subsequent tasks stored in the database + * for this schedule their sequence IDs are decremented properly. + * + * @throws \Exception + */ + public function delete(ClientApiRequest $request, Server $server, Schedule $schedule, Task $task): JsonResponse + { + if ($task->schedule_id !== $schedule->id || $schedule->server_id !== $server->id) { + throw new NotFoundHttpException(); + } + + if (!$request->user()->can(Permission::ACTION_SCHEDULE_UPDATE, $server)) { + throw new HttpForbiddenException('You do not have permission to perform this action.'); + } + + $schedule->tasks() + ->where('sequence_id', '>', $task->sequence_id) + ->decrement('sequence_id'); + $task->delete(); + + Activity::event('server:task.delete')->subject($schedule, $task)->property('name', $schedule->name)->log(); + + return new JsonResponse(null, Response::HTTP_NO_CONTENT); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/ServerController.php b/app/Http/Controllers/Api/Client/Servers/Wings/ServerController.php similarity index 94% rename from app/Http/Controllers/Api/Client/Servers/ServerController.php rename to app/Http/Controllers/Api/Client/Servers/Wings/ServerController.php index 63eb9b988..985bf57f9 100644 --- a/app/Http/Controllers/Api/Client/Servers/ServerController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/ServerController.php @@ -1,6 +1,6 @@ input('name'); + $description = $request->has('description') ? (string) $request->input('description') : $server->description; + $this->repository->update($server->id, [ + 'name' => $name, + 'description' => $description, + ]); + + if ($server->name !== $name) { + Activity::event('server:settings.rename') + ->property(['old' => $server->name, 'new' => $name]) + ->log(); + } + + if ($server->description !== $description) { + Activity::event('server:settings.description') + ->property(['old' => $server->description, 'new' => $description]) + ->log(); + } + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Reinstalls the server on the daemon. + * + * @throws \Throwable + */ + public function reinstall(ReinstallServerRequest $request, Server $server): JsonResponse + { + $this->reinstallServerService->handle($server); + + Activity::event('server:reinstall')->log(); + + return new JsonResponse([], Response::HTTP_ACCEPTED); + } + + /** + * Changes the Docker image in use by the server. + * + * @throws \Throwable + */ + public function dockerImage(SetDockerImageRequest $request, Server $server): JsonResponse + { + if (!in_array($request->input('docker_image'), array_values($server->egg->docker_images))) { + throw new BadRequestHttpException('The requested Docker image is not allowed for this server.'); + } + + $original = $server->image; + $server->forceFill(['image' => $request->input('docker_image')])->saveOrFail(); + + if ($original !== $server->image) { + Activity::event('server:startup.image') + ->property(['old' => $original, 'new' => $request->input('docker_image')]) + ->log(); + } + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Reset Startup Command + */ + private function resetStartupCommand(Server $server): JsonResponse + { + $server->startup = $server->egg->startup; + $server->save(); + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + /** + * Changes the egg for a server. + * + * @throws \Throwable + */ + public function changeEgg(SetEggRequest $request, Server $server): JsonResponse + { + $eggId = $request->input('egg_id'); + $nestId = $request->input('nest_id'); + $originalEggId = $server->egg_id; + $originalNestId = $server->nest_id; + + // Check if the new Egg and Nest IDs are different from the current ones + if ($originalEggId !== $eggId || $originalNestId !== $nestId) { + // Update the server's Egg and Nest IDs + $server->egg_id = $eggId; + $server->nest_id = $nestId; + $server->save(); + + // Log an activity event for the Egg change + Activity::event('server:settings.egg') + ->property(['original_egg_id' => $originalEggId, 'new_egg_id' => $eggId, 'original_nest_id' => $originalNestId, 'new_nest_id' => $nestId]) + ->log(); + + // Reset the server's startup command + $this->resetStartupCommand($server); + } + + return new JsonResponse([], Response::HTTP_NO_CONTENT); + } + + public function previewEggChange(PreviewEggRequest $request, Server $server): JsonResponse + { + try { + $eggId = $request->input('egg_id'); + $nestId = $request->input('nest_id'); + + $previewData = $this->eggChangeService->previewEggChange($server, $eggId, $nestId); + + // Log the preview action + Activity::event('server:settings.egg-preview') + ->property([ + 'current_egg_id' => $server->egg_id, + 'preview_egg_id' => $eggId, + 'preview_nest_id' => $nestId, + ]) + ->log(); + + return new JsonResponse($previewData); + } catch (Exception $e) { + Log::error('Failed to preview egg change', [ + 'server_id' => $server->id, + 'egg_id' => $request->input('egg_id'), + 'nest_id' => $request->input('nest_id'), + 'error' => $e->getMessage(), + ]); + + throw $e; + } + } + + /** + * Apply egg configuration changes asynchronously. + * This dispatches a background job to handle the complete egg change process. + * + * @throws \Throwable + */ + public function applyEggChange(ApplyEggChangeRequest $request, Server $server): JsonResponse + { + try { + $eggId = $request->input('egg_id'); + $nestId = $request->input('nest_id'); + $dockerImage = $request->input('docker_image'); + $startupCommand = $request->input('startup_command'); + $environment = $request->input('environment', []); + $shouldBackup = $request->input('should_backup', false); + $shouldWipe = $request->input('should_wipe', false); + + $result = $this->eggChangeService->applyEggChangeAsync( + $server, + $request->user(), + $eggId, + $nestId, + $dockerImage, + $startupCommand, + $environment, + $shouldBackup, + $shouldWipe + ); + + Activity::event('server:software.change-queued') + ->property([ + 'operation_id' => $result['operation_id'], + 'from_egg' => $server->egg_id, + 'to_egg' => $eggId, + 'should_backup' => $shouldBackup, + 'should_wipe' => $shouldWipe, + ]) + ->log(); + + return new JsonResponse($result, Response::HTTP_ACCEPTED); + } catch (Exception $e) { + Log::error('Failed to apply egg change', [ + 'server_id' => $server->id, + 'error' => $e->getMessage(), + ]); + + throw $e; + } + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Wings/StartupController.php b/app/Http/Controllers/Api/Client/Servers/Wings/StartupController.php new file mode 100644 index 000000000..77ee966e0 --- /dev/null +++ b/app/Http/Controllers/Api/Client/Servers/Wings/StartupController.php @@ -0,0 +1,99 @@ +startupCommandService->handle($server); + + return $this->fractal->collection( + $server->variables()->where('user_viewable', true)->get() + ) + ->transformWith($this->getTransformer(EggVariableTransformer::class)) + ->addMeta([ + 'startup_command' => $startup, + 'docker_images' => $server->egg->docker_images, + 'raw_startup_command' => $server->startup, + ]) + ->toArray(); + } + + /** + * Updates a single variable for a server. + * + * @throws \Illuminate\Validation\ValidationException + * @throws \Pterodactyl\Exceptions\Model\DataValidationException + * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException + */ + public function update(UpdateStartupVariableRequest $request, Server $server): array + { + /** @var \Pterodactyl\Models\EggVariable $variable */ + $variable = $server->variables()->where('env_variable', $request->input('key'))->first(); + $original = $variable->server_value; + + if (is_null($variable) || !$variable->user_viewable) { + throw new BadRequestHttpException('The environment variable you are trying to edit does not exist.'); + } elseif (!$variable->user_editable) { + throw new BadRequestHttpException('The environment variable you are trying to edit is read-only.'); + } + + // Revalidate the variable value using the egg variable specific validation rules for it. + $this->validate($request, ['value' => $variable->rules]); + + $this->repository->updateOrCreate([ + 'server_id' => $server->id, + 'variable_id' => $variable->id, + ], [ + 'variable_value' => $request->input('value') ?? '', + ]); + + $variable = $variable->refresh(); + $variable->server_value = $request->input('value'); + + $startup = $this->startupCommandService->handle($server); + + if ($variable->env_variable !== $request->input('value')) { + Activity::event('server:startup.edit') + ->subject($variable) + ->property([ + 'variable' => $variable->env_variable, + 'old' => $original, + 'new' => $request->input('value'), + ]) + ->log(); + } + + return $this->fractal->item($variable) + ->transformWith($this->getTransformer(EggVariableTransformer::class)) + ->addMeta([ + 'startup_command' => $startup, + 'raw_startup_command' => $server->startup, + ]) + ->toArray(); + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/WebsocketController.php b/app/Http/Controllers/Api/Client/Servers/Wings/WebsocketController.php similarity index 97% rename from app/Http/Controllers/Api/Client/Servers/WebsocketController.php rename to app/Http/Controllers/Api/Client/Servers/Wings/WebsocketController.php index ff49c78ff..9170fd3bc 100644 --- a/app/Http/Controllers/Api/Client/Servers/WebsocketController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/WebsocketController.php @@ -1,6 +1,6 @@ attributes->get('server'); + $daemonType = $server->node->daemonType; + + if (! $daemonType) { + abort(404); + } + + if ($daemonType !== $daemon) { + abort(400, "This endpoint requires daemon type '{$daemon}', but server is using '{$daemonType}'."); + } + + return $next($request); + } +} diff --git a/app/Http/Requests/Admin/Node/NodeFormRequest.php b/app/Http/Requests/Admin/Node/NodeFormRequest.php index 77d340199..e9cde0e38 100644 --- a/app/Http/Requests/Admin/Node/NodeFormRequest.php +++ b/app/Http/Requests/Admin/Node/NodeFormRequest.php @@ -4,6 +4,7 @@ namespace Pterodactyl\Http\Requests\Admin\Node; use Pterodactyl\Rules\Fqdn; use Pterodactyl\Models\Node; +use Illuminate\Support\Facades\Log; use Pterodactyl\Http\Requests\Admin\AdminFormRequest; class NodeFormRequest extends AdminFormRequest @@ -16,12 +17,14 @@ class NodeFormRequest extends AdminFormRequest if ($this->method() === 'PATCH') { $rules = Node::getRulesForUpdate($this->route()->parameter('node')); $rules['internal_fqdn'] = ['nullable', 'string', Fqdn::make('scheme')]; + return $rules; } $data = Node::getRules(); $data['fqdn'][] = Fqdn::make('scheme'); $data['internal_fqdn'] = ['nullable', 'string', Fqdn::make('scheme')]; + log::info("rules", [$data]); return $data; } diff --git a/app/Http/Requests/Api/Remote/Backups/BackupRemoteUploadController.php b/app/Http/Requests/Api/Remote/Backups/BackupRemoteUploadController.php new file mode 100644 index 000000000..38d8fa45c --- /dev/null +++ b/app/Http/Requests/Api/Remote/Backups/BackupRemoteUploadController.php @@ -0,0 +1,135 @@ +attributes->get('node'); + + // Get the size query parameter. + $size = (int) $request->query('size'); + if (empty($size)) { + throw new BadRequestHttpException('A non-empty "size" query parameter must be provided.'); + } + + /** @var Backup $model */ + $model = Backup::query() + ->where('uuid', $backup) + ->firstOrFail(); + + // Check that the backup is "owned" by the node making the request. This avoids other nodes + // from messing with backups that they don't own. + /** @var \Pterodactyl\Models\Server $server */ + $server = $model->server; + if ($server->node_id !== $node->id) { + throw new HttpForbiddenException('You do not have permission to access that backup.'); + } + + // Prevent backups that have already been completed from trying to + // be uploaded again. + if (!is_null($model->completed_at)) { + throw new ConflictHttpException('This backup is already in a completed state.'); + } + + // Ensure we are using the S3 adapter. + $adapter = $this->backupManager->adapter(); + if (!$adapter instanceof S3Filesystem) { + throw new BadRequestHttpException('The configured backup adapter is not an S3 compatible adapter.'); + } + + // The path where backup will be uploaded to + $path = sprintf('%s/%s.tar.gz', $model->server->uuid, $model->uuid); + + // Get the S3 client + $client = $adapter->getClient(); + $expires = CarbonImmutable::now()->addMinutes((int) config('backups.presigned_url_lifespan', 60)); + + // Params for generating the presigned urls + $params = [ + 'Bucket' => $adapter->getBucket(), + 'Key' => $path, + 'ContentType' => 'application/x-gzip', + ]; + + $storageClass = config('backups.disks.s3.storage_class'); + if (!is_null($storageClass)) { + $params['StorageClass'] = $storageClass; + } + + // Execute the CreateMultipartUpload request + $result = $client->execute($client->getCommand('CreateMultipartUpload', $params)); + + // Get the UploadId from the CreateMultipartUpload request, this is needed to create + // the other presigned urls. + $params['UploadId'] = $result->get('UploadId'); + + // Retrieve configured part size + $maxPartSize = $this->getConfiguredMaxPartSize(); + + // Create as many UploadPart presigned urls as needed + $parts = []; + for ($i = 0; $i < ($size / $maxPartSize); ++$i) { + $parts[] = $client->createPresignedRequest( + $client->getCommand('UploadPart', array_merge($params, ['PartNumber' => $i + 1])), + $expires + )->getUri()->__toString(); + } + + // Set the upload_id on the backup in the database. + $model->update(['upload_id' => $params['UploadId']]); + + return new JsonResponse([ + 'parts' => $parts, + 'part_size' => $maxPartSize, + ]); + } + + /** + * Get the configured maximum size of a single part in the multipart upload. + * + * The function tries to retrieve a configured value from the configuration. + * If no value is specified, a fallback value will be used. + * + * Note if the received config cannot be converted to int (0), is zero or is negative, + * the fallback value will be used too. + * + * The fallback value is {@see BackupRemoteUploadController::DEFAULT_MAX_PART_SIZE}. + */ + private function getConfiguredMaxPartSize(): int + { + $maxPartSize = (int) config('backups.max_part_size', self::DEFAULT_MAX_PART_SIZE); + if ($maxPartSize <= 0) { + $maxPartSize = self::DEFAULT_MAX_PART_SIZE; + } + + return $maxPartSize; + } +} diff --git a/app/Http/Requests/Api/Remote/Backups/BackupStatusController.php b/app/Http/Requests/Api/Remote/Backups/BackupStatusController.php new file mode 100644 index 000000000..501c0ddad --- /dev/null +++ b/app/Http/Requests/Api/Remote/Backups/BackupStatusController.php @@ -0,0 +1,159 @@ +attributes->get('node'); + + /** @var Backup $model */ + $model = Backup::query() + ->where('uuid', $backup) + ->firstOrFail(); + + // Check that the backup is "owned" by the node making the request. This avoids other nodes + // from messing with backups that they don't own. + /** @var \Pterodactyl\Models\Server $server */ + $server = $model->server; + if ($server->node_id !== $node->id) { + throw new HttpForbiddenException('You do not have permission to access that backup.'); + } + + if ($model->is_successful) { + throw new BadRequestHttpException('Cannot update the status of a backup that is already marked as completed.'); + } + + $action = $request->boolean('successful') ? 'server:backup.complete' : 'server:backup.fail'; + $log = Activity::event($action)->subject($model, $model->server)->property('name', $model->name); + + $log->transaction(function () use ($model, $request) { + $successful = $request->boolean('successful'); + + $model->fill([ + 'is_successful' => $successful, + // Change the lock state to unlocked if this was a failed backup so that it can be + // deleted easily. Also does not make sense to have a locked backup on the system + // that is failed. + 'is_locked' => $successful ? $model->is_locked : false, + 'checksum' => $successful ? ($request->input('checksum_type') . ':' . $request->input('checksum')) : null, + 'bytes' => $successful ? $request->input('size') : 0, + 'completed_at' => CarbonImmutable::now(), + ])->save(); + + // Check if we are using the s3 backup adapter. If so, make sure we mark the backup as + // being completed in S3 correctly. + $adapter = $this->backupManager->adapter(); + if ($adapter instanceof S3Filesystem) { + $this->completeMultipartUpload($model, $adapter, $successful, $request->input('parts')); + } + }); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } + + /** + * Handles toggling the restoration status of a server. The server status field should be + * set back to null, even if the restoration failed. This is not an unsolvable state for + * the server, and the user can keep trying to restore, or just use the reinstall button. + * + * The only thing the successful field does is update the entry value for the audit logs + * table tracking for this restoration. + * + * @throws \Throwable + */ + public function restore(Request $request, string $backup): JsonResponse + { + /** @var Backup $model */ + $model = Backup::query()->where('uuid', $backup)->firstOrFail(); + + $model->server->update(['status' => null]); + + Activity::event($request->boolean('successful') ? 'server:backup.restore-complete' : 'server.backup.restore-failed') + ->subject($model, $model->server) + ->property('name', $model->name) + ->log(); + + return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); + } + + /** + * Marks a multipart upload in a given S3-compatible instance as failed or successful for + * the given backup. + * + * @throws \Exception + * @throws DisplayException + */ + protected function completeMultipartUpload(Backup $backup, S3Filesystem $adapter, bool $successful, ?array $parts): void + { + // This should never really happen, but if it does don't let us fall victim to Amazon's + // wildly fun error messaging. Just stop the process right here. + if (empty($backup->upload_id)) { + // A failed backup doesn't need to error here, this can happen if the backup encounters + // an error before we even start the upload. AWS gives you tooling to clear these failed + // multipart uploads as needed too. + if (!$successful) { + return; + } + + throw new DisplayException('Cannot complete backup request: no upload_id present on model.'); + } + + $params = [ + 'Bucket' => $adapter->getBucket(), + 'Key' => sprintf('%s/%s.tar.gz', $backup->server->uuid, $backup->uuid), + 'UploadId' => $backup->upload_id, + ]; + + $client = $adapter->getClient(); + if (!$successful) { + $client->execute($client->getCommand('AbortMultipartUpload', $params)); + + return; + } + + // Otherwise send a CompleteMultipartUpload request. + $params['MultipartUpload'] = [ + 'Parts' => [], + ]; + + if (is_null($parts)) { + $params['MultipartUpload']['Parts'] = $client->execute($client->getCommand('ListParts', $params))['Parts']; + } else { + foreach ($parts as $part) { + $params['MultipartUpload']['Parts'][] = [ + 'ETag' => $part['etag'], + 'PartNumber' => $part['part_number'], + ]; + } + } + + $client->execute($client->getCommand('CompleteMultipartUpload', $params)); + } +} diff --git a/app/Jobs/Server/ApplyEggChangeJob.php b/app/Jobs/Server/ApplyEggChangeJob.php index e211edfd4..acd8738f9 100644 --- a/app/Jobs/Server/ApplyEggChangeJob.php +++ b/app/Jobs/Server/ApplyEggChangeJob.php @@ -68,11 +68,11 @@ class ApplyEggChangeJob extends Job implements ShouldQueue SubdomainManagementService $subdomainService ): void { $operation = null; - + try { $operation = ServerOperation::where('operation_id', $this->operationId)->firstOrFail(); $operation->markAsStarted(); - + Activity::actor($this->user)->event('server:software.change-started') ->property([ 'operation_id' => $this->operationId, @@ -105,7 +105,6 @@ class ApplyEggChangeJob extends Job implements ShouldQueue $this->logSuccessfulChange(); $operation->markAsCompleted('Software configuration applied successfully. Server installation completed.'); - } catch (Exception $e) { $this->handleJobFailure($e, $operation); throw $e; @@ -121,18 +120,18 @@ class ApplyEggChangeJob extends Job implements ShouldQueue $currentEgg = $this->server->egg; $targetEgg = Egg::find($this->eggId); - + $backupName = sprintf( 'Software Change: %s → %s (%s)', $currentEgg->name ?? 'Unknown', $targetEgg->name ?? 'Unknown', now()->format('M j, g:i A') ); - + if (strlen($backupName) > 190) { $backupName = substr($backupName, 0, 187) . '...'; } - + try { $result = $elytraJobService->submitJob( $this->server, @@ -159,7 +158,6 @@ class ApplyEggChangeJob extends Job implements ShouldQueue $operation->updateProgress('Backup job submitted successfully'); return $result['job_id']; - } catch (\Exception $e) { throw new BackupFailedException('Failed to create backup before egg change: ' . $e->getMessage()); } @@ -211,12 +209,12 @@ class ApplyEggChangeJob extends Job implements ShouldQueue private function wipeServerFiles(DaemonFileRepository $fileRepository, ServerOperation $operation): void { $operation->updateProgress('Wiping server files...'); - + try { $contents = $fileRepository->setServer($this->server)->getDirectory('/'); if (!empty($contents)) { - $filesToDelete = array_map(function($item) { + $filesToDelete = array_map(function ($item) { return $item['name']; }, $contents); @@ -273,7 +271,7 @@ class ApplyEggChangeJob extends Job implements ShouldQueue SubdomainManagementService $subdomainService ): void { $operation->updateProgress('Applying software configuration...'); - + DB::transaction(function () use ($egg, $startupModificationService, $reinstallServerService, $operation, $subdomainService) { // Check if we need to remove subdomain before changing egg $activeSubdomain = $this->server->activeSubdomain; @@ -282,14 +280,14 @@ class ApplyEggChangeJob extends Job implements ShouldQueue $tempServer = clone $this->server; $tempServer->egg = $egg; $tempServer->egg_id = $egg->id; - + // If new egg doesn't support subdomains, delete the existing subdomain if (!$tempServer->supportsSubdomains()) { $operation->updateProgress('Removing incompatible subdomain...'); - + try { $subdomainService->deleteSubdomain($activeSubdomain); - + Activity::actor($this->user)->event('server:subdomain.deleted-egg-change') ->property([ 'operation_id' => $this->operationId, @@ -305,13 +303,13 @@ class ApplyEggChangeJob extends Job implements ShouldQueue 'subdomain' => $activeSubdomain->full_domain, 'error' => $e->getMessage(), ]); - + // Continue with egg change even if subdomain deletion fails $operation->updateProgress('Warning: Could not fully remove subdomain, continuing with egg change...'); } } } - + if ($this->server->egg_id !== $this->eggId || $this->server->nest_id !== $this->nestId) { $this->server->update([ 'egg_id' => $this->eggId, @@ -331,7 +329,7 @@ class ApplyEggChangeJob extends Job implements ShouldQueue $operation->updateProgress('Reinstalling server...'); $reinstallServerService->handle($updatedServer); - + $operation->updateProgress('Finalizing installation...'); }); } @@ -398,4 +396,4 @@ class ApplyEggChangeJob extends Job implements ShouldQueue ]) ->log(); } -} \ No newline at end of file +} diff --git a/app/Models/Backup.php b/app/Models/Backup.php index 73d538fca..3a8131e35 100644 --- a/app/Models/Backup.php +++ b/app/Models/Backup.php @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Pterodactyl\Enums\Daemon\Adapters; /** * Backup model @@ -41,9 +42,13 @@ class Backup extends Model public const RESOURCE_NAME = 'backup'; // Backup adapters - public const ADAPTER_WINGS = 'wings'; - public const ADAPTER_ELYTRA = 'elytra'; // Preferred name for local backups public const ADAPTER_AWS_S3 = 's3'; + + // Wings Adapters + public const ADAPTER_WINGS = 'wings'; + + // Elytra Backups + public const ADAPTER_ELYTRA = 'elytra'; public const ADAPTER_RUSTIC_LOCAL = 'rustic_local'; public const ADAPTER_RUSTIC_S3 = 'rustic_s3'; @@ -82,6 +87,7 @@ class Backup extends Model return in_array($this->disk, [self::ADAPTER_RUSTIC_LOCAL, self::ADAPTER_RUSTIC_S3]); } + /** * Check if this backup is stored locally (not in cloud storage). */ @@ -95,7 +101,7 @@ class Backup extends Model */ public function getRepositoryType(): ?string { - return match($this->disk) { + return match ($this->disk) { self::ADAPTER_RUSTIC_LOCAL => 'local', self::ADAPTER_RUSTIC_S3 => 's3', default => null, @@ -161,9 +167,8 @@ class Backup extends Model */ public function getElytraAdapterType(): string { - return match($this->disk) { - self::ADAPTER_WINGS => 'elytra', // Legacy support: wings -> elytra - self::ADAPTER_ELYTRA => 'elytra', // Direct mapping for new backups + return match ($this->disk) { + self::ADAPTER_ELYTRA => 'elytra', self::ADAPTER_AWS_S3 => 's3', self::ADAPTER_RUSTIC_LOCAL => 'rustic_local', self::ADAPTER_RUSTIC_S3 => 'rustic_s3', @@ -219,4 +224,4 @@ class Backup extends Model { return $this->query()->where($field ?? $this->getRouteKeyName(), $value)->firstOrFail(); } -} \ No newline at end of file +} diff --git a/app/Models/Daemons/.info b/app/Models/Daemons/.info new file mode 100644 index 000000000..200f35001 --- /dev/null +++ b/app/Models/Daemons/.info @@ -0,0 +1 @@ +These files are used in app/Models/Node.php for it's configuration getting and such diff --git a/app/Models/Daemons/Elytra.php b/app/Models/Daemons/Elytra.php new file mode 100644 index 000000000..c590096b0 --- /dev/null +++ b/app/Models/Daemons/Elytra.php @@ -0,0 +1,93 @@ + false, + 'uuid' => $node->uuid, + 'token_id' => $node->daemon_token_id, + 'token' => Container::getInstance()->make(Encrypter::class)->decrypt($node->daemon_token), + 'api' => [ + 'host' => '0.0.0.0', + 'port' => $node->daemonListen, + 'ssl' => [ + 'enabled' => (!$node->behind_proxy && $node->scheme === 'https'), + 'cert' => '/etc/letsencrypt/live/' . Str::lower($node->getInternalFqdn()) . '/fullchain.pem', + 'key' => '/etc/letsencrypt/live/' . Str::lower($node->getInternalFqdn()) . '/privkey.pem', + ], + 'upload_limit' => $node->upload_size, + ], + 'system' => [ + 'data' => $node->daemonBase, + 'sftp' => [ + 'bind_port' => $node->daemonSFTP, + ], + 'backups' => [ + 'rustic' => $this->getBackupConfiguration(), + ], + ], + 'allowed_mounts' => $node->mounts->pluck('source')->toArray(), + 'remote' => route('index'), + 'allowed_origins' => [ + config('app.url'), + ], + ]; + } + + private function getBackupConfiguration() + { + $localConfig = config('backups.disks.rustic_local', []); + $s3Config = config('backups.disks.rustic_s3', []); + return [ + // Path to rustic binary + 'binary_path' => $localConfig['binary_path'] ?? 'rustic', + + // Repository version (optional, default handled by rustic) + 'repository_version' => $localConfig['repository_version'] ?? 2, + + // Pack size configuration for performance tuning + 'tree_pack_size_mb' => $localConfig['tree_pack_size_mb'] ?? 4, + 'data_pack_size_mb' => $localConfig['data_pack_size_mb'] ?? 32, + + // Local repository configuration + 'local' => [ + 'enabled' => !empty($localConfig), + 'repository_path' => $localConfig['repository_path'] ?? '/var/lib/pterodactyl/rustic-repos', + 'use_cold_storage' => $localConfig['use_cold_storage'] ?? false, + 'hot_repository_path' => $localConfig['hot_repository_path'] ?? '', + ], + + // S3 repository configuration + 's3' => [ + 'enabled' => !empty($s3Config['bucket']), + 'endpoint' => $s3Config['endpoint'] ?? '', + 'region' => $s3Config['region'] ?? 'us-east-1', + 'bucket' => $s3Config['bucket'] ?? '', + 'use_cold_storage' => $s3Config['use_cold_storage'] ?? false, + 'hot_bucket' => $s3Config['hot_bucket'] ?? '', + 'cold_storage_class' => $s3Config['cold_storage_class'] ?? 'GLACIER', + 'force_path_style' => $s3Config['force_path_style'] ?? false, + 'disable_ssl' => $s3Config['disable_ssl'] ?? false, + 'ca_cert_path' => $s3Config['ca_cert_path'] ?? '', + ], + ]; + } + + public function getAutoDeploy(Node $node, string $token): string + { + $debugFlag = config('app.debug') ? ' --allow-insecure' : ''; + + return "cd /etc/elytra && sudo elytra configure --panel-url " . config('app.url') . " --token " . $token . " --node " . $node->id . $debugFlag . ""; + } +} diff --git a/app/Models/Daemons/Wings.php b/app/Models/Daemons/Wings.php new file mode 100644 index 000000000..46410a1a1 --- /dev/null +++ b/app/Models/Daemons/Wings.php @@ -0,0 +1,50 @@ + false, + 'uuid' => $node->uuid, + 'token_id' => $node->daemon_token_id, + 'token' => Container::getInstance()->make(Encrypter::class)->decrypt($node->daemon_token), + 'api' => [ + 'host' => '0.0.0.0', + 'port' => $node->daemonListen, + 'ssl' => [ + 'enabled' => (!$node->behind_proxy && $node->scheme === 'https'), + 'cert' => '/etc/letsencrypt/live/' . Str::lower($node->getInternalFqdn()) . '/fullchain.pem', + 'key' => '/etc/letsencrypt/live/' . Str::lower($node->getInternalFqdn()) . '/privkey.pem', + ], + 'upload_limit' => $node->upload_size, + ], + 'system' => [ + 'data' => $node->daemonBase, + 'sftp' => [ + 'bind_port' => $node->daemonSFTP, + ], + ], + 'allowed_mounts' => $node->mounts->pluck('source')->toArray(), + 'remote' => route('index'), + 'allowed_origins' => [ + config('app.url'), + ], + ]; + } + + public function getAutoDeploy(Node $node, string $token): string + { + $debugFlag = config('app.debug') ? ' --allow-insecure' : ''; + + return "cd /etc/pterodactyl && sudo wings configure --panel-url " . config('app.url') . " --token " . $token . " --node " . $node->id . $debugFlag . ""; + } +} diff --git a/app/Models/Node.php b/app/Models/Node.php index 07714a2d7..8f664ba38 100644 --- a/app/Models/Node.php +++ b/app/Models/Node.php @@ -2,15 +2,18 @@ namespace Pterodactyl\Models; -use Illuminate\Support\Str; use Symfony\Component\Yaml\Yaml; use Illuminate\Container\Container; +use Illuminate\Support\Facades\Log; +use Pterodactyl\Enums\Daemon\DaemonType; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Encryption\Encrypter; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasManyThrough; +use Pterodactyl\Contracts\Daemon\Daemon as DaemonInterface; +use Pterodactyl\Http\Controllers\Admin\NodeAutoDeployController; /** * @property int $id @@ -36,6 +39,8 @@ use Illuminate\Database\Eloquent\Relations\HasManyThrough; * @property int $daemonListen * @property int $daemonSFTP * @property string $daemonBase + * @property string $daemonType + * @property string $backupDisk * @property \Carbon\Carbon $created_at * @property \Carbon\Carbon $updated_at * @property Location $location @@ -43,6 +48,7 @@ use Illuminate\Database\Eloquent\Relations\HasManyThrough; * @property \Pterodactyl\Models\Server[]|\Illuminate\Database\Eloquent\Collection $servers * @property \Pterodactyl\Models\Allocation[]|\Illuminate\Database\Eloquent\Collection $allocations */ + class Node extends Model { /** @use HasFactory<\Database\Factories\NodeFactory> */ @@ -110,6 +116,8 @@ class Node extends Model 'daemon_token', 'description', 'maintenance_mode', + 'daemonType', + 'backupDisk' ]; public static array $validationRules = [ @@ -132,6 +140,8 @@ class Node extends Model 'daemonListen' => 'required|numeric|between:1,65535', 'maintenance_mode' => 'boolean', 'upload_size' => 'int|between:1,1024', + 'daemonType' => 'required|string', + 'backupDisk' => 'required|string' ]; /** @@ -150,6 +160,23 @@ class Node extends Model 'use_separate_fqdns' => false, ]; + + private function getDaemonImplementation(): DaemonInterface + { + $implementations = DaemonType::allClass(); + + $daemonType = strtolower($this->daemonType); + + if (!isset($implementations[$daemonType])) { + + return new \Pterodactyl\Models\Daemons\Elytra(); + } + + $implementationClass = $implementations[$daemonType]; + return new $implementationClass(); + } + + /** * Get the connection address to use when making calls to this node. * This will use the internal FQDN if separate FQDNs are enabled and internal_fqdn is set, @@ -188,80 +215,17 @@ class Node extends Model */ public function getConfiguration(): array { - return [ - 'debug' => false, - 'uuid' => $this->uuid, - 'token_id' => $this->daemon_token_id, - 'token' => Container::getInstance()->make(Encrypter::class)->decrypt($this->daemon_token), - 'api' => [ - 'host' => '0.0.0.0', - 'port' => $this->daemonListen, - 'ssl' => [ - 'enabled' => (!$this->behind_proxy && $this->scheme === 'https'), - 'cert' => '/etc/letsencrypt/live/' . Str::lower($this->getInternalFqdn()) . '/fullchain.pem', - 'key' => '/etc/letsencrypt/live/' . Str::lower($this->getInternalFqdn()) . '/privkey.pem', - ], - 'upload_limit' => $this->upload_size, - ], - 'system' => [ - 'data' => $this->daemonBase, - 'sftp' => [ - 'bind_port' => $this->daemonSFTP, - ], - 'backups' => [ - 'rustic' => $this->getRusticBackupConfiguration(), - ], - ], - 'allowed_mounts' => $this->mounts->pluck('source')->toArray(), - 'remote' => route('index'), - 'allowed_origins' => [ - config('app.url'), // note: I have no idea why this wasn't included by Pterodactyl upstream, this might need to be configurable later - ellie - ], - ]; + $daemon = $this->getDaemonImplementation(); + return $daemon->getConfiguration($this); } /** - * Get rustic backup configuration for Wings. - * Matches the exact structure expected by elytra rustic implementation. + * Returns the auto deploy command as a string. */ - private function getRusticBackupConfiguration(): array + public function getAutoDeploy(string $token): string { - $localConfig = config('backups.disks.rustic_local', []); - $s3Config = config('backups.disks.rustic_s3', []); - - return [ - // Path to rustic binary - 'binary_path' => $localConfig['binary_path'] ?? 'rustic', - - // Repository version (optional, default handled by rustic) - 'repository_version' => $localConfig['repository_version'] ?? 2, - - // Pack size configuration for performance tuning - 'tree_pack_size_mb' => $localConfig['tree_pack_size_mb'] ?? 4, - 'data_pack_size_mb' => $localConfig['data_pack_size_mb'] ?? 32, - - // Local repository configuration - 'local' => [ - 'enabled' => !empty($localConfig), - 'repository_path' => $localConfig['repository_path'] ?? '/var/lib/pterodactyl/rustic-repos', - 'use_cold_storage' => $localConfig['use_cold_storage'] ?? false, - 'hot_repository_path' => $localConfig['hot_repository_path'] ?? '', - ], - - // S3 repository configuration - 's3' => [ - 'enabled' => !empty($s3Config['bucket']), - 'endpoint' => $s3Config['endpoint'] ?? '', - 'region' => $s3Config['region'] ?? 'us-east-1', - 'bucket' => $s3Config['bucket'] ?? '', - 'use_cold_storage' => $s3Config['use_cold_storage'] ?? false, - 'hot_bucket' => $s3Config['hot_bucket'] ?? '', - 'cold_storage_class' => $s3Config['cold_storage_class'] ?? 'GLACIER', - 'force_path_style' => $s3Config['force_path_style'] ?? false, - 'disable_ssl' => $s3Config['disable_ssl'] ?? false, - 'ca_cert_path' => $s3Config['ca_cert_path'] ?? '', - ], - ]; + $daemon = $this->getDaemonImplementation(); + return $daemon->getAutoDeploy($this, $token); } /** diff --git a/app/Models/Permission.php b/app/Models/Permission.php index 6da9af1dd..0d114cea4 100644 --- a/app/Models/Permission.php +++ b/app/Models/Permission.php @@ -6,234 +6,234 @@ use Illuminate\Support\Collection; class Permission extends Model { - /** - * The resource name for this model when it is transformed into an - * API representation using fractal. - */ - public const RESOURCE_NAME = 'subuser_permission'; + /** + * The resource name for this model when it is transformed into an + * API representation using fractal. + */ + public const RESOURCE_NAME = 'subuser_permission'; - /** - * Constants defining different permissions available. - */ - public const ACTION_WEBSOCKET_CONNECT = 'websocket.connect'; - public const ACTION_CONTROL_CONSOLE = 'control.console'; - public const ACTION_CONTROL_START = 'control.start'; - public const ACTION_CONTROL_STOP = 'control.stop'; - public const ACTION_CONTROL_RESTART = 'control.restart'; + /** + * Constants defining different permissions available. + */ + public const ACTION_WEBSOCKET_CONNECT = 'websocket.connect'; + public const ACTION_CONTROL_CONSOLE = 'control.console'; + public const ACTION_CONTROL_START = 'control.start'; + public const ACTION_CONTROL_STOP = 'control.stop'; + public const ACTION_CONTROL_RESTART = 'control.restart'; - public const ACTION_DATABASE_READ = 'database.read'; - public const ACTION_DATABASE_CREATE = 'database.create'; - public const ACTION_DATABASE_UPDATE = 'database.update'; - public const ACTION_DATABASE_DELETE = 'database.delete'; - public const ACTION_DATABASE_VIEW_PASSWORD = 'database.view_password'; + public const ACTION_DATABASE_READ = 'database.read'; + public const ACTION_DATABASE_CREATE = 'database.create'; + public const ACTION_DATABASE_UPDATE = 'database.update'; + public const ACTION_DATABASE_DELETE = 'database.delete'; + public const ACTION_DATABASE_VIEW_PASSWORD = 'database.view_password'; - public const ACTION_SCHEDULE_READ = 'schedule.read'; - public const ACTION_SCHEDULE_CREATE = 'schedule.create'; - public const ACTION_SCHEDULE_UPDATE = 'schedule.update'; - public const ACTION_SCHEDULE_DELETE = 'schedule.delete'; + public const ACTION_SCHEDULE_READ = 'schedule.read'; + public const ACTION_SCHEDULE_CREATE = 'schedule.create'; + public const ACTION_SCHEDULE_UPDATE = 'schedule.update'; + public const ACTION_SCHEDULE_DELETE = 'schedule.delete'; - public const ACTION_USER_READ = 'user.read'; - public const ACTION_USER_CREATE = 'user.create'; - public const ACTION_USER_UPDATE = 'user.update'; - public const ACTION_USER_DELETE = 'user.delete'; + public const ACTION_USER_READ = 'user.read'; + public const ACTION_USER_CREATE = 'user.create'; + public const ACTION_USER_UPDATE = 'user.update'; + public const ACTION_USER_DELETE = 'user.delete'; - public const ACTION_BACKUP_READ = 'backup.read'; - public const ACTION_BACKUP_CREATE = 'backup.create'; - public const ACTION_BACKUP_DELETE = 'backup.delete'; - public const ACTION_BACKUP_DOWNLOAD = 'backup.download'; - public const ACTION_BACKUP_RESTORE = 'backup.restore'; + public const ACTION_BACKUP_READ = 'backup.read'; + public const ACTION_BACKUP_CREATE = 'backup.create'; + public const ACTION_BACKUP_DELETE = 'backup.delete'; + public const ACTION_BACKUP_DOWNLOAD = 'backup.download'; + public const ACTION_BACKUP_RESTORE = 'backup.restore'; - public const ACTION_ALLOCATION_READ = 'allocation.read'; - public const ACTION_ALLOCATION_CREATE = 'allocation.create'; - public const ACTION_ALLOCATION_UPDATE = 'allocation.update'; - public const ACTION_ALLOCATION_DELETE = 'allocation.delete'; + public const ACTION_ALLOCATION_READ = 'allocation.read'; + public const ACTION_ALLOCATION_CREATE = 'allocation.create'; + public const ACTION_ALLOCATION_UPDATE = 'allocation.update'; + public const ACTION_ALLOCATION_DELETE = 'allocation.delete'; - public const ACTION_FILE_READ = 'file.read'; - public const ACTION_FILE_READ_CONTENT = 'file.read-content'; - public const ACTION_FILE_CREATE = 'file.create'; - public const ACTION_FILE_UPDATE = 'file.update'; - public const ACTION_FILE_DELETE = 'file.delete'; - public const ACTION_FILE_ARCHIVE = 'file.archive'; - public const ACTION_FILE_SFTP = 'file.sftp'; + public const ACTION_FILE_READ = 'file.read'; + public const ACTION_FILE_READ_CONTENT = 'file.read-content'; + public const ACTION_FILE_CREATE = 'file.create'; + public const ACTION_FILE_UPDATE = 'file.update'; + public const ACTION_FILE_DELETE = 'file.delete'; + public const ACTION_FILE_ARCHIVE = 'file.archive'; + public const ACTION_FILE_SFTP = 'file.sftp'; - public const ACTION_STARTUP_READ = 'startup.read'; - public const ACTION_STARTUP_UPDATE = 'startup.update'; - public const ACTION_STARTUP_COMMAND = 'startup.command'; - public const ACTION_STARTUP_DOCKER_IMAGE = 'startup.docker-image'; + public const ACTION_STARTUP_READ = 'startup.read'; + public const ACTION_STARTUP_UPDATE = 'startup.update'; + public const ACTION_STARTUP_COMMAND = 'startup.command'; + public const ACTION_STARTUP_DOCKER_IMAGE = 'startup.docker-image'; - public const ACTION_STARTUP_SOFTWARE = 'startup.software'; + public const ACTION_STARTUP_SOFTWARE = 'startup.software'; - public const ACTION_SETTINGS_RENAME = 'settings.rename'; - public const ACTION_SETTINGS_MODRINTH = 'settings.modrinth'; - public const ACTION_SETTINGS_REINSTALL = 'settings.reinstall'; + public const ACTION_SETTINGS_RENAME = 'settings.rename'; + public const ACTION_SETTINGS_MODR = 'settings.mod'; + public const ACTION_SETTINGS_REINSTALL = 'settings.reinstall'; - public const ACTION_ACTIVITY_READ = 'activity.read'; + public const ACTION_ACTIVITY_READ = 'activity.read'; - public const ACTION_MODRINTH_DOWNLOAD = 'modrinth.download'; + public const ACTION_MOD_DOWNLOAD = 'mod.download'; - /** - * Should timestamps be used on this model. - */ - public $timestamps = false; + /** + * Should timestamps be used on this model. + */ + public $timestamps = false; - /** - * The table associated with the model. - */ - protected $table = 'permissions'; + /** + * The table associated with the model. + */ + protected $table = 'permissions'; - /** - * Fields that are not mass assignable. - */ - protected $guarded = ['id', 'created_at', 'updated_at']; + /** + * Fields that are not mass assignable. + */ + protected $guarded = ['id', 'created_at', 'updated_at']; - /** - * Cast values to correct type. - */ - protected $casts = [ - 'subuser_id' => 'integer', - ]; + /** + * Cast values to correct type. + */ + protected $casts = [ + 'subuser_id' => 'integer', + ]; - public static array $validationRules = [ - 'subuser_id' => 'required|numeric|min:1', - 'permission' => 'required|string', - ]; + public static array $validationRules = [ + 'subuser_id' => 'required|numeric|min:1', + 'permission' => 'required|string', + ]; - /** - * All the permissions available on the system. You should use self::permissions() - * to retrieve them, and not directly access this array as it is subject to change. - * - * @see \Pterodactyl\Models\Permission::permissions() - */ - protected static array $permissions = [ - 'websocket' => [ - 'description' => 'Allows the user to connect to the server websocket, giving them access to view console output and realtime server stats.', - 'keys' => [ - 'connect' => 'Allows a user to connect to the websocket instance for a server to stream the console.', - ], - ], + /** + * All the permissions available on the system. You should use self::permissions() + * to retrieve them, and not directly access this array as it is subject to change. + * + * @see \Pterodactyl\Models\Permission::permissions() + */ + protected static array $permissions = [ + 'websocket' => [ + 'description' => 'Allows the user to connect to the server websocket, giving them access to view console output and realtime server stats.', + 'keys' => [ + 'connect' => 'Allows a user to connect to the websocket instance for a server to stream the console.', + ], + ], - 'control' => [ - 'description' => 'Permissions that control a user\'s ability to control the power state of a server, or send commands.', - 'keys' => [ - 'console' => 'Allows a user to send commands to the server instance via the console.', - 'start' => 'Allows a user to start the server if it is stopped.', - 'stop' => 'Allows a user to stop a server if it is running.', - 'restart' => 'Allows a user to perform a server restart. This allows them to start the server if it is offline, but not put the server in a completely stopped state.', - ], - ], + 'control' => [ + 'description' => 'Permissions that control a user\'s ability to control the power state of a server, or send commands.', + 'keys' => [ + 'console' => 'Allows a user to send commands to the server instance via the console.', + 'start' => 'Allows a user to start the server if it is stopped.', + 'stop' => 'Allows a user to stop a server if it is running.', + 'restart' => 'Allows a user to perform a server restart. This allows them to start the server if it is offline, but not put the server in a completely stopped state.', + ], + ], - 'user' => [ - 'description' => 'Permissions that allow a user to manage other subusers on a server. They will never be able to edit their own account, or assign permissions they do not have themselves.', - 'keys' => [ - 'create' => 'Allows a user to create new subusers for the server.', - 'read' => 'Allows the user to view subusers and their permissions for the server.', - 'update' => 'Allows a user to modify other subusers.', - 'delete' => 'Allows a user to delete a subuser from the server.', - ], - ], + 'user' => [ + 'description' => 'Permissions that allow a user to manage other subusers on a server. They will never be able to edit their own account, or assign permissions they do not have themselves.', + 'keys' => [ + 'create' => 'Allows a user to create new subusers for the server.', + 'read' => 'Allows the user to view subusers and their permissions for the server.', + 'update' => 'Allows a user to modify other subusers.', + 'delete' => 'Allows a user to delete a subuser from the server.', + ], + ], - 'file' => [ - 'description' => 'Permissions that control a user\'s ability to modify the filesystem for this server.', - 'keys' => [ - 'create' => 'Allows a user to create additional files and folders via the Panel or direct upload.', - 'read' => 'Allows a user to view the contents of a directory, but not view the contents of or download files.', - 'read-content' => 'Allows a user to view the contents of a given file. This will also allow the user to download files.', - 'update' => 'Allows a user to update the contents of an existing file or directory.', - 'delete' => 'Allows a user to delete files or directories.', - 'archive' => 'Allows a user to archive the contents of a directory as well as decompress existing archives on the system.', - 'sftp' => 'Allows a user to connect to SFTP and manage server files using the other assigned file permissions.', - ], - ], + 'file' => [ + 'description' => 'Permissions that control a user\'s ability to modify the filesystem for this server.', + 'keys' => [ + 'create' => 'Allows a user to create additional files and folders via the Panel or direct upload.', + 'read' => 'Allows a user to view the contents of a directory, but not view the contents of or download files.', + 'read-content' => 'Allows a user to view the contents of a given file. This will also allow the user to download files.', + 'update' => 'Allows a user to update the contents of an existing file or directory.', + 'delete' => 'Allows a user to delete files or directories.', + 'archive' => 'Allows a user to archive the contents of a directory as well as decompress existing archives on the system.', + 'sftp' => 'Allows a user to connect to SFTP and manage server files using the other assigned file permissions.', + ], + ], - 'backup' => [ - 'description' => 'Permissions that control a user\'s ability to generate and manage server backups.', - 'keys' => [ - 'create' => 'Allows a user to create new backups for this server.', - 'read' => 'Allows a user to view all backups that exist for this server.', - 'delete' => 'Allows a user to remove backups from the system.', - 'download' => 'Allows a user to download a backup for the server. Danger: this allows a user to access all files for the server in the backup.', - 'restore' => 'Allows a user to restore a backup for the server. Danger: this allows the user to delete all of the server files in the process.', - ], - ], + 'backup' => [ + 'description' => 'Permissions that control a user\'s ability to generate and manage server backups.', + 'keys' => [ + 'create' => 'Allows a user to create new backups for this server.', + 'read' => 'Allows a user to view all backups that exist for this server.', + 'delete' => 'Allows a user to remove backups from the system.', + 'download' => 'Allows a user to download a backup for the server. Danger: this allows a user to access all files for the server in the backup.', + 'restore' => 'Allows a user to restore a backup for the server. Danger: this allows the user to delete all of the server files in the process.', + ], + ], - // Controls permissions for editing or viewing a server's allocations. - 'allocation' => [ - 'description' => 'Permissions that control a user\'s ability to modify the port allocations for this server.', - 'keys' => [ - 'read' => 'Allows a user to view all allocations currently assigned to this server. Users with any level of access to this server can always view the primary allocation.', - 'create' => 'Allows a user to assign additional allocations to the server.', - 'update' => 'Allows a user to change the primary server allocation and attach notes to each allocation.', - 'delete' => 'Allows a user to delete an allocation from the server.', - ], - ], + // Controls permissions for editing or viewing a server's allocations. + 'allocation' => [ + 'description' => 'Permissions that control a user\'s ability to modify the port allocations for this server.', + 'keys' => [ + 'read' => 'Allows a user to view all allocations currently assigned to this server. Users with any level of access to this server can always view the primary allocation.', + 'create' => 'Allows a user to assign additional allocations to the server.', + 'update' => 'Allows a user to change the primary server allocation and attach notes to each allocation.', + 'delete' => 'Allows a user to delete an allocation from the server.', + ], + ], - // Controls permissions for editing or viewing a server's startup parameters. - 'startup' => [ - 'description' => 'Permissions that control a user\'s ability to view this server\'s startup parameters.', - 'keys' => [ - 'read' => 'Allows a user to view the startup variables for a server.', - 'update' => 'Allows a user to modify the startup variables for the server.', - 'command' => 'Allows a user to modify the startup command for the server.', - 'docker-image' => 'Allows a user to modify the Docker image used when running the server.', - 'software' => 'Allows a user to modify the game / software used for the server.', - ], - ], + // Controls permissions for editing or viewing a server's startup parameters. + 'startup' => [ + 'description' => 'Permissions that control a user\'s ability to view this server\'s startup parameters.', + 'keys' => [ + 'read' => 'Allows a user to view the startup variables for a server.', + 'update' => 'Allows a user to modify the startup variables for the server.', + 'command' => 'Allows a user to modify the startup command for the server.', + 'docker-image' => 'Allows a user to modify the Docker image used when running the server.', + 'software' => 'Allows a user to modify the game / software used for the server.', + ], + ], - 'database' => [ - 'description' => 'Permissions that control a user\'s access to the database management for this server.', - 'keys' => [ - 'create' => 'Allows a user to create a new database for this server.', - 'read' => 'Allows a user to view the database associated with this server.', - 'update' => 'Allows a user to rotate the password on a database instance. If the user does not have the view_password permission they will not see the updated password.', - 'delete' => 'Allows a user to remove a database instance from this server.', - 'view_password' => 'Allows a user to view the password associated with a database instance for this server.', - ], - ], + 'database' => [ + 'description' => 'Permissions that control a user\'s access to the database management for this server.', + 'keys' => [ + 'create' => 'Allows a user to create a new database for this server.', + 'read' => 'Allows a user to view the database associated with this server.', + 'update' => 'Allows a user to rotate the password on a database instance. If the user does not have the view_password permission they will not see the updated password.', + 'delete' => 'Allows a user to remove a database instance from this server.', + 'view_password' => 'Allows a user to view the password associated with a database instance for this server.', + ], + ], - 'schedule' => [ - 'description' => 'Permissions that control a user\'s access to the schedule management for this server.', - 'keys' => [ - 'create' => 'Allows a user to create new schedules for this server.', // task.create-schedule - 'read' => 'Allows a user to view schedules and the tasks associated with them for this server.', // task.view-schedule, task.list-schedules - 'update' => 'Allows a user to update schedules and schedule tasks for this server.', // task.edit-schedule, task.queue-schedule, task.toggle-schedule - 'delete' => 'Allows a user to delete schedules for this server.', // task.delete-schedule - ], - ], + 'schedule' => [ + 'description' => 'Permissions that control a user\'s access to the schedule management for this server.', + 'keys' => [ + 'create' => 'Allows a user to create new schedules for this server.', // task.create-schedule + 'read' => 'Allows a user to view schedules and the tasks associated with them for this server.', // task.view-schedule, task.list-schedules + 'update' => 'Allows a user to update schedules and schedule tasks for this server.', // task.edit-schedule, task.queue-schedule, task.toggle-schedule + 'delete' => 'Allows a user to delete schedules for this server.', // task.delete-schedule + ], + ], - 'settings' => [ - 'description' => 'Permissions that control a user\'s access to the settings for this server.', - 'keys' => [ - 'rename' => 'Allows a user to rename this server and change the description of it.', - 'reinstall' => 'Allows a user to trigger a reinstall of this server.', + 'settings' => [ + 'description' => 'Permissions that control a user\'s access to the settings for this server.', + 'keys' => [ + 'rename' => 'Allows a user to rename this server and change the description of it.', + 'reinstall' => 'Allows a user to trigger a reinstall of this server.', - ], - ], + ], + ], - 'activity' => [ - 'description' => 'Permissions that control a user\'s access to the server activity logs.', - 'keys' => [ - 'read' => 'Allows a user to view the activity logs for the server.', - ], - ], + 'activity' => [ + 'description' => 'Permissions that control a user\'s access to the server activity logs.', + 'keys' => [ + 'read' => 'Allows a user to view the activity logs for the server.', + ], + ], - 'modrinth' => [ - 'description' => 'Permissions that control a user\'s access to downloading and updating mods.', - 'keys' => [ - 'version' => 'Allows a user to change what version to download for', - 'loader' => 'Allows a user to change what loader to download for', - 'download' => 'Allows a user to download mods to the server using modrinth', - 'resolver' => 'Allows a user to access the Dependency Resolver', - 'update' => 'Allows a user to update Currently installed mods', - ], - ], - ]; + 'mod' => [ + 'description' => 'Permissions that control a user\'s access to downloading and updating mods.', + 'keys' => [ + 'version' => 'Allows a user to change what version to download for', + 'loader' => 'Allows a user to change what loader to download for', + 'download' => 'Allows a user to download mods to the server', + 'resolver' => 'Allows a user to access the Dependency Resolver', + 'update' => 'Allows a user to update Currently installed mods', + ], + ], + ]; - /** - * Returns all the permissions available on the system for a user to - * have when controlling a server. - */ - public static function permissions(): Collection - { - return Collection::make(self::$permissions); - } + /** + * Returns all the permissions available on the system for a user to + * have when controlling a server. + */ + public static function permissions(): Collection + { + return Collection::make(self::$permissions); + } } diff --git a/app/Models/Server.php b/app/Models/Server.php index 44d664747..25737c8c4 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -239,7 +239,7 @@ class Server extends Model if (!$this->egg || !is_array($this->egg->docker_images) || empty($this->egg->docker_images)) { return false; } - + return !in_array($this->image, array_values($this->egg->docker_images)); } @@ -252,14 +252,14 @@ class Server extends Model if (!$this->egg || !is_array($this->egg->docker_images) || empty($this->egg->docker_images)) { throw new \RuntimeException('Server egg has no docker images configured.'); } - + $eggDockerImages = $this->egg->docker_images; $defaultImage = reset($eggDockerImages); - + if (empty($defaultImage)) { throw new \RuntimeException('Server egg has no valid default docker image.'); } - + return $defaultImage; } @@ -530,7 +530,27 @@ class Server extends Model if ( $this->isSuspended() || $this->node->isUnderMaintenance() - || !$this->isInstalled() + /* || !$this->isInstalled() */ + || $this->status === self::STATUS_RESTORING_BACKUP + || !is_null($this->transfer) + ) { + throw new ServerStateConflictException($this); + } + } + + /** + * Checks if the server is currently in a user-accessible state. If not, an + * exception is raised. This should be called whenever something needs to make + * sure the server is not in a weird state that should block user access. + * + * @throws ServerStateConflictException + */ + public function validateCurrentStateClient() + { + if ( + $this->isSuspended() + || $this->node->isUnderMaintenance() + /* || !$this->isInstalled() */ // NOTE: this causes issues with how users view servers with the new system || $this->status === self::STATUS_RESTORING_BACKUP || !is_null($this->transfer) ) { diff --git a/app/Repositories/Eloquent/BackupRepository.php b/app/Repositories/Eloquent/BackupRepository.php new file mode 100644 index 000000000..bbc5d2cd9 --- /dev/null +++ b/app/Repositories/Eloquent/BackupRepository.php @@ -0,0 +1,45 @@ +getBuilder() + ->withTrashed() + ->where('server_id', $server) + ->where(function ($query) { + $query->whereNull('completed_at') + ->orWhere('is_successful', '=', true); + }) + ->where('created_at', '>=', Carbon::now()->subSeconds($seconds)->toDateTimeString()) + ->get() + ->toBase(); + } + + /** + * Returns a query filtering only non-failed backups for a specific server. + */ + public function getNonFailedBackups(Server $server): HasMany + { + return $server->backups()->where(function ($query) { + $query->whereNull('completed_at') + ->orWhere('is_successful', true); + }); + } +} diff --git a/app/Repositories/Eloquent/NodeRepository.php b/app/Repositories/Eloquent/NodeRepository.php index 370bd0068..be59ea42c 100644 --- a/app/Repositories/Eloquent/NodeRepository.php +++ b/app/Repositories/Eloquent/NodeRepository.php @@ -176,4 +176,16 @@ class NodeRepository extends EloquentRepository implements NodeRepositoryInterfa return $instance->first(); } + + /** + * Returns a node with the given id with the Node's resource usage. + */ + public function getDaemonType(int $node_id): Node + { + $instance = $this->getBuilder() + ->select(['nodes.daemonType']) + ->where('nodes.id', $node_id); + + return $instance->first(); + } } diff --git a/app/Repositories/Elytra/DaemonCommandRepository.php b/app/Repositories/Elytra/DaemonCommandRepository.php new file mode 100644 index 000000000..858d41a77 --- /dev/null +++ b/app/Repositories/Elytra/DaemonCommandRepository.php @@ -0,0 +1,37 @@ +server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/commands', $this->server->uuid), + [ + 'json' => ['commands' => is_array($command) ? $command : [$command]], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Elytra/DaemonConfigurationRepository.php b/app/Repositories/Elytra/DaemonConfigurationRepository.php new file mode 100644 index 000000000..90a7ef21c --- /dev/null +++ b/app/Repositories/Elytra/DaemonConfigurationRepository.php @@ -0,0 +1,50 @@ +getHttpClient()->get('/api/system' . (!is_null($version) ? '?v=' . $version : '')); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + + return json_decode($response->getBody()->__toString(), true); + } + + /** + * Updates the configuration information for a daemon. Updates the information for + * this instance using a passed-in model. This allows us to change plenty of information + * in the model, and still use the old, pre-update model to actually make the HTTP request. + * + * @throws DaemonConnectionException + */ + public function update(Node $node): ResponseInterface + { + try { + return $this->getHttpClient()->post( + '/api/update', + ['json' => $node->getConfiguration()] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Elytra/DaemonFileRepository.php b/app/Repositories/Elytra/DaemonFileRepository.php new file mode 100644 index 000000000..af8db9be6 --- /dev/null +++ b/app/Repositories/Elytra/DaemonFileRepository.php @@ -0,0 +1,301 @@ +server, Server::class); + + try { + $response = $this->getHttpClient()->get( + sprintf('/api/servers/%s/files/contents', $this->server->uuid), + [ + 'query' => ['file' => $path], + ] + ); + } catch (ClientException|TransferException $exception) { + throw new DaemonConnectionException($exception); + } + + $length = (int) Arr::get($response->getHeader('Content-Length'), 0, 0); + if ($notLargerThan && $length > $notLargerThan) { + throw new FileSizeTooLargeException(); + } + + return $response->getBody()->__toString(); + } + + /** + * Save new contents to a given file. This works for both creating and updating + * a file. + * + * @throws DaemonConnectionException + */ + public function putContent(string $path, string $content): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/write', $this->server->uuid), + [ + 'query' => ['file' => $path], + 'body' => $content, + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Return a directory listing for a given path. + * + * @throws DaemonConnectionException + */ + public function getDirectory(string $path): array + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $response = $this->getHttpClient()->get( + sprintf('/api/servers/%s/files/list-directory', $this->server->uuid), + [ + 'query' => ['directory' => $path], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + + return json_decode($response->getBody(), true); + } + + /** + * Creates a new directory for the server in the given $path. + * + * @throws DaemonConnectionException + */ + public function createDirectory(string $name, string $path): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/create-directory', $this->server->uuid), + [ + 'json' => [ + 'name' => $name, + 'path' => $path, + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Renames or moves a file on the remote machine. + * + * @throws DaemonConnectionException + */ + public function renameFiles(?string $root, array $files): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->put( + sprintf('/api/servers/%s/files/rename', $this->server->uuid), + [ + 'json' => [ + 'root' => $root ?? '/', + 'files' => $files, + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Copy a given file and give it a unique name. + * + * @throws DaemonConnectionException + */ + public function copyFile(string $location): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/copy', $this->server->uuid), + [ + 'json' => [ + 'location' => $location, + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Delete a file or folder for the server. + * + * @throws DaemonConnectionException + */ + public function deleteFiles(?string $root, array $files): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/delete', $this->server->uuid), + [ + 'json' => [ + 'root' => $root ?? '/', + 'files' => $files, + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Compress the given files or folders in the given root. + * + * @throws DaemonConnectionException + */ + public function compressFiles(?string $root, array $files): array + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $response = $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/compress', $this->server->uuid), + [ + 'json' => [ + 'root' => $root ?? '/', + 'files' => $files, + ], + // Wait for up to 15 minutes for the archive to be completed when calling this endpoint + // since it will likely take quite awhile for large directories. + 'timeout' => 60 * 15, + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + + return json_decode($response->getBody(), true); + } + + /** + * Decompresses a given archive file. + * + * @throws DaemonConnectionException + */ + public function decompressFile(?string $root, string $file): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/decompress', $this->server->uuid), + [ + 'json' => [ + 'root' => $root ?? '/', + 'file' => $file, + ], + // Wait for up to 15 minutes for the decompress to be completed when calling this endpoint + // since it will likely take quite awhile for large directories. + 'timeout' => 60 * 15, + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Chmods the given files. + * + * @throws DaemonConnectionException + */ + public function chmodFiles(?string $root, array $files): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/chmod', $this->server->uuid), + [ + 'json' => [ + 'root' => $root ?? '/', + 'files' => $files, + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Pulls a file from the given URL and saves it to the disk. + * + * @throws DaemonConnectionException + */ + public function pull(string $url, ?string $directory, array $params = []): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + $attributes = [ + 'url' => $url, + 'root' => $directory ?? '/', + 'file_name' => $params['filename'] ?? null, + 'use_header' => $params['use_header'] ?? null, + 'foreground' => $params['foreground'] ?? null, + ]; + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/files/pull', $this->server->uuid), + [ + 'json' => array_filter($attributes, fn ($value) => !is_null($value)), + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Elytra/DaemonPowerRepository.php b/app/Repositories/Elytra/DaemonPowerRepository.php new file mode 100644 index 000000000..2b6f339a6 --- /dev/null +++ b/app/Repositories/Elytra/DaemonPowerRepository.php @@ -0,0 +1,35 @@ +server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/power', $this->server->uuid), + ['json' => ['action' => $action]] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Elytra/DaemonRepository.php b/app/Repositories/Elytra/DaemonRepository.php new file mode 100644 index 000000000..5803579c3 --- /dev/null +++ b/app/Repositories/Elytra/DaemonRepository.php @@ -0,0 +1,69 @@ +server = $server; + + $this->setNode($this->server->node); + + return $this; + } + + /** + * Set the node model this request is stemming from. + */ + public function setNode(Node $node): self + { + $this->node = $node; + + return $this; + } + + /** + * Return an instance of the Guzzle HTTP Client to be used for requests. + */ + public function getHttpClient(array $headers = []): Client + { + Assert::isInstanceOf($this->node, Node::class); + + return new Client([ + 'verify' => $this->app->environment('production'), + 'base_uri' => $this->node->getConnectionAddress(), + 'timeout' => config('pterodactyl.guzzle.timeout'), + 'connect_timeout' => config('pterodactyl.guzzle.connect_timeout'), + 'headers' => array_merge($headers, [ + 'Authorization' => 'Bearer ' . $this->node->getDecryptedKey(), + 'Accept' => 'application/json', + 'Content-Type' => 'application/json', + ]), + ]); + } +} diff --git a/app/Repositories/Elytra/DaemonServerRepository.php b/app/Repositories/Elytra/DaemonServerRepository.php new file mode 100644 index 000000000..d7ee51a81 --- /dev/null +++ b/app/Repositories/Elytra/DaemonServerRepository.php @@ -0,0 +1,162 @@ +server, Server::class); + + try { + $response = $this->getHttpClient()->get( + sprintf('/api/servers/%s', $this->server->uuid) + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception, false); + } + + return json_decode($response->getBody()->__toString(), true); + } + + /** + * Creates a new server on the Wings daemon. + * + * @throws DaemonConnectionException + */ + public function create(bool $startOnCompletion = true): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient()->post('/api/servers', [ + 'json' => [ + 'uuid' => $this->server->uuid, + 'start_on_completion' => $startOnCompletion, + ], + ]); + } catch (GuzzleException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Triggers a server sync on Wings. + * + * @throws DaemonConnectionException + */ + public function sync(): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient()->post("/api/servers/{$this->server->uuid}/sync"); + } catch (GuzzleException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Delete a server from the daemon, forcibly if passed. + * + * @throws DaemonConnectionException + */ + public function delete(): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient()->delete('/api/servers/' . $this->server->uuid); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Reinstall a server on the daemon. + * + * @throws DaemonConnectionException + */ + public function reinstall(): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient()->post(sprintf( + '/api/servers/%s/reinstall', + $this->server->uuid + )); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Requests the daemon to create a full archive of the server. Once the daemon is finished + * they will send a POST request to "/api/remote/servers/{uuid}/archive" with a boolean. + * + * @throws DaemonConnectionException + */ + public function requestArchive(): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient()->post(sprintf( + '/api/servers/%s/archive', + $this->server->uuid + )); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Revokes a single user's JTI by using their ID. This is simply a helper function to + * make it easier to revoke tokens on the fly. This ensures that the JTI key is formatted + * correctly and avoids any costly mistakes in the codebase. + * + * @throws DaemonConnectionException + */ + public function revokeUserJTI(int $id): void + { + Assert::isInstanceOf($this->server, Server::class); + + $this->revokeJTIs([md5($id . $this->server->uuid)]); + } + + /** + * Revokes an array of JWT JTI's by marking any token generated before the current time on + * the Wings instance as being invalid. + * + * @throws DaemonConnectionException + */ + protected function revokeJTIs(array $jtis): void + { + Assert::isInstanceOf($this->server, Server::class); + + try { + $this->getHttpClient() + ->post(sprintf('/api/servers/%s/ws/deny', $this->server->uuid), [ + 'json' => ['jtis' => $jtis], + ]); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Elytra/DaemonTransferRepository.php b/app/Repositories/Elytra/DaemonTransferRepository.php new file mode 100644 index 000000000..9a2cd2160 --- /dev/null +++ b/app/Repositories/Elytra/DaemonTransferRepository.php @@ -0,0 +1,37 @@ +getHttpClient()->post(sprintf('/api/servers/%s/transfer', $this->server->uuid), [ + 'json' => [ + 'server_id' => $this->server->uuid, + 'url' => $targetNode->getConnectionAddress() . '/api/transfers', + 'token' => 'Bearer ' . $token->toString(), + 'server' => [ + 'uuid' => $this->server->uuid, + 'start_on_completion' => false, + ], + ], + ]); + } catch (GuzzleException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Wings/DaemonBackupRepository.php b/app/Repositories/Wings/DaemonBackupRepository.php new file mode 100644 index 000000000..228784089 --- /dev/null +++ b/app/Repositories/Wings/DaemonBackupRepository.php @@ -0,0 +1,97 @@ +adapter = $adapter; + + return $this; + } + + /** + * Tells the remote Daemon to begin generating a backup for the server. + * + * @throws DaemonConnectionException + */ + public function backup(Backup $backup): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/backup', $this->server->uuid), + [ + 'json' => [ + 'adapter' => $this->adapter ?? config('backups.default'), + 'uuid' => $backup->uuid, + 'ignore' => implode("\n", $backup->ignored_files), + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Sends a request to Wings to begin restoring a backup for a server. + * + * @throws DaemonConnectionException + */ + public function restore(Backup $backup, ?string $url = null, bool $truncate = false): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->post( + sprintf('/api/servers/%s/backup/%s/restore', $this->server->uuid, $backup->uuid), + [ + 'json' => [ + 'adapter' => $backup->disk, + 'truncate_directory' => $truncate, + 'download_url' => $url ?? '', + ], + ] + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } + + /** + * Deletes a backup from the daemon. + * + * @throws DaemonConnectionException + */ + public function delete(Backup $backup): ResponseInterface + { + Assert::isInstanceOf($this->server, Server::class); + + try { + return $this->getHttpClient()->delete( + sprintf('/api/servers/%s/backup/%s', $this->server->uuid, $backup->uuid) + ); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Repositories/Wings/DaemonFileRepository.php b/app/Repositories/Wings/DaemonFileRepository.php index af8db9be6..19eb43369 100644 --- a/app/Repositories/Wings/DaemonFileRepository.php +++ b/app/Repositories/Wings/DaemonFileRepository.php @@ -37,7 +37,7 @@ class DaemonFileRepository extends DaemonRepository 'query' => ['file' => $path], ] ); - } catch (ClientException|TransferException $exception) { + } catch (ClientException | TransferException $exception) { throw new DaemonConnectionException($exception); } @@ -291,7 +291,7 @@ class DaemonFileRepository extends DaemonRepository return $this->getHttpClient()->post( sprintf('/api/servers/%s/files/pull', $this->server->uuid), [ - 'json' => array_filter($attributes, fn ($value) => !is_null($value)), + 'json' => array_filter($attributes, fn($value) => !is_null($value)), ] ); } catch (TransferException $exception) { diff --git a/app/Repositories/Wings/DaemonRepository.php b/app/Repositories/Wings/DaemonRepository.php index 5803579c3..4164f64c1 100644 --- a/app/Repositories/Wings/DaemonRepository.php +++ b/app/Repositories/Wings/DaemonRepository.php @@ -21,9 +21,7 @@ abstract class DaemonRepository /** * DaemonRepository constructor. */ - public function __construct(protected Application $app) - { - } + public function __construct(protected Application $app) {} /** * Set the server model this request is stemming from. diff --git a/app/Repositories/Wings/DaemonRevocationRepository.php b/app/Repositories/Wings/DaemonRevocationRepository.php new file mode 100644 index 000000000..138b53b1d --- /dev/null +++ b/app/Repositories/Wings/DaemonRevocationRepository.php @@ -0,0 +1,28 @@ +getHttpClient()->post('/api/deauthorize-user', [ + 'json' => ['user' => $user, 'servers' => $servers], + ]); + } catch (TransferException $exception) { + throw new DaemonConnectionException($exception); + } + } +} diff --git a/app/Services/Backups/Wings/DeleteBackupService.php b/app/Services/Backups/Wings/DeleteBackupService.php new file mode 100644 index 000000000..3ab7af690 --- /dev/null +++ b/app/Services/Backups/Wings/DeleteBackupService.php @@ -0,0 +1,81 @@ +is_locked && ($backup->is_successful && !is_null($backup->completed_at))) { + throw new BackupLockedException(); + } + + if ($backup->disk === Backup::ADAPTER_AWS_S3) { + $this->deleteFromS3($backup); + + return; + } + + $this->connection->transaction(function () use ($backup) { + try { + $this->daemonBackupRepository->setServer($backup->server)->delete($backup); + } catch (DaemonConnectionException $exception) { + $previous = $exception->getPrevious(); + // Don't fail the request if the Daemon responds with a 404, just assume the backup + // doesn't actually exist and remove its reference from the Panel as well. + if (!$previous instanceof ClientException || $previous->getResponse()->getStatusCode() !== Response::HTTP_NOT_FOUND) { + throw $exception; + } + } + + $backup->delete(); + }); + } + + /** + * Deletes a backup from an S3 disk. + * + * @throws \Throwable + */ + protected function deleteFromS3(Backup $backup): void + { + $this->connection->transaction(function () use ($backup) { + $backup->delete(); + + /** @var \Pterodactyl\Extensions\Filesystem\S3Filesystem $adapter */ + $adapter = $this->manager->adapter(Backup::ADAPTER_AWS_S3); + + $adapter->getClient()->deleteObject([ + 'Bucket' => $adapter->getBucket(), + 'Key' => sprintf('%s/%s.tar.gz', $backup->server->uuid, $backup->uuid), + ]); + }); + } +} diff --git a/app/Services/Backups/Wings/DownloadLinkService.php b/app/Services/Backups/Wings/DownloadLinkService.php new file mode 100644 index 000000000..64b0733f7 --- /dev/null +++ b/app/Services/Backups/Wings/DownloadLinkService.php @@ -0,0 +1,60 @@ +disk === Backup::ADAPTER_AWS_S3) { + return $this->getS3BackupUrl($backup); + } + + $token = $this->jwtService + ->setExpiresAt(CarbonImmutable::now()->addMinutes(15)) + ->setUser($user) + ->setClaims([ + 'backup_uuid' => $backup->uuid, + 'server_uuid' => $backup->server->uuid, + ]) + ->handle($backup->server->node, $user->id . $backup->server->uuid); + + return sprintf('%s/download/backup?token=%s', $backup->server->node->getConnectionAddress(), $token->toString()); + } + + /** + * Returns a signed URL that allows us to download a file directly out of a non-public + * S3 bucket by using a signed URL. + */ + protected function getS3BackupUrl(Backup $backup): string + { + /** @var \Pterodactyl\Extensions\Filesystem\S3Filesystem $adapter */ + $adapter = $this->backupManager->adapter(Backup::ADAPTER_AWS_S3); + + $request = $adapter->getClient()->createPresignedRequest( + $adapter->getClient()->getCommand('GetObject', [ + 'Bucket' => $adapter->getBucket(), + 'Key' => sprintf('%s/%s.tar.gz', $backup->server->uuid, $backup->uuid), + 'ContentType' => 'application/x-gzip', + ]), + CarbonImmutable::now()->addMinutes(5) + ); + + return $request->getUri()->__toString(); + } +} diff --git a/app/Services/Backups/Wings/InitiateBackupService.php b/app/Services/Backups/Wings/InitiateBackupService.php new file mode 100644 index 000000000..c89e2f5f4 --- /dev/null +++ b/app/Services/Backups/Wings/InitiateBackupService.php @@ -0,0 +1,134 @@ +isLocked = $isLocked; + + return $this; + } + + /** + * Sets the files to be ignored by this backup. + * + * @param string[]|null $ignored + */ + public function setIgnoredFiles(?array $ignored): self + { + if (is_array($ignored)) { + foreach ($ignored as $value) { + Assert::string($value); + } + } + + // Set the ignored files to be any values that are not empty in the array. Don't use + // the PHP empty function here incase anything that is "empty" by default (0, false, etc.) + // were passed as a file or folder name. + $this->ignoredFiles = is_null($ignored) ? [] : array_filter($ignored, function ($value) { + return strlen($value) > 0; + }); + + return $this; + } + + /** + * Initiates the backup process for a server on Wings. + * + * @throws \Throwable + * @throws TooManyBackupsException + * @throws TooManyRequestsHttpException + */ + public function handle(Server $server, ?string $name = null, bool $override = false): Backup + { + $limit = config('backups.throttles.limit'); + $period = config('backups.throttles.period'); + if ($period > 0) { + $previous = $this->repository->getBackupsGeneratedDuringTimespan($server->id, $period); + if ($previous->count() >= $limit) { + $message = sprintf('Only %d backups may be generated within a %d second span of time.', $limit, $period); + + throw new TooManyRequestsHttpException((int) CarbonImmutable::now()->diffInSeconds($previous->last()->created_at->addSeconds($period)), $message); + } + } + + // Check if the server has reached or exceeded its backup limit. + // completed_at == null will cover any ongoing backups, while is_successful == true will cover any completed backups. + $successful = $this->repository->getNonFailedBackups($server); + if ($server->backup_limit == null) { + $server->backup_limit = $successful->count() + 1; + }; + if (!$server->backup_limit || $successful->count() >= $server->backup_limit) { + // Do not allow the user to continue if this server is already at its limit and can't override. + if ($server->backup_limit == null) { + $server->backup_limit = 12; + }; + + if (!$override || $server->backup_limit <= 0) { + throw new TooManyBackupsException($server->backup_limit); + } + + // Get the oldest backup the server has that is not "locked" (indicating a backup that should + // never be automatically purged). If we find a backup we will delete it and then continue with + // this process. If no backup is found that can be used an exception is thrown. + /** @var Backup $oldest */ + $oldest = $successful->where('is_locked', false)->orderBy('created_at')->first(); + if (!$oldest) { + throw new TooManyBackupsException($server->backup_limit); + } + + $this->deleteBackupService->handle($oldest); + } + + return $this->connection->transaction(function () use ($server, $name) { + /** @var Backup $backup */ + $backup = $this->repository->create([ + 'server_id' => $server->id, + 'uuid' => Uuid::uuid4()->toString(), + 'name' => trim($name) ?: sprintf('Backup at %s', CarbonImmutable::now()->toDateTimeString()), + 'ignored_files' => array_values($this->ignoredFiles ?? []), + 'disk' => $server->node->backupDisk, + 'is_locked' => $this->isLocked, + ], true, true); + + $this->daemonBackupRepository->setServer($server) + ->setBackupAdapter($server->node->backupDisk) + ->backup($backup); + + return $backup; + }); + } +} diff --git a/app/Services/Captcha/CaptchaManager.php b/app/Services/Captcha/CaptchaManager.php index e62a30848..e2ccde885 100644 --- a/app/Services/Captcha/CaptchaManager.php +++ b/app/Services/Captcha/CaptchaManager.php @@ -2,6 +2,7 @@ namespace Pterodactyl\Services\Captcha; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Manager; use Pterodactyl\Services\Captcha\Providers\TurnstileProvider; use Pterodactyl\Services\Captcha\Providers\HCaptchaProvider; @@ -73,6 +74,8 @@ class CaptchaManager extends Manager */ public function getWidget(): string { + + if ($this->getDefaultDriver() === 'none') { return ''; } @@ -103,4 +106,4 @@ class CaptchaManager extends Manager return $this->driver()->getScriptIncludes(); } -} \ No newline at end of file +} diff --git a/app/Services/Captcha/Providers/RecaptchaProvider.php b/app/Services/Captcha/Providers/RecaptchaProvider.php index e787ed4b0..c436bfd07 100644 --- a/app/Services/Captcha/Providers/RecaptchaProvider.php +++ b/app/Services/Captcha/Providers/RecaptchaProvider.php @@ -9,10 +9,11 @@ use Illuminate\Support\Facades\Log; class RecaptchaProvider implements CaptchaProviderInterface { - private const VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify'; + /* private const VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify'; */ protected string $siteKey; protected string $secretKey; + protected string $verifyUrl = 'https://www.google.com/recaptcha/api/siteverify'; public function __construct(array $config) { @@ -29,7 +30,7 @@ class RecaptchaProvider implements CaptchaProviderInterface try { $httpResponse = Http::timeout(10) ->asForm() - ->post(self::VERIFY_URL, [ + ->post($this->verifyUrl, [ 'secret' => $this->secretKey, 'response' => $response, 'remoteip' => $remoteIp, @@ -106,4 +107,5 @@ class RecaptchaProvider implements CaptchaProviderInterface { return !empty($this->siteKey) && !empty($this->secretKey); } -} \ No newline at end of file +} + diff --git a/app/Services/Elytra/Jobs/BackupJob.php b/app/Services/Elytra/Jobs/BackupJob.php index c6ec1a2a3..d0de38e88 100644 --- a/app/Services/Elytra/Jobs/BackupJob.php +++ b/app/Services/Elytra/Jobs/BackupJob.php @@ -372,13 +372,9 @@ class BackupJob implements Job } } - private function handleRestoreCompletion(ElytraJob $job, array $statusData): void - { - } + private function handleRestoreCompletion(ElytraJob $job, array $statusData): void {} - private function handleDownloadCompletion(ElytraJob $job, array $statusData): void - { - } + private function handleDownloadCompletion(ElytraJob $job, array $statusData): void {} private function submitDeleteAllJob(Server $server, ElytraJob $job, ElytraRepository $elytraRepository): string { @@ -576,4 +572,5 @@ class BackupJob implements Job { return 'Backup operation failed. Please contact an administrator for details.'; // todo: better sanitization - elllie } -} \ No newline at end of file +} + diff --git a/app/Services/Subdomain/SubdomainManagementService.php b/app/Services/Subdomain/SubdomainManagementService.php index 858fac14c..695b4961f 100644 --- a/app/Services/Subdomain/SubdomainManagementService.php +++ b/app/Services/Subdomain/SubdomainManagementService.php @@ -8,16 +8,10 @@ use Pterodactyl\Models\ServerSubdomain; use Pterodactyl\Contracts\Dns\DnsProviderInterface; use Pterodactyl\Contracts\Subdomain\SubdomainFeatureInterface; use Pterodactyl\Exceptions\Dns\DnsProviderException; -use Pterodactyl\Services\Subdomain\Features\FactorioSubdomainFeature; -use Pterodactyl\Services\Subdomain\Features\MinecraftSubdomainFeature; -use Pterodactyl\Services\Subdomain\Features\RustSubdomainFeature; -use Pterodactyl\Services\Subdomain\Features\ScpSlSubdomainFeature; -use Pterodactyl\Services\Subdomain\Features\TeamSpeakSubdomainFeature; -use Pterodactyl\Services\Dns\Providers\CloudflareProvider; -use Pterodactyl\Services\Dns\Providers\HetznerProvider; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; -use Pterodactyl\Services\Dns\Providers\Route53Provider; +use Pterodactyl\Enums\Subdomain\Providers; +use Pterodactyl\Enums\Subdomain\Features; class SubdomainManagementService { @@ -27,20 +21,10 @@ class SubdomainManagementService public function __construct() { // Register DNS providers - $this->dnsProviders = [ - 'cloudflare' => CloudflareProvider::class, - 'hetzner' => HetznerProvider::class, - 'route53' => Route53Provider::class - ]; + $this->dnsProviders = Providers::all(); // Register subdomain features - $this->subdomainFeatures = [ - 'subdomain_factorio' => FactorioSubdomainFeature::class, - 'subdomain_minecraft' => MinecraftSubdomainFeature::class, - 'subdomain_rust' => RustSubdomainFeature::class, - 'subdomain_scpsl' => ScpSlSubdomainFeature::class, - 'subdomain_teamspeak' => TeamSpeakSubdomainFeature::class, - ]; + $this->subdomainFeatures = Features::all(); } /** diff --git a/app/Transformers/Api/Client/ServerTransformer.php b/app/Transformers/Api/Client/ServerTransformer.php index 46578a0f7..2779534b9 100644 --- a/app/Transformers/Api/Client/ServerTransformer.php +++ b/app/Transformers/Api/Client/ServerTransformer.php @@ -16,136 +16,138 @@ use Pterodactyl\Services\Servers\StartupCommandService; class ServerTransformer extends BaseClientTransformer { - protected array $defaultIncludes = ['allocations', 'variables']; + protected array $defaultIncludes = ['allocations', 'variables']; - protected array $availableIncludes = ['egg', 'subusers']; + protected array $availableIncludes = ['egg', 'subusers']; - public function getResourceName(): string - { - return Server::RESOURCE_NAME; - } - - /** - * Transform a server model into a representation that can be returned - * to a client. - */ - public function transform(Server $server): array - { - /** @var StartupCommandService $service */ - $service = Container::getInstance()->make(StartupCommandService::class); - - $user = $this->request->user(); - - return [ - 'server_owner' => $user->id === $server->owner_id, - 'identifier' => $server->uuidShort, - 'internal_id' => $server->id, - 'uuid' => $server->uuid, - 'name' => $server->name, - 'node' => $server->node->name, - 'is_node_under_maintenance' => $server->node->isUnderMaintenance(), - 'sftp_details' => [ - 'ip' => $server->node->fqdn, - 'port' => $server->node->daemonSFTP, - ], - 'sftp_alias' => [ - 'ip' => $server->node->SFTPAliasAddress, - 'port' => $server->node->SFTPAliasPort - ], - 'description' => $server->description, - 'limits' => [ - 'memory' => $server->memory, - 'overhead_memory' => $server->overhead_memory, - 'swap' => $server->swap, - 'disk' => $server->disk, - 'io' => $server->io, - 'cpu' => $server->cpu, - 'threads' => $server->threads, - 'oom_disabled' => $server->oom_disabled, - ], - 'invocation' => $service->handle($server, !$user->can(Permission::ACTION_STARTUP_READ, $server)), - 'docker_image' => $server->image, - 'egg_features' => $server->egg->inherit_features, - 'egg' => $server->egg->uuid, - 'feature_limits' => [ - 'databases' => $server->database_limit, - 'allocations' => $server->allocation_limit, - 'backups' => $server->backup_limit, - 'backupStorageMb' => $server->backup_storage_limit, - ], - 'status' => $server->status, - // This field is deprecated, please use "status". - 'is_suspended' => $server->isSuspended(), - // This field is deprecated, please use "status". - 'is_installing' => !$server->isInstalled(), - 'is_transferring' => !is_null($server->transfer), - ]; - } - - /** - * Returns the allocations associated with this server. - * - * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException - */ - public function includeAllocations(Server $server): Collection - { - $transformer = $this->makeTransformer(AllocationTransformer::class); - - $user = $this->request->user(); - // While we include this permission, we do need to actually handle it slightly different here - // for the purpose of keeping things functionally working. If the user doesn't have read permissions - // for the allocations we'll only return the primary server allocation, and any notes associated - // with it will be hidden. - // - // This allows us to avoid too much permission regression, without also hiding information that - // is generally needed for the frontend to make sense when browsing or searching results. - if (!$user->can(Permission::ACTION_ALLOCATION_READ, $server)) { - $primary = clone $server->allocation; - $primary->notes = null; - - return $this->collection([$primary], $transformer, Allocation::RESOURCE_NAME); + public function getResourceName(): string + { + return Server::RESOURCE_NAME; } - return $this->collection($server->allocations, $transformer, Allocation::RESOURCE_NAME); - } + /** + * Transform a server model into a representation that can be returned + * to a client. + */ + public function transform(Server $server): array + { + /** @var StartupCommandService $service */ + $service = Container::getInstance()->make(StartupCommandService::class); - /** - * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException - */ - public function includeVariables(Server $server): Collection|NullResource - { - if (!$this->request->user()->can(Permission::ACTION_STARTUP_READ, $server)) { - return $this->null(); + $user = $this->request->user(); + + return [ + 'server_owner' => $user->id === $server->owner_id, + 'identifier' => $server->uuidShort, + 'internal_id' => $server->id, + 'uuid' => $server->uuid, + 'name' => $server->name, + 'node' => $server->node->name, + 'is_node_under_maintenance' => $server->node->isUnderMaintenance(), + 'sftp_details' => [ + 'ip' => $server->node->fqdn, + 'port' => $server->node->daemonSFTP, + ], + 'sftp_alias' => [ + 'ip' => $server->node->SFTPAliasAddress, + 'port' => $server->node->SFTPAliasPort + ], + 'description' => $server->description, + 'limits' => [ + 'memory' => $server->memory, + 'overhead_memory' => $server->overhead_memory, + 'swap' => $server->swap, + 'disk' => $server->disk, + 'io' => $server->io, + 'cpu' => $server->cpu, + 'threads' => $server->threads, + 'oom_disabled' => $server->oom_disabled, + ], + 'invocation' => $service->handle($server, !$user->can(Permission::ACTION_STARTUP_READ, $server)), + 'docker_image' => $server->image, + 'egg_features' => $server->egg->inherit_features, + 'egg' => $server->egg->uuid, + 'feature_limits' => [ + 'databases' => $server->database_limit, + 'allocations' => $server->allocation_limit, + 'backups' => $server->backup_limit, + 'backupStorageMb' => $server->backup_storage_limit, + ], + 'status' => $server->status, + // This field is deprecated, please use "status". + 'is_suspended' => $server->isSuspended(), + // This field is deprecated, please use "status". + 'is_installing' => !$server->isInstalled(), + 'is_transferring' => !is_null($server->transfer), + 'daemon_type' => $server->node->daemonType, + 'backup_disk' => $server->node->backupDisk, + ]; } - return $this->collection( - $server->variables->where('user_viewable', true), - $this->makeTransformer(EggVariableTransformer::class), - EggVariable::RESOURCE_NAME - ); - } + /** + * Returns the allocations associated with this server. + * + * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException + */ + public function includeAllocations(Server $server): Collection + { + $transformer = $this->makeTransformer(AllocationTransformer::class); - /** - * Returns the egg associated with this server. - * - * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException - */ - public function includeEgg(Server $server): Item - { - return $this->item($server->egg, $this->makeTransformer(EggTransformer::class), Egg::RESOURCE_NAME); - } + $user = $this->request->user(); + // While we include this permission, we do need to actually handle it slightly different here + // for the purpose of keeping things functionally working. If the user doesn't have read permissions + // for the allocations we'll only return the primary server allocation, and any notes associated + // with it will be hidden. + // + // This allows us to avoid too much permission regression, without also hiding information that + // is generally needed for the frontend to make sense when browsing or searching results. + if (!$user->can(Permission::ACTION_ALLOCATION_READ, $server)) { + $primary = clone $server->allocation; + $primary->notes = null; - /** - * Returns the subusers associated with this server. - * - * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException - */ - public function includeSubusers(Server $server): Collection|NullResource - { - if (!$this->request->user()->can(Permission::ACTION_USER_READ, $server)) { - return $this->null(); + return $this->collection([$primary], $transformer, Allocation::RESOURCE_NAME); + } + + return $this->collection($server->allocations, $transformer, Allocation::RESOURCE_NAME); } - return $this->collection($server->subusers, $this->makeTransformer(SubuserTransformer::class), Subuser::RESOURCE_NAME); - } + /** + * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException + */ + public function includeVariables(Server $server): Collection|NullResource + { + if (!$this->request->user()->can(Permission::ACTION_STARTUP_READ, $server)) { + return $this->null(); + } + + return $this->collection( + $server->variables->where('user_viewable', true), + $this->makeTransformer(EggVariableTransformer::class), + EggVariable::RESOURCE_NAME + ); + } + + /** + * Returns the egg associated with this server. + * + * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException + */ + public function includeEgg(Server $server): Item + { + return $this->item($server->egg, $this->makeTransformer(EggTransformer::class), Egg::RESOURCE_NAME); + } + + /** + * Returns the subusers associated with this server. + * + * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException + */ + public function includeSubusers(Server $server): Collection|NullResource + { + if (!$this->request->user()->can(Permission::ACTION_USER_READ, $server)) { + return $this->null(); + } + + return $this->collection($server->subusers, $this->makeTransformer(SubuserTransformer::class), Subuser::RESOURCE_NAME); + } } diff --git a/composer.json b/composer.json index 1e6ea9ab0..8615908d7 100644 --- a/composer.json +++ b/composer.json @@ -72,13 +72,15 @@ ], "psr-4": { "Pterodactyl\\": "app/", + "Pyrodactyl\\": "app/", "Database\\Factories\\": "database/Factories/", "Database\\Seeders\\": "database/Seeders/" } }, "autoload-dev": { "psr-4": { - "Pterodactyl\\Tests\\": "tests/" + "Pterodactyl\\Tests\\": "tests/", + "Pyrodactyl\\Tests\\": "tests/" } }, "scripts": { diff --git a/config/backups.php b/config/backups.php index f226a4644..c19f6664a 100644 --- a/config/backups.php +++ b/config/backups.php @@ -7,7 +7,7 @@ return [ // will be stored in this location by default. It is possible to change this once backups // have been made, without losing data. // Options: elytra, wings (legacy), s3, rustic_local, rustic_s3 - 'default' => env('APP_BACKUP_DRIVER', Backup::ADAPTER_RUSTIC_LOCAL), + 'default' => env('APP_BACKUP_DRIVER', Backup::ADAPTER_WINGS), // This value is used to determine the lifespan of UploadPart presigned urls that wings // uses to upload backups to S3 storage. Value is in minutes, so this would default to an hour. diff --git a/config/captcha.php b/config/captcha.php index 29827c9df..729810c4b 100644 --- a/config/captcha.php +++ b/config/captcha.php @@ -1,5 +1,5 @@ env('CAPTCHA_ENABLED', false), + 'enabled' => env('CAPTCHA_ENABLED', true), ]; diff --git a/config/javascript.php b/config/javascript.php index 57504395d..ae21ee45c 100644 --- a/config/javascript.php +++ b/config/javascript.php @@ -26,5 +26,5 @@ return [ | That way, you can access vars, like "SomeNamespace.someVariable." | */ - 'js_namespace' => 'Pterodactyl', + 'js_namespace' => 'Pyrodactyl', ]; diff --git a/database/Factories/NodeFactory.php b/database/Factories/NodeFactory.php index 099ce4e1b..fa24b3b6c 100644 --- a/database/Factories/NodeFactory.php +++ b/database/Factories/NodeFactory.php @@ -10,35 +10,37 @@ use Illuminate\Database\Eloquent\Factories\Factory; class NodeFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Node::class; - /** - * Define the model's default state. - */ - public function definition(): array - { - return [ - 'uuid' => Uuid::uuid4()->toString(), - 'public' => true, - 'name' => 'FactoryNode_' . Str::random(10), - 'fqdn' => $this->faker->unique()->ipv4, - 'scheme' => 'http', - 'behind_proxy' => false, - 'memory' => 1024, - 'memory_overallocate' => 0, - 'disk' => 10240, - 'disk_overallocate' => 0, - 'upload_size' => 100, - 'daemon_token_id' => Str::random(Node::DAEMON_TOKEN_ID_LENGTH), - 'daemon_token' => Crypt::encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)), - 'daemonListen' => 8080, - 'daemonSFTP' => 2022, - 'daemonBase' => '/var/lib/pterodactyl/volumes', - ]; - } + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Node::class; + + /** + * Define the model's default state. + */ + public function definition(): array + { + return [ + 'uuid' => Uuid::uuid4()->toString(), + 'public' => true, + 'name' => 'FactoryNode_' . Str::random(10), + 'fqdn' => $this->faker->unique()->ipv4, + 'scheme' => 'http', + 'behind_proxy' => false, + 'memory' => 1024, + 'memory_overallocate' => 0, + 'disk' => 10240, + 'disk_overallocate' => 0, + 'upload_size' => 100, + 'daemon_token_id' => Str::random(Node::DAEMON_TOKEN_ID_LENGTH), + 'daemon_token' => Crypt::encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)), + 'daemonListen' => 8080, + 'daemonSFTP' => 2022, + 'daemonBase' => '/var/lib/pterodactyl/volumes', + 'backupDisk' => 'local', + ]; + } } diff --git a/database/migrations/2025_12_07_022523_wings_or_elytra.php b/database/migrations/2025_12_07_022523_wings_or_elytra.php new file mode 100644 index 000000000..fd73769b1 --- /dev/null +++ b/database/migrations/2025_12_07_022523_wings_or_elytra.php @@ -0,0 +1,28 @@ +enum('daemonType', ['wings', 'elytra'])->default("elytra")->comment("What daemon Type this node uses"); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table("nodes", function (Blueprint $table) { + $table->dropColumn('daemonType'); + }); + } +}; diff --git a/database/migrations/2026_01_02_044710_backup_disk.php b/database/migrations/2026_01_02_044710_backup_disk.php new file mode 100644 index 000000000..bffa55236 --- /dev/null +++ b/database/migrations/2026_01_02_044710_backup_disk.php @@ -0,0 +1,28 @@ +string('backupDisk')->default("rustic_local")->comment("What Backup type this Node uses"); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table("nodes", function (Blueprint $table) { + $table->dropColumn('backupDisk'); + }); + } +}; diff --git a/package.json b/package.json index 4155a5b0b..1ae22e5f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pyrodactyl", - "version": "4.0.0-dev", + "version": "canary", "buildNumber": "30", "engines": { "node": ">=20.0" @@ -97,6 +97,7 @@ "postcss-import": "^16.1.1", "prettier": "^3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", + "rollup-plugin-visualizer": "^6.0.5", "tailwind-scrollbar": "^4.0.2", "ts-essentials": "^10.1.1", "tw-animate-css": "^1.3.6", @@ -123,4 +124,4 @@ "not dead" ], "packageManager": "pnpm@10.13.1" -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7973ec5e6..41716d399 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -273,6 +273,9 @@ importers: prettier-plugin-tailwindcss: specifier: ^0.6.14 version: 0.6.14(@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.6.2))(prettier@3.6.2) + rollup-plugin-visualizer: + specifier: ^6.0.5 + version: 6.0.5(rollup@4.46.2) tailwind-scrollbar: specifier: ^4.0.2 version: 4.0.2(react@19.1.1)(tailwindcss@4.1.11) @@ -2120,6 +2123,10 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -2232,6 +2239,10 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2331,6 +2342,10 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2383,6 +2398,9 @@ packages: electron-to-chromium@1.5.180: resolution: {integrity: sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + enhanced-resolve@5.18.2: resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} @@ -2623,6 +2641,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -2762,6 +2784,11 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2770,6 +2797,10 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -2830,6 +2861,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -3092,6 +3127,10 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -3369,6 +3408,10 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3386,6 +3429,19 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rollup-plugin-visualizer@6.0.5: + resolution: {integrity: sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.46.2: resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3473,10 +3529,18 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} @@ -3496,6 +3560,10 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -3799,6 +3867,14 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -3806,6 +3882,14 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -5821,6 +5905,8 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-regex@5.0.1: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -5970,6 +6056,12 @@ snapshots: chownr@3.0.0: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clsx@2.1.1: {} cmdk@1.1.1(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): @@ -6065,6 +6157,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -6108,6 +6202,8 @@ snapshots: electron-to-chromium@1.5.180: {} + emoji-regex@8.0.0: {} + enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 @@ -6465,6 +6561,8 @@ snapshots: gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -6603,12 +6701,16 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-docker@2.2.1: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 @@ -6670,6 +6772,10 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + isarray@2.0.5: {} isexe@2.0.0: {} @@ -6898,6 +7004,12 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -7156,6 +7268,8 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + require-directory@2.1.1: {} + resolve-from@4.0.0: {} resolve@1.22.10: @@ -7172,6 +7286,15 @@ snapshots: reusify@1.1.0: {} + rollup-plugin-visualizer@6.0.5(rollup@4.46.2): + dependencies: + open: 8.4.2 + picomatch: 4.0.3 + source-map: 0.7.6 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.46.2 + rollup@4.46.2: dependencies: '@types/estree': 1.0.8 @@ -7296,11 +7419,19 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.7.6: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 @@ -7345,6 +7476,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + strip-json-comments@3.1.1: {} style-mod@4.1.2: {} @@ -7636,10 +7771,30 @@ snapshots: word-wrap@1.2.5: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} + yallist@3.1.1: {} yallist@5.0.0: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yocto-queue@0.1.0: {} yup@1.7.0: diff --git a/public/themes/pterodactyl/js/admin/new-server.js b/public/themes/pterodactyl/js/admin/new-server.js index 1437c04e2..cdcbc5fd7 100644 --- a/public/themes/pterodactyl/js/admin/new-server.js +++ b/public/themes/pterodactyl/js/admin/new-server.js @@ -17,6 +17,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. + $(document).ready(function() { $('#pNestId').select2({ placeholder: 'Select a Nest', @@ -44,7 +45,7 @@ $(document).ready(function() { }); let lastActiveBox = null; -$(document).on('click', function (event) { +$(document).on('click', function(event) { if (lastActiveBox !== null) { lastActiveBox.removeClass('box-primary'); } @@ -52,10 +53,10 @@ $(document).on('click', function (event) { lastActiveBox = $(event.target).closest('.box'); lastActiveBox.addClass('box-primary'); }); - -$('#pNodeId').on('change', function () { +$('#pNodeId').on('change', function() { currentNode = $(this).val(); - $.each(Pterodactyl.nodeData, function (i, v) { + + $.each(Pyrodactyl.nodeData, function(i, v) { if (v.id == currentNode) { $('#pAllocation').html('').select2({ data: v.allocations, @@ -67,9 +68,10 @@ $('#pNodeId').on('change', function () { }); }); -$('#pNestId').on('change', function (event) { +$('#pNestId').on('change', function(event) { + const nestId = $(this).val(); $('#pEggId').html('').select2({ - data: $.map(_.get(Pterodactyl.nests, $(this).val() + '.eggs', []), function (item) { + data: $.map(_.get(Pyrodactyl.nests, $(this).val() + '.eggs', []), function(item) { return { id: item.id, text: item.name, @@ -78,8 +80,8 @@ $('#pNestId').on('change', function (event) { }).change(); }); -$('#pEggId').on('change', function (event) { - let parentChain = _.get(Pterodactyl.nests, $('#pNestId').val(), null); +$('#pEggId').on('change', function(event) { + let parentChain = _.get(Pyrodactyl.nests, $('#pNestId').val(), null); let objectChain = _.get(parentChain, 'eggs.' + $(this).val(), null); const images = _.get(objectChain, 'docker_images', {}) @@ -100,7 +102,7 @@ $('#pEggId').on('change', function (event) { $('#pPackId').html('').select2({ data: [{ id: 0, text: 'No Service Pack' }].concat( - $.map(_.get(objectChain, 'packs', []), function (item, i) { + $.map(_.get(objectChain, 'packs', []), function(item, i) { return { id: item.id, text: item.name + ' (' + item.version + ')', @@ -117,7 +119,7 @@ $('#pEggId').on('change', function (event) { const variableIds = {}; $('#appendVariablesTo').html(''); - $.each(_.get(objectChain, 'variables', []), function (i, item) { + $.each(_.get(objectChain, 'variables', []), function(i, item) { variableIds[item.env_variable] = 'var_ref_' + item.id; let isRequired = (item.required === 1) ? 'Required ' : ''; @@ -138,7 +140,7 @@ $('#pEggId').on('change', function (event) { serviceVariablesUpdated($('#pEggId').val(), variableIds); }); -$('#pAllocation').on('change', function () { +$('#pAllocation').on('change', function() { updateAdditionalAllocations(); }); @@ -146,7 +148,7 @@ function updateAdditionalAllocations() { let currentAllocation = $('#pAllocation').val(); let currentNode = $('#pNodeId').val(); - $.each(Pterodactyl.nodeData, function (i, v) { + $.each(Pyrodactyl.nodeData, function(i, v) { if (v.id == currentNode) { let allocations = []; @@ -179,14 +181,14 @@ function initUserIdSelect(data) { dataType: 'json', delay: 250, - data: function (params) { + data: function(params) { return { filter: { email: params.term }, page: params.page, }; }, - processResults: function (data, params) { + processResults: function(data, params) { return { results: data }; }, @@ -194,20 +196,20 @@ function initUserIdSelect(data) { }, data: data, - escapeMarkup: function (markup) { return markup; }, + escapeMarkup: function(markup) { return markup; }, minimumInputLength: 2, - templateResult: function (data) { + templateResult: function(data) { if (data.loading) return escapeHtml(data.text); return ''; }, - templateSelection: function (data) { + templateSelection: function(data) { return '
\ \ User Image \ diff --git a/public/themes/pterodactyl/js/plugins/minecraft/eula.js b/public/themes/pterodactyl/js/plugins/minecraft/eula.js index f431cf9b6..61c32cf0e 100644 --- a/public/themes/pterodactyl/js/plugins/minecraft/eula.js +++ b/public/themes/pterodactyl/js/plugins/minecraft/eula.js @@ -1,3 +1,5 @@ +// TODO: Convert this to pure React + // Copyright (c) 2015 - 2017 Dane Everitt // // Permission is hereby granted, free of charge, to any person obtaining a copy @@ -17,8 +19,8 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -$(document).ready(function () { - Socket.on('console', function (data) { +$(document).ready(function() { + Socket.on('console', function(data) { if (typeof data === 'undefined' || typeof data.line === 'undefined') { return; } @@ -37,7 +39,7 @@ $(document).ready(function () { closeOnConfirm: false, showLoaderOnConfirm: true, }, - function () { + function() { $.ajax({ type: 'POST', url: Pterodactyl.meta.saveFile, @@ -47,7 +49,7 @@ $(document).ready(function () { contents: 'eula=true', }, }) - .done(function (data) { + .done(function(data) { $('[data-attr="power"][data-action="start"]').trigger('click'); swal({ type: 'success', @@ -55,7 +57,7 @@ $(document).ready(function () { text: 'The EULA for this server has been accepted, restarting server now.', }); }) - .fail(function (jqXHR) { + .fail(function(jqXHR) { console.error(jqXHR); swal({ title: 'Whoops!', diff --git a/resources/scripts/api/server/activity.ts b/resources/scripts/api/server/activity.ts index b59481c30..0fde0b20f 100644 --- a/resources/scripts/api/server/activity.ts +++ b/resources/scripts/api/server/activity.ts @@ -7,6 +7,7 @@ import useSWR from 'swr'; import type { PaginatedResult, QueryBuilderParams } from '@/api/http'; import http, { withQueryBuilderParams } from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { ServerContext } from '@/state/server'; @@ -20,12 +21,13 @@ const useActivityLogs = ( config?: SWRConfiguration, AxiosError>, ) => { const uuid = ServerContext.useStoreState((state) => state.server.data?.uuid); + const daemonType = getGlobalDaemonType(); const key = useServerSWRKey(['activity', useFilteredObject(filters || {})]); return useSWR>( key, async () => { - const { data } = await http.get(`/api/client/servers/${uuid}/activity`, { + const { data } = await http.get(`/api/client/servers/${daemonType}/${uuid}/activity`, { params: { ...withQueryBuilderParams(filters), include: ['actor'], diff --git a/resources/scripts/api/server/applyEggChange.ts b/resources/scripts/api/server/applyEggChange.ts index 79bcecc20..e8fb45aa0 100644 --- a/resources/scripts/api/server/applyEggChange.ts +++ b/resources/scripts/api/server/applyEggChange.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface ApplyEggChangeRequest { egg_id: number; @@ -21,6 +22,8 @@ export interface ApplyEggChangeResponse { * This initiates a background operation to change the server's egg configuration. */ export default async (uuid: string, data: ApplyEggChangeRequest): Promise => { - const { data: response } = await http.post(`/api/client/servers/${uuid}/settings/egg/apply`, data); + const daemonType = getGlobalDaemonType(); + + const { data: response } = await http.post(`/api/client/servers/${daemonType}/${uuid}/settings/egg/apply`, data); return response; }; diff --git a/resources/scripts/api/server/applyEggChangeSync.ts b/resources/scripts/api/server/applyEggChangeSync.ts new file mode 100644 index 000000000..f78971915 --- /dev/null +++ b/resources/scripts/api/server/applyEggChangeSync.ts @@ -0,0 +1,84 @@ +import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; +// NOTE: This is Specific to wings, it should also work for elytra, but I haven't actually tested + +interface ApplyEggChangeData { + egg_id: number; + nest_id: number; + docker_image?: string; + startup_command?: string; + environment?: Record; + should_backup?: boolean; + should_wipe?: boolean; +} + +export default async (uuid: string, data: ApplyEggChangeData): Promise => { + const daemonType = getGlobalDaemonType(); + + if (daemonType?.toLowerCase() === 'elytra') { + return http.post(`/api/client/servers/${daemonType}/${uuid}/settings/egg/apply`, data); + } + + if (daemonType?.toLowerCase() === 'wings') { + const { + egg_id, + nest_id, + docker_image, + startup_command, + environment = {}, + should_backup = false, + should_wipe = false, + } = data; + + try { + await http.put(`/api/client/servers/${daemonType}/${uuid}/settings/egg`, { + egg_id, + nest_id, + }); + + if (docker_image) { + await http.put(`/api/client/servers/${daemonType}/${uuid}/settings/docker-image`, { + docker_image, + }); + } + + if (startup_command) { + console.warn('Custom startup command update not supported for Wings daemon - using egg default'); + } + + const envPromises = Object.entries(environment).map(([key, value]) => + http.put(`/api/client/servers/${daemonType}/${uuid}/startup/variable`, { + key, + value, + }), + ); + await Promise.all(envPromises); + + if (should_backup) { + await http.post(`/api/client/servers/${daemonType}/${uuid}/backups`, { + name: `Software Change Backup - ${new Date().toISOString()}`, + is_locked: false, + }); + } + + if (should_wipe) { + const filesResponse = await http.get( + `/api/client/servers/${daemonType}/${uuid}/files/list?directory=/`, + ); + const files = filesResponse.data?.data || []; + if (files.length > 0) { + const fileNames = files.map((file: any) => file.name); + await http.post(`/api/client/servers/${daemonType}/${uuid}/files/delete`, { + root: '/', + files: fileNames, + }); + } + } + + await http.post(`/api/client/servers/${daemonType}/${uuid}/settings/reinstall`); + } catch (error) { + console.error('Failed to apply egg change for Wings:', error); + throw error; + } + } +}; diff --git a/resources/scripts/api/server/backups/createServerBackup.ts b/resources/scripts/api/server/backups/createServerBackup.ts index 1ec923692..6e8b9d8e7 100644 --- a/resources/scripts/api/server/backups/createServerBackup.ts +++ b/resources/scripts/api/server/backups/createServerBackup.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { ServerBackup } from '@/api/server/types'; import { rawDataToServerBackup } from '@/api/transformers'; @@ -22,7 +23,8 @@ export default async ( uuid: string, params: RequestParameters, ): Promise<{ backup: ServerBackup; jobId: string; status: string; progress: number; message?: string }> => { - const response = await http.post(`/api/client/servers/${uuid}/backups`, { + const daemonType = getGlobalDaemonType(); + const response = await http.post(`/api/client/servers/${daemonType}/${uuid}/backups`, { name: params.name, ignored: params.ignored, is_locked: params.isLocked, diff --git a/resources/scripts/api/server/backups/deleteAllServerBackups.ts b/resources/scripts/api/server/backups/deleteAllServerBackups.ts new file mode 100644 index 000000000..1282dbe5b --- /dev/null +++ b/resources/scripts/api/server/backups/deleteAllServerBackups.ts @@ -0,0 +1,14 @@ +import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; + +export default async (uuid: string, password: string, twoFactor: any, totpCode: any): Promise => { + const daemonType = getGlobalDaemonType(); + const response = await http.delete(`/api/client/servers/${daemonType}/${uuid}/backups/delete-all`, { + data: { + password: password, + ...(twoFactor ? { totp_code: totpCode } : {}), + }, + }); + + return response.status; +}; diff --git a/resources/scripts/api/server/backups/getBackupStatus.ts b/resources/scripts/api/server/backups/getBackupStatus.ts index ee5b6296f..af0ccd09f 100644 --- a/resources/scripts/api/server/backups/getBackupStatus.ts +++ b/resources/scripts/api/server/backups/getBackupStatus.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface BackupJobStatus { job_id: string | null; @@ -15,7 +16,8 @@ export interface BackupJobStatus { } export default async (uuid: string, backupUuid: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/backups/${backupUuid}/status`); + const daemonType = getGlobalDaemonType(); + const { data } = await http.get(`/api/client/servers/${daemonType}/${uuid}/backups/${backupUuid}/status`); return data; }; diff --git a/resources/scripts/api/server/backups/index.ts b/resources/scripts/api/server/backups/index.ts index 07c4f4861..16a0a3ca9 100644 --- a/resources/scripts/api/server/backups/index.ts +++ b/resources/scripts/api/server/backups/index.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; interface RestoreBackupResponse { job_id: string; @@ -10,11 +11,15 @@ export const restoreServerBackup = async ( uuid: string, backup: string, ): Promise<{ jobId: string; status: string; message: string }> => { - const response = await http.post(`/api/client/servers/${uuid}/backups/${backup}/restore`, { - adapter: 'rustic_s3', - truncate_directory: true, - download_url: '', - }); + const daemonType = getGlobalDaemonType(); + const response = await http.post( + `/api/client/servers/${daemonType}/${uuid}/backups/${backup}/restore`, + { + adapter: 'rustic_s3', + truncate_directory: true, + download_url: '', + }, + ); return { jobId: response.data.job_id, diff --git a/resources/scripts/api/server/backups/retryBackup.ts b/resources/scripts/api/server/backups/retryBackup.ts index 8dcf3b7f1..bf72b8291 100644 --- a/resources/scripts/api/server/backups/retryBackup.ts +++ b/resources/scripts/api/server/backups/retryBackup.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface RetryBackupResponse { message: string; @@ -8,7 +9,8 @@ export interface RetryBackupResponse { } export default async (uuid: string, backupUuid: string): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/backups/${backupUuid}/retry`); + const daemonType = getGlobalDaemonType(); + const { data } = await http.post(`/api/client/servers/${daemonType}/${uuid}/backups/${backupUuid}/retry`); return data; }; diff --git a/resources/scripts/api/server/databases/createServerDatabase.ts b/resources/scripts/api/server/databases/createServerDatabase.ts index 435a385d4..8fcb62073 100644 --- a/resources/scripts/api/server/databases/createServerDatabase.ts +++ b/resources/scripts/api/server/databases/createServerDatabase.ts @@ -1,10 +1,11 @@ import http from '@/api/http'; import { ServerDatabase, rawDataToServerDatabase } from '@/api/server/databases/getServerDatabases'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, data: { connectionsFrom: string; databaseName: string }): Promise => { return new Promise((resolve, reject) => { http.post( - `/api/client/servers/${uuid}/databases`, + `/api/client/servers/${getGlobalDaemonType()}/${uuid}/databases`, { database: data.databaseName, remote: data.connectionsFrom, diff --git a/resources/scripts/api/server/databases/deleteServerDatabase.ts b/resources/scripts/api/server/databases/deleteServerDatabase.ts index 23275bd36..7f730a3f9 100644 --- a/resources/scripts/api/server/databases/deleteServerDatabase.ts +++ b/resources/scripts/api/server/databases/deleteServerDatabase.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, database: string): Promise => { return new Promise((resolve, reject) => { - http.delete(`/api/client/servers/${uuid}/databases/${database}`) + http.delete(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/databases/${database}`) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/databases/getServerDatabases.ts b/resources/scripts/api/server/databases/getServerDatabases.ts index b66ebcab4..a819858bb 100644 --- a/resources/scripts/api/server/databases/getServerDatabases.ts +++ b/resources/scripts/api/server/databases/getServerDatabases.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface ServerDatabase { id: string; @@ -19,8 +20,10 @@ export const rawDataToServerDatabase = (data: any): ServerDatabase => ({ }); export default (uuid: string, includePassword = true): Promise => { + const daemonType = getGlobalDaemonType(); + return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}/databases`, { + http.get(`/api/client/servers/${daemonType}/${uuid}/databases`, { params: includePassword ? { include: 'password' } : undefined, }) .then((response) => diff --git a/resources/scripts/api/server/databases/rotateDatabasePassword.ts b/resources/scripts/api/server/databases/rotateDatabasePassword.ts index 25c2ea67b..3518e3012 100644 --- a/resources/scripts/api/server/databases/rotateDatabasePassword.ts +++ b/resources/scripts/api/server/databases/rotateDatabasePassword.ts @@ -1,9 +1,11 @@ import http from '@/api/http'; import { ServerDatabase, rawDataToServerDatabase } from '@/api/server/databases/getServerDatabases'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, database: string): Promise => { + const daemonType = getGlobalDaemonType(); return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/databases/${database}/rotate-password`) + http.post(`/api/client/${daemonType}/servers/${uuid}/databases/${database}/rotate-password`) .then((response) => resolve(rawDataToServerDatabase(response.data.attributes))) .catch(reject); }); diff --git a/resources/scripts/api/server/files/chmodFiles.ts b/resources/scripts/api/server/files/chmodFiles.ts index 8bafd6d6e..72282b9ee 100644 --- a/resources/scripts/api/server/files/chmodFiles.ts +++ b/resources/scripts/api/server/files/chmodFiles.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; interface Data { file: string; @@ -7,7 +8,7 @@ interface Data { export default (uuid: string, directory: string, files: Data[]): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/files/chmod`, { root: directory, files }) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/chmod`, { root: directory, files }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/files/compressFiles.ts b/resources/scripts/api/server/files/compressFiles.ts index faa9d7c13..bb6e8d4d2 100644 --- a/resources/scripts/api/server/files/compressFiles.ts +++ b/resources/scripts/api/server/files/compressFiles.ts @@ -1,10 +1,11 @@ import http from '@/api/http'; import { FileObject } from '@/api/server/files/loadDirectory'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { rawDataToFileObject } from '@/api/transformers'; export default async (uuid: string, directory: string, files: string[]): Promise => { const { data } = await http.post( - `/api/client/servers/${uuid}/files/compress`, + `/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/compress`, { root: directory, files }, { timeout: 60000, diff --git a/resources/scripts/api/server/files/copyFile.ts b/resources/scripts/api/server/files/copyFile.ts index b19525c40..c440f4b19 100644 --- a/resources/scripts/api/server/files/copyFile.ts +++ b/resources/scripts/api/server/files/copyFile.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, location: string): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/files/copy`, { location }) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/copy`, { location }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/files/createDirectory.ts b/resources/scripts/api/server/files/createDirectory.ts index 588868655..a97ea9699 100644 --- a/resources/scripts/api/server/files/createDirectory.ts +++ b/resources/scripts/api/server/files/createDirectory.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, root: string, name: string): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/files/create-folder`, { root, name }) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/create-folder`, { root, name }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/files/decompressFiles.ts b/resources/scripts/api/server/files/decompressFiles.ts index d3a3e45c2..0b36879f4 100644 --- a/resources/scripts/api/server/files/decompressFiles.ts +++ b/resources/scripts/api/server/files/decompressFiles.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, directory: string, file: string): Promise => { await http.post( - `/api/client/servers/${uuid}/files/decompress`, + `/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/decompress`, { root: directory, file }, { timeout: 300000, diff --git a/resources/scripts/api/server/files/deleteFiles.ts b/resources/scripts/api/server/files/deleteFiles.ts index 1250463ed..4fc454935 100644 --- a/resources/scripts/api/server/files/deleteFiles.ts +++ b/resources/scripts/api/server/files/deleteFiles.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, directory: string, files: string[]): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/files/delete`, { root: directory, files }) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/delete`, { root: directory, files }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/files/getFileContents.ts b/resources/scripts/api/server/files/getFileContents.ts index 66df376d3..fc4794349 100644 --- a/resources/scripts/api/server/files/getFileContents.ts +++ b/resources/scripts/api/server/files/getFileContents.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (server: string, file: string): Promise => { return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${server}/files/contents`, { + http.get(`/api/client/servers/${getGlobalDaemonType()}/${server}/files/contents`, { params: { file }, transformResponse: (res) => res, responseType: 'text', diff --git a/resources/scripts/api/server/files/getFileDownloadUrl.ts b/resources/scripts/api/server/files/getFileDownloadUrl.ts index 39db97290..9a00a549a 100644 --- a/resources/scripts/api/server/files/getFileDownloadUrl.ts +++ b/resources/scripts/api/server/files/getFileDownloadUrl.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, file: string): Promise => { return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}/files/download`, { params: { file } }) + http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/download`, { params: { file } }) .then(({ data }) => resolve(data.attributes.url)) .catch(reject); }); diff --git a/resources/scripts/api/server/files/getFileUploadUrl.ts b/resources/scripts/api/server/files/getFileUploadUrl.ts index 690e8587c..98bca1186 100644 --- a/resources/scripts/api/server/files/getFileUploadUrl.ts +++ b/resources/scripts/api/server/files/getFileUploadUrl.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string): Promise => { return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}/files/upload`) + http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/upload`) .then(({ data }) => resolve(data.attributes.url)) .catch(reject); }); diff --git a/resources/scripts/api/server/files/loadDirectory.ts b/resources/scripts/api/server/files/loadDirectory.ts index 1e2e9d4fe..96775ded8 100644 --- a/resources/scripts/api/server/files/loadDirectory.ts +++ b/resources/scripts/api/server/files/loadDirectory.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { rawDataToFileObject } from '@/api/transformers'; export interface FileObject { @@ -17,7 +18,7 @@ export interface FileObject { } export default async (uuid: string, directory?: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/files/list`, { + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/list`, { params: { directory: directory ?? '/' }, }); diff --git a/resources/scripts/api/server/files/renameFiles.ts b/resources/scripts/api/server/files/renameFiles.ts index 53f92c4c3..8e2d1a825 100644 --- a/resources/scripts/api/server/files/renameFiles.ts +++ b/resources/scripts/api/server/files/renameFiles.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; interface Data { to: string; @@ -7,7 +8,7 @@ interface Data { export default (uuid: string, directory: string, files: Data[]): Promise => { return new Promise((resolve, reject) => { - http.put(`/api/client/servers/${uuid}/files/rename`, { root: directory, files }) + http.put(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/rename`, { root: directory, files }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/files/saveFileContents.ts b/resources/scripts/api/server/files/saveFileContents.ts index b97e60a6b..4b89ca1e6 100644 --- a/resources/scripts/api/server/files/saveFileContents.ts +++ b/resources/scripts/api/server/files/saveFileContents.ts @@ -1,7 +1,8 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, file: string, content: string): Promise => { - await http.post(`/api/client/servers/${uuid}/files/write`, content, { + await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/files/write`, content, { params: { file }, headers: { 'Content-Type': 'text/plain', diff --git a/resources/scripts/api/server/getServer.ts b/resources/scripts/api/server/getServer.ts index c7e65907c..a329e2915 100644 --- a/resources/scripts/api/server/getServer.ts +++ b/resources/scripts/api/server/getServer.ts @@ -2,6 +2,10 @@ import http, { FractalResponseData, FractalResponseList } from '@/api/http'; import { ServerEggVariable, ServerStatus } from '@/api/server/types'; import { rawDataToServerAllocation, rawDataToServerEggVariable } from '@/api/transformers'; +// import { getGlobalDaemonType } from '@/api/server/getServer'; + +let globalDaemonType: string | null = null; + export interface Allocation { id: number; ip: string; @@ -45,6 +49,7 @@ export interface Server { variables: ServerEggVariable[]; allocations: Allocation[]; egg: string; + daemonType: string; } export const rawDataToServerObject = ({ attributes: data }: FractalResponseData): Server => ({ @@ -73,18 +78,42 @@ export const rawDataToServerObject = ({ attributes: data }: FractalResponseData) rawDataToServerAllocation, ), egg: data.egg, + daemonType: data.daemonType, }); -export default (uuid: string): Promise<[Server, string[]]> => { - return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}`) - .then(({ data }) => - resolve([ - rawDataToServerObject(data), +export default async (uuid: string): Promise<[Server, string[]]> => { + let daemonType_api = 'elytra'; + return http + .get(`/api/client/servers/${uuid}`) + .then((response) => { + daemonType_api = response.data?.meta.daemonType; + const daemonType: string = response.data?.meta.daemonType; - data.meta?.is_server_owner ? ['*'] : data.meta?.user_permissions || [], - ]), - ) - .catch(reject); - }); + if (daemonType) { + globalDaemonType = daemonType; + } + + return http.get(`/api/client/servers/${daemonType}/${uuid}`); + }) + .then((response) => { + const payload = response.data; + + const server = rawDataToServerObject(payload); + server.daemonType = daemonType_api; + + const permissions = payload.meta?.is_server_owner + ? ['*'] + : (payload.meta?.user_permissions as string[] | undefined) || []; + + return [server, permissions] as [Server, string[]]; + }) + .catch((error) => { + console.error('Failed to load server:', error); + throw error; + }); +}; + +export const getGlobalDaemonType = (): string | null => globalDaemonType; +export const setGlobalDaemonType = (type: string): void => { + globalDaemonType = type; }; diff --git a/resources/scripts/api/server/getServerResourceUsage.ts b/resources/scripts/api/server/getServerResourceUsage.ts index dd1ad4307..8c5cc7331 100644 --- a/resources/scripts/api/server/getServerResourceUsage.ts +++ b/resources/scripts/api/server/getServerResourceUsage.ts @@ -1,10 +1,11 @@ import http from '@/api/http'; -export type ServerPowerState = 'offline' | 'starting' | 'running' | 'stopping'; +export type ServerPowerState = 'offline' | 'starting' | 'running' | 'stopping' | 'installing'; export interface ServerStats { status: ServerPowerState; isSuspended: boolean; + isInstalling: boolean; memoryUsageInBytes: number; cpuUsagePercent: number; diskUsageInBytes: number; @@ -20,6 +21,7 @@ export default (server: string): Promise => { resolve({ status: attributes.current_state, isSuspended: attributes.is_suspended, + isInstalling: attributes.is_installing, memoryUsageInBytes: attributes.resources.memory_bytes, cpuUsagePercent: attributes.resources.cpu_absolute, diskUsageInBytes: attributes.resources.disk_bytes, diff --git a/resources/scripts/api/server/getWebsocketToken.ts b/resources/scripts/api/server/getWebsocketToken.ts index 5b2994b22..50b861b7b 100644 --- a/resources/scripts/api/server/getWebsocketToken.ts +++ b/resources/scripts/api/server/getWebsocketToken.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; interface Response { token: string; @@ -6,8 +7,10 @@ interface Response { } export default (server: string): Promise => { + const daemonType = getGlobalDaemonType(); + return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${server}/websocket`) + http.get(`/api/client/servers/${daemonType}/${server}/websocket`) .then(({ data }) => resolve({ token: data.data.token, diff --git a/resources/scripts/api/server/network/subdomain.ts b/resources/scripts/api/server/network/subdomain.ts index e751a1f90..3dddce4f9 100644 --- a/resources/scripts/api/server/network/subdomain.ts +++ b/resources/scripts/api/server/network/subdomain.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface SubdomainInfo { supported: boolean; diff --git a/resources/scripts/api/server/previewEggChange.ts b/resources/scripts/api/server/previewEggChange.ts index 725ffcb18..d9b2f7cc9 100644 --- a/resources/scripts/api/server/previewEggChange.ts +++ b/resources/scripts/api/server/previewEggChange.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface EggPreview { egg: { @@ -31,7 +32,8 @@ export interface EggPreview { * Returns egg details, variables, and available Docker images. */ export default async (uuid: string, eggId: number, nestId: number): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/settings/egg/preview`, { + const daemonType = getGlobalDaemonType(); + const { data } = await http.post(`/api/client/servers/${daemonType}/${uuid}/settings/egg/preview`, { egg_id: eggId, nest_id: nestId, }); diff --git a/resources/scripts/api/server/processStartupCommand.ts b/resources/scripts/api/server/processStartupCommand.ts index 78412e09f..7bec7f057 100644 --- a/resources/scripts/api/server/processStartupCommand.ts +++ b/resources/scripts/api/server/processStartupCommand.ts @@ -1,8 +1,10 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, command: string): Promise => { + const daemonType = getGlobalDaemonType(); return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/startup/command/process`, { command }) + http.post(`/api/client/servers/${daemonType}/${uuid}/startup/command/process`, { command }) .then(({ data }) => resolve(data.processed_command)) .catch(reject); }); diff --git a/resources/scripts/api/server/reinstallServer.ts b/resources/scripts/api/server/reinstallServer.ts index 5cb2ca5e7..3765d279d 100644 --- a/resources/scripts/api/server/reinstallServer.ts +++ b/resources/scripts/api/server/reinstallServer.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/settings/reinstall`) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/settings/reinstall`) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/renameServer.ts b/resources/scripts/api/server/renameServer.ts index 4622f9d4d..2de1f1652 100644 --- a/resources/scripts/api/server/renameServer.ts +++ b/resources/scripts/api/server/renameServer.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, name: string, description?: string): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/settings/rename`, { name, description }) + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/settings/rename`, { name, description }) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/resetStartupCommand.ts b/resources/scripts/api/server/resetStartupCommand.ts index 1d684d05e..ca58e797a 100644 --- a/resources/scripts/api/server/resetStartupCommand.ts +++ b/resources/scripts/api/server/resetStartupCommand.ts @@ -1,7 +1,8 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/startup/command/default`); + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/startup/command/default`); return data.default_startup_command; }; diff --git a/resources/scripts/api/server/revertDockerImage.ts b/resources/scripts/api/server/revertDockerImage.ts index a1b692089..ea980c3fb 100644 --- a/resources/scripts/api/server/revertDockerImage.ts +++ b/resources/scripts/api/server/revertDockerImage.ts @@ -1,5 +1,8 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string): Promise => { - await http.post(`/api/client/servers/${uuid}/settings/docker-image/revert`, { confirm: true }); + await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/settings/docker-image/revert`, { + confirm: true, + }); }; diff --git a/resources/scripts/api/server/schedules/createOrUpdateSchedule.ts b/resources/scripts/api/server/schedules/createOrUpdateSchedule.ts index aae29284c..6cbb62dff 100644 --- a/resources/scripts/api/server/schedules/createOrUpdateSchedule.ts +++ b/resources/scripts/api/server/schedules/createOrUpdateSchedule.ts @@ -1,19 +1,23 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { Schedule, rawDataToServerSchedule } from '@/api/server/schedules/getServerSchedules'; type Data = Pick & { id?: number }; export default async (uuid: string, schedule: Data): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/schedules${schedule.id ? `/${schedule.id}` : ''}`, { - is_active: schedule.isActive, - only_when_online: schedule.onlyWhenOnline, - name: schedule.name, - minute: schedule.cron.minute, - hour: schedule.cron.hour, - day_of_month: schedule.cron.dayOfMonth, - month: schedule.cron.month, - day_of_week: schedule.cron.dayOfWeek, - }); + const { data } = await http.post( + `/api/client/servers/${getGlobalDaemonType()}/${uuid}/schedules${schedule.id ? `/${schedule.id}` : ''}`, + { + is_active: schedule.isActive, + only_when_online: schedule.onlyWhenOnline, + name: schedule.name, + minute: schedule.cron.minute, + hour: schedule.cron.hour, + day_of_month: schedule.cron.dayOfMonth, + month: schedule.cron.month, + day_of_week: schedule.cron.dayOfWeek, + }, + ); return rawDataToServerSchedule(data.attributes); }; diff --git a/resources/scripts/api/server/schedules/createOrUpdateScheduleTask.ts b/resources/scripts/api/server/schedules/createOrUpdateScheduleTask.ts index 398b0dfa3..72d50b36e 100644 --- a/resources/scripts/api/server/schedules/createOrUpdateScheduleTask.ts +++ b/resources/scripts/api/server/schedules/createOrUpdateScheduleTask.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { Task, rawDataToServerTask } from '@/api/server/schedules/getServerSchedules'; interface Data { @@ -10,7 +11,7 @@ interface Data { export default async (uuid: string, schedule: number, task: number | undefined, data: Data): Promise => { const { data: response } = await http.post( - `/api/client/servers/${uuid}/schedules/${schedule}/tasks${task ? `/${task}` : ''}`, + `/api/client/servers/${getGlobalDaemonType()}/${uuid}/schedules/${schedule}/tasks${task ? `/${task}` : ''}`, { action: data.action, payload: data.payload, diff --git a/resources/scripts/api/server/schedules/deleteSchedule.ts b/resources/scripts/api/server/schedules/deleteSchedule.ts index c3669988d..c5e1b5c0b 100644 --- a/resources/scripts/api/server/schedules/deleteSchedule.ts +++ b/resources/scripts/api/server/schedules/deleteSchedule.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, schedule: number): Promise => { return new Promise((resolve, reject) => { - http.delete(`/api/client/servers/${uuid}/schedules/${schedule}`) + http.delete(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/schedules/${schedule}`) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/schedules/deleteScheduleTask.ts b/resources/scripts/api/server/schedules/deleteScheduleTask.ts index 8867677b2..12fb3b0bd 100644 --- a/resources/scripts/api/server/schedules/deleteScheduleTask.ts +++ b/resources/scripts/api/server/schedules/deleteScheduleTask.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, scheduleId: number, taskId: number): Promise => { return new Promise((resolve, reject) => { - http.delete(`/api/client/servers/${uuid}/schedules/${scheduleId}/tasks/${taskId}`) + http.delete(`/api/client/${getGlobalDaemonType()}/servers/${uuid}/schedules/${scheduleId}/tasks/${taskId}`) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/schedules/getServerSchedule.ts b/resources/scripts/api/server/schedules/getServerSchedule.ts index 148b1dd56..89c7809cf 100644 --- a/resources/scripts/api/server/schedules/getServerSchedule.ts +++ b/resources/scripts/api/server/schedules/getServerSchedule.ts @@ -1,9 +1,10 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { Schedule, rawDataToServerSchedule } from '@/api/server/schedules/getServerSchedules'; export default (uuid: string, schedule: number): Promise => { return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}/schedules/${schedule}`, { + http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/schedules/${schedule}`, { params: { include: ['tasks'], }, diff --git a/resources/scripts/api/server/schedules/getServerSchedules.ts b/resources/scripts/api/server/schedules/getServerSchedules.ts index aef756a0e..f508e3b02 100644 --- a/resources/scripts/api/server/schedules/getServerSchedules.ts +++ b/resources/scripts/api/server/schedules/getServerSchedules.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export interface Schedule { id: number; @@ -67,7 +68,7 @@ export const rawDataToServerSchedule = (data: any): Schedule => ({ }); export default async (uuid: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/schedules`, { + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/schedules`, { params: { include: ['tasks'], }, diff --git a/resources/scripts/api/server/schedules/triggerScheduleExecution.ts b/resources/scripts/api/server/schedules/triggerScheduleExecution.ts index 92f7a589f..ccd12e1ff 100644 --- a/resources/scripts/api/server/schedules/triggerScheduleExecution.ts +++ b/resources/scripts/api/server/schedules/triggerScheduleExecution.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (server: string, schedule: number): Promise => - await http.post(`/api/client/servers/${server}/schedules/${schedule}/execute`); + await http.post(`/api/client/servers/${getGlobalDaemonType()}/${server}/schedules/${schedule}/execute`); diff --git a/resources/scripts/api/server/serverOperations.ts b/resources/scripts/api/server/serverOperations.ts index 30b1e2279..154563e32 100644 --- a/resources/scripts/api/server/serverOperations.ts +++ b/resources/scripts/api/server/serverOperations.ts @@ -1,6 +1,7 @@ import React from 'react'; import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; /** * Server operation status constants. @@ -50,7 +51,7 @@ export interface ApplyEggChangeAsyncResponse { * Get specific operation status by ID. */ export const getOperationStatus = async (uuid: string, operationId: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/operations/${operationId}`); + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/operations/${operationId}`); return data; }; @@ -58,7 +59,7 @@ export const getOperationStatus = async (uuid: string, operationId: string): Pro * Get all operations for a server. */ export const getServerOperations = async (uuid: string): Promise<{ operations: ServerOperation[] }> => { - const { data } = await http.get(`/api/client/servers/${uuid}/operations`); + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/operations`); return data; }; diff --git a/resources/scripts/api/server/setSelectedDockerImage.ts b/resources/scripts/api/server/setSelectedDockerImage.ts index 70042f3a6..337b59ccb 100644 --- a/resources/scripts/api/server/setSelectedDockerImage.ts +++ b/resources/scripts/api/server/setSelectedDockerImage.ts @@ -1,5 +1,8 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, image: string): Promise => { - await http.put(`/api/client/servers/${uuid}/settings/docker-image`, { docker_image: image }); + await http.put(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/settings/docker-image`, { + docker_image: image, + }); }; diff --git a/resources/scripts/api/server/updateStartupCommand.ts b/resources/scripts/api/server/updateStartupCommand.ts index 06c9c1070..cdf70a824 100644 --- a/resources/scripts/api/server/updateStartupCommand.ts +++ b/resources/scripts/api/server/updateStartupCommand.ts @@ -1,7 +1,10 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, startup: string): Promise => { - const { data } = await http.put(`/api/client/servers/${uuid}/startup/command`, { startup }); + const { data } = await http.put(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/startup/command`, { + startup, + }); return data.meta.startup_command; }; diff --git a/resources/scripts/api/server/updateStartupVariable.ts b/resources/scripts/api/server/updateStartupVariable.ts index 510217282..169b743ed 100644 --- a/resources/scripts/api/server/updateStartupVariable.ts +++ b/resources/scripts/api/server/updateStartupVariable.ts @@ -1,9 +1,13 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { ServerEggVariable } from '@/api/server/types'; import { rawDataToServerEggVariable } from '@/api/transformers'; export default async (uuid: string, key: string, value: string): Promise<[ServerEggVariable, string]> => { - const { data } = await http.put(`/api/client/servers/${uuid}/startup/variable`, { key, value }); + const { data } = await http.put(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/startup/variable`, { + key, + value, + }); return [rawDataToServerEggVariable(data), data.meta.startup_command]; }; diff --git a/resources/scripts/api/server/users/createOrUpdateSubuser.ts b/resources/scripts/api/server/users/createOrUpdateSubuser.ts index 4afd9a7e6..d4975812e 100644 --- a/resources/scripts/api/server/users/createOrUpdateSubuser.ts +++ b/resources/scripts/api/server/users/createOrUpdateSubuser.ts @@ -1,4 +1,5 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { rawDataToServerSubuser } from '@/api/server/users/getServerSubusers'; import { Subuser } from '@/state/server/subusers'; @@ -10,7 +11,7 @@ interface Params { export default (uuid: string, params: Params, subuser?: Subuser): Promise => { return new Promise((resolve, reject) => { - http.post(`/api/client/servers/${uuid}/users${subuser ? `/${subuser.uuid}` : ''}`, { + http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/users${subuser ? `/${subuser.uuid}` : ''}`, { ...params, }) .then((data) => resolve(rawDataToServerSubuser(data.data))) diff --git a/resources/scripts/api/server/users/deleteSubuser.ts b/resources/scripts/api/server/users/deleteSubuser.ts index dccd98e69..c6d716340 100644 --- a/resources/scripts/api/server/users/deleteSubuser.ts +++ b/resources/scripts/api/server/users/deleteSubuser.ts @@ -1,8 +1,9 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default (uuid: string, userId: string): Promise => { return new Promise((resolve, reject) => { - http.delete(`/api/client/servers/${uuid}/users/${userId}`) + http.delete(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/users/${userId}`) .then(() => resolve()) .catch(reject); }); diff --git a/resources/scripts/api/server/users/getServerSubusers.ts b/resources/scripts/api/server/users/getServerSubusers.ts index 26d908c02..06ad58210 100644 --- a/resources/scripts/api/server/users/getServerSubusers.ts +++ b/resources/scripts/api/server/users/getServerSubusers.ts @@ -1,4 +1,5 @@ import http, { FractalResponseData } from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { Subuser } from '@/state/server/subusers'; @@ -15,7 +16,7 @@ export const rawDataToServerSubuser = (data: FractalResponseData): Subuser => ({ export default (uuid: string): Promise => { return new Promise((resolve, reject) => { - http.get(`/api/client/servers/${uuid}/users`) + http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/users`) .then(({ data }) => resolve((data.data || []).map(rawDataToServerSubuser))) .catch(reject); }); diff --git a/resources/scripts/api/swr/getServerAllocations.ts b/resources/scripts/api/swr/getServerAllocations.ts index fb59996d1..0ebc2f994 100644 --- a/resources/scripts/api/swr/getServerAllocations.ts +++ b/resources/scripts/api/swr/getServerAllocations.ts @@ -2,17 +2,19 @@ import useSWR from 'swr'; import http from '@/api/http'; import { Allocation } from '@/api/server/getServer'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import { rawDataToServerAllocation } from '@/api/transformers'; import { ServerContext } from '@/state/server'; export default () => { const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid); + const daemonType = getGlobalDaemonType(); return useSWR( ['server:allocations', uuid], async () => { - const { data } = await http.get(`/api/client/servers/${uuid}/network/allocations`); + const { data } = await http.get(`/api/client/servers/${daemonType}/${uuid}/network/allocations`); return (data.data || []).map(rawDataToServerAllocation); }, diff --git a/resources/scripts/api/swr/getServerBackups.ts b/resources/scripts/api/swr/getServerBackups.ts index 6dca09a8d..6898242d3 100644 --- a/resources/scripts/api/swr/getServerBackups.ts +++ b/resources/scripts/api/swr/getServerBackups.ts @@ -3,6 +3,7 @@ import useSWR from 'swr'; import type { PaginatedResult } from '@/api/http'; import http, { getPaginationSet } from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import type { ServerBackup } from '@/api/server/types'; import { rawDataToServerBackup } from '@/api/transformers'; @@ -42,11 +43,12 @@ type BackupResponse = PaginatedResult & { export default () => { const { page } = useContext(Context); const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid); + const daemonType = getGlobalDaemonType(); return useSWR( ['server:backups', uuid, page], async () => { - const { data } = await http.get(`/api/client/servers/${uuid}/backups`, { params: { page } }); + const { data } = await http.get(`/api/client/servers/${daemonType}/${uuid}/backups`, { params: { page } }); return { items: (data.data || []).map(rawDataToServerBackup), diff --git a/resources/scripts/api/swr/getServerStartup.ts b/resources/scripts/api/swr/getServerStartup.ts index 069bd6c1b..ee09e3deb 100644 --- a/resources/scripts/api/swr/getServerStartup.ts +++ b/resources/scripts/api/swr/getServerStartup.ts @@ -3,6 +3,7 @@ import type { SWRConfiguration } from 'swr'; import useSWR from 'swr'; import http, { FractalResponseList } from '@/api/http'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import type { ServerEggVariable } from '@/api/server/types'; import { rawDataToServerEggVariable } from '@/api/transformers'; @@ -17,7 +18,7 @@ export default (uuid: string, fallbackData?: Response, config?: SWRConfiguration useSWR( [uuid, '/startup'], async (): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/startup`); + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/startup`); const variables = ((data as FractalResponseList).data || []).map(rawDataToServerEggVariable); diff --git a/resources/scripts/components/dashboard/ServerRow.tsx b/resources/scripts/components/dashboard/ServerRow.tsx index 28bd58c75..0621f4a59 100644 --- a/resources/scripts/components/dashboard/ServerRow.tsx +++ b/resources/scripts/components/dashboard/ServerRow.tsx @@ -11,7 +11,7 @@ import getServerResourceUsage, { ServerPowerState, ServerStats } from '@/api/ser // than the more faded default style. const isAlarmState = (current: number, limit: number): boolean => limit > 0 && current / (limit * 1024 * 1024) >= 0.9; -const StatusIndicatorBox = styled.div<{ $status: ServerPowerState | undefined }>` +const StatusIndicatorBox = styled.div<{ $status: ServerPowerState }>` background: #ffffff11; border: 1px solid #ffffff12; transition: all 250ms ease-in-out; @@ -39,19 +39,30 @@ const StatusIndicatorBox = styled.div<{ $status: ServerPowerState | undefined }> border-radius: 9999px; transition: all 250ms ease-in-out; - box-shadow: ${({ $status }) => - !$status || $status === 'offline' - ? '0 0 12px 1px #C74343' - : $status === 'running' - ? '0 0 12px 1px #43C760' - : '0 0 12px 1px #c7aa43'}; + box-shadow: ${({ $status }) => { + console.log($status); + if (!$status || $status === 'offline') { + return '0 0 12px 1px #C74343'; + } else if ($status === 'running') { + return '0 0 12px 1px #43C760'; + } else if ($status === 'installing') { + return '0 0 12px 1px #4381c7'; // Blue color for installing + } else { + return '0 0 12px 1px #c7aa43'; // Default for other statuses + } + }}; - background: ${({ $status }) => - !$status || $status === 'offline' - ? `linear-gradient(180deg, #C74343 0%, #C74343 100%)` - : $status === 'running' - ? `linear-gradient(180deg, #91FFA9 0%, #43C760 100%)` - : `linear-gradient(180deg, #c7aa43 0%, #c7aa43 100%)`}; + background: ${({ $status }) => { + if (!$status || $status === 'offline') { + return 'linear-gradient(180deg, #C74343 0%, #C74343 100%)'; + } else if ($status === 'running') { + return 'linear-gradient(180deg, #91FFA9 0%, #43C760 100%)'; + } else if ($status === 'installing') { + return 'linear-gradient(180deg, #91c7ff 0%, #4381c7 100%)'; + } else { + return 'linear-gradient(180deg, #c7aa43 0%, #c7aa43 100%)'; // Default for other statuses + } + }} } `; @@ -60,6 +71,7 @@ type Timer = ReturnType; const ServerRow = ({ server, className }: { server: Server; className?: string }) => { const interval = useRef(null) as React.MutableRefObject; const [isSuspended, setIsSuspended] = useState(server.status === 'suspended'); + const [isInstalling, setIsInstalling] = useState(server.status === 'installing'); const [stats, setStats] = useState(null); const getStats = () => @@ -71,6 +83,10 @@ const ServerRow = ({ server, className }: { server: Server; className?: string } setIsSuspended(stats?.isSuspended || server.status === 'suspended'); }, [stats?.isSuspended, server.status]); + useEffect(() => { + setIsInstalling(stats?.isInstalling || server.status === 'installing'); + }, [stats?.isInstalling, server.status]); + useEffect(() => { // Don't waste a HTTP request if there is nothing important to show to the user because // the server is suspended. @@ -99,9 +115,6 @@ const ServerRow = ({ server, className }: { server: Server; className?: string } return (
- {/*
- -
*/}

{server.name}

{' '} @@ -116,8 +129,6 @@ const ServerRow = ({ server, className }: { server: Server; className?: string } ))}

- {/* I don't think servers will ever have descriptions normall so I'll vaporize it */} - {/* {!!server.description &&

{server.description}

} */}
diff --git a/resources/scripts/components/server/backups/useUnifiedBackups.ts b/resources/scripts/components/server/backups/useUnifiedBackups.ts index 4978f2b59..ff9108878 100644 --- a/resources/scripts/components/server/backups/useUnifiedBackups.ts +++ b/resources/scripts/components/server/backups/useUnifiedBackups.ts @@ -6,10 +6,12 @@ import { ServerContext } from '@/state/server'; import { LiveProgressContext } from './BackupContainer'; import { UnifiedBackup } from './BackupItem'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export const useUnifiedBackups = () => { const { data: backups, error, isValidating, mutate } = getServerBackups(); const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid); + const daemonType = getGlobalDaemonType(); const liveProgress = useContext(LiveProgressContext); @@ -55,7 +57,7 @@ export const useUnifiedBackups = () => { const renameBackup = useCallback( async (backupUuid: string, newName: string) => { const http = (await import('@/api/http')).default; - await http.post(`/api/client/servers/${uuid}/backups/${backupUuid}/rename`, { name: newName }); + await http.post(`/api/client/servers/${daemonType}/${uuid}/backups/${backupUuid}/rename`, { name: newName }); mutate(); }, [uuid, mutate], @@ -64,7 +66,7 @@ export const useUnifiedBackups = () => { const toggleBackupLock = useCallback( async (backupUuid: string) => { const http = (await import('@/api/http')).default; - await http.post(`/api/client/servers/${uuid}/backups/${backupUuid}/lock`); + await http.post(`/api/client/servers/${daemonType}/${uuid}/backups/${backupUuid}/lock`); mutate(); }, [uuid, mutate], diff --git a/resources/scripts/components/server/console/StatBlock.tsx b/resources/scripts/components/server/console/StatBlock.tsx index 50123d7fe..341657d86 100644 --- a/resources/scripts/components/server/console/StatBlock.tsx +++ b/resources/scripts/components/server/console/StatBlock.tsx @@ -16,11 +16,11 @@ const StatBlock = ({ title, copyOnClick, className, children }: StatBlockProps)
-
+

{title}

diff --git a/resources/scripts/components/server/operations/WingsOperationProgressModal.tsx b/resources/scripts/components/server/operations/WingsOperationProgressModal.tsx new file mode 100644 index 000000000..c1029247d --- /dev/null +++ b/resources/scripts/components/server/operations/WingsOperationProgressModal.tsx @@ -0,0 +1,260 @@ +import { TriangleExclamation } from '@gravity-ui/icons'; +import React, { useEffect, useState } from 'react'; + +import ActionButton from '@/components/elements/ActionButton'; +import Spinner from '@/components/elements/Spinner'; +import { Dialog } from '@/components/elements/dialog'; + +import { + UI_CONFIG, + canCloseOperation, + formatOperationId, + getStatusIconType, + getStatusStyling, + isActiveStatus, + isCompletedStatus, + isFailedStatus, +} from '@/lib/server-operations'; + +import { ServerOperation, useOperationPolling } from '@/api/server/serverOperations'; + +import { ServerContext } from '@/state/server'; + +interface Props { + visible: boolean; + operationId: string | null; + operationType: string; + onClose: () => void; + onComplete?: (operation: ServerOperation) => void; + onError?: (error: Error) => void; +} + +/** + * Modal component for displaying server operation progress in real-time. + * Handles polling, auto-close, and status updates for long-running operations. + */ +const WingsOperationProgressModal: React.FC = ({ + visible, + operationId, + operationType, + onClose, + onComplete, + onError, +}) => { + const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid); + const [operation, setOperation] = useState(null); + const [error, setError] = useState(null); + const [autoCloseTimer, setAutoCloseTimer] = useState(null); + const { startPolling, stopPolling } = useOperationPolling(); + + useEffect(() => { + if (!visible || !operationId) { + stopPolling(operationId || ''); + setOperation(null); + setError(null); + if (autoCloseTimer) { + clearTimeout(autoCloseTimer); + setAutoCloseTimer(null); + } + return; + } + + const handleUpdate = (op: ServerOperation) => { + setOperation(op); + }; + + const handleComplete = (op: ServerOperation) => { + setOperation(op); + stopPolling(operationId); + + if (onComplete) { + onComplete(op); + } + + if (op.is_completed) { + const timer = setTimeout(() => { + onClose(); + }, UI_CONFIG.AUTO_CLOSE_DELAY); + setAutoCloseTimer(timer); + } + }; + + const handleError = (err: Error) => { + setError(err.message); + stopPolling(operationId); + + if (onError) { + onError(err); + } + }; + + startPolling(uuid, operationId, handleUpdate, handleComplete, handleError); + + return () => { + stopPolling(operationId); + if (autoCloseTimer) { + clearTimeout(autoCloseTimer); + } + }; + }, [visible, operationId, uuid, startPolling, stopPolling, onComplete, onError, onClose, autoCloseTimer]); + + const renderStatusIcon = (status: string) => { + const iconType = getStatusIconType(status as any); + + switch (iconType) { + case 'spinner': + return ; + case 'success': + return ( +
+
+
+ ); + case 'error': + return ( + + ); + default: + return ; + } + }; + + const canClose = canCloseOperation(operation, error); + const statusStyling = operation ? getStatusStyling(operation.status) : null; + + const handleClose = () => { + if (autoCloseTimer) { + clearTimeout(autoCloseTimer); + setAutoCloseTimer(null); + } + onClose(); + }; + + return ( + { }} + preventExternalClose={!canClose} + hideCloseIcon={!canClose} + title={operationType} + > +
+ {/* Operation ID */} + {operationId && ( +
+
+

ID: {formatOperationId(operationId)}

+
+
+ )} + + {/* Error State */} + {error ? ( +
+
+ + Error +
+
+

{error}

+
+
+ ) : operation ? ( + /* Operation State */ +
+ {/* Status Header */} +
+ {renderStatusIcon(operation.status)} + + {operation.status} + +
+ + {/* Message Box */} +
+

{operation.message || 'Processing...'}

+
+ + {/* Progress Bar for Active Operations */} + {isActiveStatus(operation.status) && ( +
+
+
+
+

+ This window will close automatically when complete +

+
+ )} + + {/* Success State */} + {isCompletedStatus(operation.status) && ( +
+
+
+
+
+

+ Operation completed successfully +

+
+ {autoCloseTimer && ( +

+ Closing automatically in 3 seconds +

+ )} +
+ )} + + {/* Failed State */} + {isFailedStatus(operation.status) && ( +
+
+ +

Operation failed

+
+ {operation.message && ( +

{operation.message}

+ )} +
+ )} +
+ ) : ( + /* Loading State */ +
+ + Initializing... +
+ )} +
+ + {canClose && ( + + + Cancel + + + {operation?.is_completed ? 'Done' : 'Close'} + + + )} +
+ ); +}; + +export default WingsOperationProgressModal; diff --git a/resources/scripts/components/server/shell/ShellContainer.tsx b/resources/scripts/components/server/shell/ShellContainer.tsx index a1b08916e..77ca6d149 100644 --- a/resources/scripts/components/server/shell/ShellContainer.tsx +++ b/resources/scripts/components/server/shell/ShellContainer.tsx @@ -18,10 +18,13 @@ import Spinner from '@/components/elements/Spinner'; import { Switch } from '@/components/elements/SwitchV2'; import TitledGreyBox from '@/components/elements/TitledGreyBox'; import OperationProgressModal from '@/components/server/operations/OperationProgressModal'; +import WingsOperationProgressModal from '@/components/server/operations/WingsOperationProgressModal'; import { httpErrorToHuman } from '@/api/http'; import getNests from '@/api/nests/getNests'; import applyEggChange from '@/api/server/applyEggChange'; +import applyEggChangeSync from '@/api/server/applyEggChangeSync'; +import { getGlobalDaemonType } from '@/api/server/getServer'; import previewEggChange, { EggPreview } from '@/api/server/previewEggChange'; import { ServerOperation } from '@/api/server/serverOperations'; import getServerBackups from '@/api/swr/getServerBackups'; @@ -248,6 +251,7 @@ const validateEnvironmentVariables = (variables: any[], pendingVariables: Record const SoftwareContainer = () => { const serverData = ServerContext.useStoreState((state) => state.server.data); + const daemonType = getGlobalDaemonType(); const uuid = serverData?.uuid; const [nests, setNests] = useState(); //const eggs = nests?.reduce( @@ -270,6 +274,7 @@ const SoftwareContainer = () => { ?.attributes?.name; }, [nests, currentEgg]); const backupLimit = serverData?.featureLimits.backups; + const { data: backups } = getServerBackups(); const setServerFromState = ServerContext.useStoreActions((actions) => actions.server.setServerFromState); @@ -507,8 +512,8 @@ const SoftwareContainer = () => { selectedDockerImage && eggPreview.docker_images ? eggPreview.docker_images[selectedDockerImage] : eggPreview.default_docker_image && eggPreview.docker_images - ? eggPreview.docker_images[eggPreview.default_docker_image] - : ''; + ? eggPreview.docker_images[eggPreview.default_docker_image] + : ''; // Filter out empty environment variables to prevent validation issues const filteredEnvironment: Record = {}; @@ -518,24 +523,34 @@ const SoftwareContainer = () => { } }); - // Start the async operation - const response = await applyEggChange(uuid, { - egg_id: selectedEgg.attributes.id, - nest_id: selectedNest.attributes.id, - docker_image: actualDockerImage, - startup_command: customStartup, - environment: filteredEnvironment, - should_backup: shouldBackup, - should_wipe: shouldWipe, - }); + if (daemonType?.toLowerCase() == 'elytra') { + const response = await applyEggChange(uuid, { + egg_id: selectedEgg.attributes.id, + nest_id: selectedNest.attributes.id, + docker_image: actualDockerImage, + startup_command: customStartup, + environment: filteredEnvironment, + should_backup: shouldBackup, + should_wipe: shouldWipe, + }); - // Operation started successfully - show progress modal - setCurrentOperationId(response.operation_id); - setShowOperationModal(true); + setCurrentOperationId(response.operation_id); + + setShowOperationModal(true); + } else if (daemonType?.toLowerCase() == 'wings') { + await applyEggChangeSync(uuid, { + egg_id: selectedEgg.attributes.id, + nest_id: selectedNest.attributes.id, + docker_image: actualDockerImage, + startup_command: customStartup, + environment: filteredEnvironment, + should_backup: shouldBackup, + should_wipe: shouldWipe, + }); + } toast.success('Software change operation started successfully'); - // Reset the configuration flow but keep the modal open resetFlow(); } catch (error) { console.error('Failed to start egg change operation:', error); @@ -888,11 +903,10 @@ const SoftwareContainer = () => { handleVariableChange(variable.env_variable, e.target.value) } placeholder={variable.default_value || 'Enter value...'} - className={`w-full px-3 py-2 bg-[#ffffff08] border rounded-lg text-sm text-neutral-200 placeholder:text-neutral-500 focus:outline-none transition-colors ${ - variableErrors[variable.env_variable] - ? 'border-red-500 focus:border-red-500' - : 'border-[#ffffff12] focus:border-brand' - }`} + className={`w-full px-3 py-2 bg-[#ffffff08] border rounded-lg text-sm text-neutral-200 placeholder:text-neutral-500 focus:outline-none transition-colors ${variableErrors[variable.env_variable] + ? 'border-red-500 focus:border-red-500' + : 'border-[#ffffff12] focus:border-brand' + }`} /> {variableErrors[variable.env_variable] && (

@@ -933,11 +947,11 @@ const SoftwareContainer = () => {

{backupLimit !== 0 && - (backupLimit === null || (backups?.backupCount || 0) < backupLimit) + (backupLimit === null || (backups?.backupCount || 0) < backupLimit) ? 'Automatically create a backup before applying changes' : backupLimit === 0 - ? 'Backups are disabled for this server' - : 'Backup limit reached'} + ? 'Backups are disabled for this server' + : 'Backup limit reached'}

@@ -1095,26 +1109,23 @@ const SoftwareContainer = () => { {eggPreview.warnings.map((warning, index) => (

{warning.type === 'subdomain_incompatible' ? 'Subdomain Will Be Deleted' @@ -1188,7 +1199,33 @@ const SoftwareContainer = () => { ); } - + function RenderOperationModal() { + if (daemonType == 'elytra') { + return ( + + ); + } + if (daemonType == 'wings') { + return ( + + ); + } + return
Could not find Operation Modal for this daemon: Using ${daemonType}
; + } return (
@@ -1277,14 +1314,7 @@ const SoftwareContainer = () => { {/* Operation Progress Modal */} - + {RenderOperationModal()} ); }; diff --git a/resources/scripts/routers/ServerRouter.tsx b/resources/scripts/routers/ServerRouter.tsx index 2d2b45f60..800d45378 100644 --- a/resources/scripts/routers/ServerRouter.tsx +++ b/resources/scripts/routers/ServerRouter.tsx @@ -410,9 +410,9 @@ const ServerRouter = () => {

Files

- {}} /> - {}} /> - {}} /> + { }} /> + { }} /> + { }} /> { className='relative inset-[1px] w-full h-full overflow-y-auto overflow-x-hidden rounded-md bg-[#08080875]' > {inConflictState && - (!rootAdmin || (rootAdmin && !location.pathname.endsWith(`/server/${id}`))) ? ( + (!rootAdmin || (rootAdmin && !location.pathname.endsWith(`/server/${id}`))) ? ( ) : ( diff --git a/resources/views/admin/eggs/new.blade.php b/resources/views/admin/eggs/new.blade.php index 7f77fec9a..df216c6d6 100644 --- a/resources/views/admin/eggs/new.blade.php +++ b/resources/views/admin/eggs/new.blade.php @@ -150,7 +150,7 @@ }); $('#pNestId').on('change', function (event) { $('#pConfigFrom').html('').select2({ - data: $.map(_.get(Pterodactyl.nests, $(this).val() + '.eggs', []), function (item) { + data: $.map(_.get(Pyrodactyl.nests, $(this).val() + '.eggs', []), function (item) { return { id: item.id, text: item.name + ' <' + item.author + '>', diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php index 2db778ba9..884d188ca 100644 --- a/resources/views/admin/index.blade.php +++ b/resources/views/admin/index.blade.php @@ -23,6 +23,7 @@
You are running Pyrodactyl panel version {{ config('app.version') }}.
+ - @php - $stats = app('Pterodactyl\Repositories\Eloquent\NodeRepository')->getUsageStatsRaw($node); - $memoryPercent = ($stats['memory']['value'] / $stats['memory']['base_limit']) * 100; - $diskPercent = ($stats['disk']['value'] / $stats['disk']['base_limit']) * 100; - - $memoryColor = $memoryPercent < 50 ? '#50af51' : ($memoryPercent < 70 ? '#e0a800' : '#d9534f'); - $diskColor = $diskPercent < 50 ? '#50af51' : ($diskPercent < 70 ? '#e0a800' : '#d9534f'); - - $allocatedMemory = humanizeSize($stats['memory']['value'] * 1024 * 1024); - $totalMemory = humanizeSize($stats['memory']['max'] * 1024 * 1024); - $allocatedDisk = humanizeSize($stats['disk']['value'] * 1024 * 1024); - $totalDisk = humanizeSize($stats['disk']['max'] * 1024 * 1024); - @endphp -

- - - - - + + + + + + + @endforeach diff --git a/resources/views/admin/nodes/new.blade.php b/resources/views/admin/nodes/new.blade.php index c90cfedf6..9bd33d0ad 100644 --- a/resources/views/admin/nodes/new.blade.php +++ b/resources/views/admin/nodes/new.blade.php @@ -39,6 +39,26 @@ @endforeach +
+ + +
+
+ +
+ +
+
+ +
@@ -58,7 +78,7 @@

- Domain name that browsers will use to connect to Wings (e.g wings.example.com). + Domain name that browsers will use to connect to your Node (e.g node.example.com). An IP address may be used only if you are not using SSL for this node.

@@ -71,10 +91,10 @@ value="{{ old('internal_fqdn') }}" />

Optional: - Leave blank to use the Public FQDN for panel-to-Wings communication. - If specified, this internal domain name will be used for panel-to-Wings communication instead - (e.g wings-internal.example.com or 10.0.0.5). - Useful for internal networks where the panel needs to communicate with Wings using a + Leave blank to use the Public FQDN for panel-to-node communication. + If specified, this internal domain name will be used for panel-to-node communication instead + (e.g node-internal.example.com or 10.0.0.5). + Useful for internal networks where the panel needs to communicate with your node using a different address than what browsers use.

@@ -190,5 +210,39 @@ @parent @endsection diff --git a/resources/views/admin/nodes/view/configuration.blade.php b/resources/views/admin/nodes/view/configuration.blade.php index b8f0dc023..124e5bfbe 100644 --- a/resources/views/admin/nodes/view/configuration.blade.php +++ b/resources/views/admin/nodes/view/configuration.blade.php @@ -70,11 +70,14 @@ url: '{{ route('admin.nodes.view.configuration.token', $node->id) }}', headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' }, }).done(function (data) { + + var commandTemplate = "{!! addslashes($node->getAutoDeploy("PLACEHOLDER_TOKEN")) !!}"; + var command = commandTemplate.replace('PLACEHOLDER_TOKEN', data.token); swal({ type: 'success', title: 'Token created.', - text: '

To auto-configure your node run the following command:

cd /etc/elytra && sudo elytra configure --panel-url {{ config('app.url') }} --token ' + data.token + ' --node ' + data.node + '{{ config('app.debug') ? ' --allow-insecure' : '' }}

', - html: true + text: "

To auto-configure your node run the following command:

" + command + "

", + html: true, }) }).fail(function () { swal({ diff --git a/resources/views/admin/nodes/view/settings.blade.php b/resources/views/admin/nodes/view/settings.blade.php index 81696b997..3c536ef1d 100644 --- a/resources/views/admin/nodes/view/settings.blade.php +++ b/resources/views/admin/nodes/view/settings.blade.php @@ -57,12 +57,18 @@
+ +
+
-
@@ -88,7 +94,7 @@

- Domain name that browsers will use to connect to Wings (e.g wings.example.com). + Domain name that browsers will use to connect to {{ $node->daemonType }} (e.g {{ $node->daemonType }}.example.com). An IP address may be used only if you are not using SSL for this node. Why? @@ -107,10 +113,10 @@

Optional: - Leave blank to use the Public FQDN for panel-to-Wings communication. - If specified, this internal domain name will be used for panel-to-Wings communication instead - (e.g wings-internal.example.com or 10.0.0.5). - Useful for internal networks where the panel needs to communicate with Wings using a + Leave blank to use the Public FQDN for panel-to-{{ $node->daemonType }} communication. + If specified, this internal domain name will be used for panel-to-{{ $node->daemonType }} communication instead + (e.g {{ $node->daemonType }}-internal.example.com or 10.0.0.5). + Useful for internal networks where the panel needs to communicate with {{ $node->daemonType }} using a different address than what browsers use.

@@ -266,6 +272,25 @@
+ +
+
+
+

Backup Config

+
+
+
+ +
+ +
+
+
+
+
+
@@ -294,11 +319,40 @@ @endsection @section('footer-scripts') - @parent - + @parent + @endsection diff --git a/resources/views/admin/servers/index.blade.php b/resources/views/admin/servers/index.blade.php index 4c475baf1..98b2b0a04 100644 --- a/resources/views/admin/servers/index.blade.php +++ b/resources/views/admin/servers/index.blade.php @@ -39,6 +39,7 @@
+ @@ -51,6 +52,7 @@ +

© {{ date('Y') }} - {{ config('app.name') }}. + {{ config('app.name') }}. All rights reserved.

{{ round($memoryPercent) }}%{{ $allocatedMemory }}{{ $totalMemory }}{{ round($diskPercent) }}%{{ $allocatedDisk }}{{ $totalDisk }}{{ $node->memory_percent }}%{{ $node->allocated_memory }}{{ $node->total_memory }}{{ $node->disk_percent }}%{{ $node->allocated_disk }}{{ $node->total_disk }} {{ $node->servers_count }}{{ $node->daemonType }}
Owner Node Connection
{{ $server->allocation->alias }}:{{ $server->allocation->port }} @if($server->isSuspended()) Suspended @@ -59,7 +61,7 @@ @else Active @endif - + @if($server->exclude_from_resource_calculation)
Excluded @endif diff --git a/resources/views/admin/servers/new.blade.php b/resources/views/admin/servers/new.blade.php index f04e622f2..1fbb87809 100644 --- a/resources/views/admin/servers/new.blade.php +++ b/resources/views/admin/servers/new.blade.php @@ -421,4 +421,6 @@ // END Persist 'Nest' select2 }); + + @endsection diff --git a/resources/views/admin/servers/view/startup.blade.php b/resources/views/admin/servers/view/startup.blade.php index f213b194a..ac7223483 100644 --- a/resources/views/admin/servers/view/startup.blade.php +++ b/resources/views/admin/servers/view/startup.blade.php @@ -116,7 +116,7 @@ $(document).ready(function () { $('#pEggId').select2({placeholder: 'Select a Nest Egg'}).on('change', function () { var selectedEgg = _.isNull($(this).val()) ? $(this).find('option').first().val() : $(this).val(); - var parentChain = _.get(Pterodactyl.nests, $("#pNestId").val()); + var parentChain = _.get(Pyrodactyl.nests, $("#pNestId").val()); var objectChain = _.get(parentChain, 'eggs.' + selectedEgg); const images = _.get(objectChain, 'docker_images', []) @@ -126,7 +126,7 @@ let opt = document.createElement('option'); opt.value = images[keys[i]]; opt.innerText = keys[i] + " (" + images[keys[i]] + ")"; - if (objectChain.id === parseInt(Pterodactyl.server.egg_id) && Pterodactyl.server.image == opt.value) { + if (objectChain.id === parseInt(Pyrodactyl.server.egg_id) && Pyrodactyl.server.image == opt.value) { opt.selected = true } $('#pDockerImage').append(opt); @@ -135,9 +135,9 @@ $('#pDockerImageCustom').val(''); }) - if (objectChain.id === parseInt(Pterodactyl.server.egg_id)) { - if ($('#pDockerImage').val() != Pterodactyl.server.image) { - $('#pDockerImageCustom').val(Pterodactyl.server.image); + if (objectChain.id === parseInt(Pyrodactyl.server.egg_id)) { + if ($('#pDockerImage').val() != Pyrodactyl.server.image) { + $('#pDockerImageCustom').val(Pyrodactyl.server.image); } } @@ -149,7 +149,7 @@ $('#appendVariablesTo').html(''); $.each(_.get(objectChain, 'variables', []), function (i, item) { - var setValue = _.get(Pterodactyl.server_variables, item.env_variable, item.default_value); + var setValue = _.get(Pyrodactyl.server_variables, item.env_variable, item.default_value); var isRequired = (item.required === 1) ? 'Required ' : ''; var dataAppend = ' \
\ @@ -173,7 +173,7 @@ $('#pNestId').select2({placeholder: 'Select a Nest'}).on('change', function () { $('#pEggId').html('').select2({ - data: $.map(_.get(Pterodactyl.nests, $(this).val() + '.eggs', []), function (item) { + data: $.map(_.get(Pyrodactyl.nests, $(this).val() + '.eggs', []), function (item) { return { id: item.id, text: item.name, @@ -181,8 +181,8 @@ }), }); - if (_.isObject(_.get(Pterodactyl.nests, $(this).val() + '.eggs.' + Pterodactyl.server.egg_id))) { - $('#pEggId').val(Pterodactyl.server.egg_id); + if (_.isObject(_.get(Pyrodactyl.nests, $(this).val() + '.eggs.' + Pyrodactyl.server.egg_id))) { + $('#pEggId').val(Pyrodactyl.server.egg_id); } $('#pEggId').change(); diff --git a/resources/views/admin/settings/captcha.blade.php b/resources/views/admin/settings/captcha.blade.php index 0148076a4..cfe26db2c 100644 --- a/resources/views/admin/settings/captcha.blade.php +++ b/resources/views/admin/settings/captcha.blade.php @@ -180,12 +180,12 @@ function toggleSettings() { const provider = providerSelect.value; - + // Hide all provider-specific settings first turnstileSettings.style.display = 'none'; hcaptchaSettings.style.display = 'none'; recaptchaSettings.style.display = 'none'; - + if (provider === 'turnstile') { turnstileSettings.style.display = 'block'; } else if (provider === 'hcaptcha') { @@ -196,9 +196,9 @@ } providerSelect.addEventListener('change', toggleSettings); - + // Initialize on page load with a small delay to ensure DOM is ready setTimeout(toggleSettings, 100); }); -@endsection \ No newline at end of file +@endsection diff --git a/routes/api-application.php b/routes/api-application.php index 428263f9d..2b7f6eb2c 100644 --- a/routes/api-application.php +++ b/routes/api-application.php @@ -16,7 +16,7 @@ use Pterodactyl\Http\Controllers\Base; */ Route::group(['prefix' => '/panel'], function () { - Route::get('/status', [Base\SystemStatusController::class, 'index']); + Route::get('/status', [Base\SystemStatusController::class, 'index']); }); @@ -31,14 +31,14 @@ Route::group(['prefix' => '/panel'], function () { Route::group(['prefix' => '/users'], function () { - Route::get('/', [Application\Users\UserController::class, 'index'])->name('api.application.users'); - Route::get('/{user:id}', [Application\Users\UserController::class, 'view'])->name('api.application.users.view'); - Route::get('/external/{external_id}', [Application\Users\ExternalUserController::class, 'index'])->name('api.application.users.external'); + Route::get('/', [Application\Users\UserController::class, 'index'])->name('api.application.users'); + Route::get('/{user:id}', [Application\Users\UserController::class, 'view'])->name('api.application.users.view'); + Route::get('/external/{external_id}', [Application\Users\ExternalUserController::class, 'index'])->name('api.application.users.external'); - Route::post('/', [Application\Users\UserController::class, 'store']); - Route::patch('/{user:id}', [Application\Users\UserController::class, 'update']); + Route::post('/', [Application\Users\UserController::class, 'store']); + Route::patch('/{user:id}', [Application\Users\UserController::class, 'update']); - Route::delete('/{user:id}', [Application\Users\UserController::class, 'delete']); + Route::delete('/{user:id}', [Application\Users\UserController::class, 'delete']); }); /* @@ -50,21 +50,21 @@ Route::group(['prefix' => '/users'], function () { | */ Route::group(['prefix' => '/nodes'], function () { - Route::get('/', [Application\Nodes\NodeController::class, 'index'])->name('api.application.nodes'); - Route::get('/deployable', Application\Nodes\NodeDeploymentController::class); - Route::get('/{node:id}', [Application\Nodes\NodeController::class, 'view'])->name('api.application.nodes.view'); - Route::get('/{node:id}/configuration', Application\Nodes\NodeConfigurationController::class); + Route::get('/', [Application\Nodes\NodeController::class, 'index'])->name('api.application.nodes'); + Route::get('/deployable', Application\Nodes\NodeDeploymentController::class); + Route::get('/{node:id}', [Application\Nodes\NodeController::class, 'view'])->name('api.application.nodes.view'); + Route::get('/{node:id}/configuration', Application\Nodes\NodeConfigurationController::class); - Route::post('/', [Application\Nodes\NodeController::class, 'store']); - Route::patch('/{node:id}', [Application\Nodes\NodeController::class, 'update']); + Route::post('/', [Application\Nodes\NodeController::class, 'store']); + Route::patch('/{node:id}', [Application\Nodes\NodeController::class, 'update']); - Route::delete('/{node:id}', [Application\Nodes\NodeController::class, 'delete']); + Route::delete('/{node:id}', [Application\Nodes\NodeController::class, 'delete']); - Route::group(['prefix' => '/{node:id}/allocations'], function () { - Route::get('/', [Application\Nodes\AllocationController::class, 'index'])->name('api.application.allocations'); - Route::post('/', [Application\Nodes\AllocationController::class, 'store']); - Route::delete('/{allocation:id}', [Application\Nodes\AllocationController::class, 'delete'])->name('api.application.allocations.view'); - }); + Route::group(['prefix' => '/{node:id}/allocations'], function () { + Route::get('/', [Application\Nodes\AllocationController::class, 'index'])->name('api.application.allocations'); + Route::post('/', [Application\Nodes\AllocationController::class, 'store']); + Route::delete('/{allocation:id}', [Application\Nodes\AllocationController::class, 'delete'])->name('api.application.allocations.view'); + }); }); /* @@ -76,13 +76,13 @@ Route::group(['prefix' => '/nodes'], function () { | */ Route::group(['prefix' => '/locations'], function () { - Route::get('/', [Application\Locations\LocationController::class, 'index'])->name('api.applications.locations'); - Route::get('/{location:id}', [Application\Locations\LocationController::class, 'view'])->name('api.application.locations.view'); + Route::get('/', [Application\Locations\LocationController::class, 'index'])->name('api.applications.locations'); + Route::get('/{location:id}', [Application\Locations\LocationController::class, 'view'])->name('api.application.locations.view'); - Route::post('/', [Application\Locations\LocationController::class, 'store']); - Route::patch('/{location:id}', [Application\Locations\LocationController::class, 'update']); + Route::post('/', [Application\Locations\LocationController::class, 'store']); + Route::patch('/{location:id}', [Application\Locations\LocationController::class, 'update']); - Route::delete('/{location:id}', [Application\Locations\LocationController::class, 'delete']); + Route::delete('/{location:id}', [Application\Locations\LocationController::class, 'delete']); }); /* @@ -94,32 +94,32 @@ Route::group(['prefix' => '/locations'], function () { | */ Route::group(['prefix' => '/servers'], function () { - Route::get('/', [Application\Servers\ServerController::class, 'index'])->name('api.application.servers'); - Route::get('/{server:id}', [Application\Servers\ServerController::class, 'view'])->name('api.application.servers.view'); - Route::get('/external/{external_id}', [Application\Servers\ExternalServerController::class, 'index'])->name('api.application.servers.external'); + Route::get('/', [Application\Servers\ServerController::class, 'index'])->name('api.application.servers'); + Route::get('/{server:id}', [Application\Servers\ServerController::class, 'view'])->name('api.application.servers.view'); + Route::get('/external/{external_id}', [Application\Servers\ExternalServerController::class, 'index'])->name('api.application.servers.external'); - Route::patch('/{server:id}/details', [Application\Servers\ServerDetailsController::class, 'details'])->name('api.application.servers.details'); - Route::patch('/{server:id}/build', [Application\Servers\ServerDetailsController::class, 'build'])->name('api.application.servers.build'); - Route::patch('/{server:id}/startup', [Application\Servers\StartupController::class, 'index'])->name('api.application.servers.startup'); + Route::patch('/{server:id}/details', [Application\Servers\ServerDetailsController::class, 'details'])->name('api.application.servers.details'); + Route::patch('/{server:id}/build', [Application\Servers\ServerDetailsController::class, 'build'])->name('api.application.servers.build'); + Route::patch('/{server:id}/startup', [Application\Servers\StartupController::class, 'index'])->name('api.application.servers.startup'); - Route::post('/', [Application\Servers\ServerController::class, 'store']); - Route::post('/{server:id}/suspend', [Application\Servers\ServerManagementController::class, 'suspend'])->name('api.application.servers.suspend'); - Route::post('/{server:id}/unsuspend', [Application\Servers\ServerManagementController::class, 'unsuspend'])->name('api.application.servers.unsuspend'); - Route::post('/{server:id}/reinstall', [Application\Servers\ServerManagementController::class, 'reinstall'])->name('api.application.servers.reinstall'); + Route::post('/', [Application\Servers\ServerController::class, 'store']); + Route::post('/{server:id}/suspend', [Application\Servers\ServerManagementController::class, 'suspend'])->name('api.application.servers.suspend'); + Route::post('/{server:id}/unsuspend', [Application\Servers\ServerManagementController::class, 'unsuspend'])->name('api.application.servers.unsuspend'); + Route::post('/{server:id}/reinstall', [Application\Servers\ServerManagementController::class, 'reinstall'])->name('api.application.servers.reinstall'); - Route::delete('/{server:id}', [Application\Servers\ServerController::class, 'delete']); - Route::delete('/{server:id}/{force?}', [Application\Servers\ServerController::class, 'delete']); + Route::delete('/{server:id}', [Application\Servers\ServerController::class, 'delete']); + Route::delete('/{server:id}/{force?}', [Application\Servers\ServerController::class, 'delete']); - // Database Management Endpoint - Route::group(['prefix' => '/{server:id}/databases'], function () { - Route::get('/', [Application\Servers\DatabaseController::class, 'index'])->name('api.application.servers.databases'); - Route::get('/{database:id}', [Application\Servers\DatabaseController::class, 'view'])->name('api.application.servers.databases.view'); + // Database Management Endpoint + Route::group(['prefix' => '/{server:id}/databases'], function () { + Route::get('/', [Application\Servers\DatabaseController::class, 'index'])->name('api.application.servers.databases'); + Route::get('/{database:id}', [Application\Servers\DatabaseController::class, 'view'])->name('api.application.servers.databases.view'); - Route::post('/', [Application\Servers\DatabaseController::class, 'store']); - Route::post('/{database:id}/reset-password', [Application\Servers\DatabaseController::class, 'resetPassword']); + Route::post('/', [Application\Servers\DatabaseController::class, 'store']); + Route::post('/{database:id}/reset-password', [Application\Servers\DatabaseController::class, 'resetPassword']); - Route::delete('/{database:id}', [Application\Servers\DatabaseController::class, 'delete']); - }); + Route::delete('/{database:id}', [Application\Servers\DatabaseController::class, 'delete']); + }); }); /* @@ -131,12 +131,12 @@ Route::group(['prefix' => '/servers'], function () { | */ Route::group(['prefix' => '/nests'], function () { - Route::get('/', [Application\Nests\NestController::class, 'index'])->name('api.application.nests'); - Route::get('/{nest:id}', [Application\Nests\NestController::class, 'view'])->name('api.application.nests.view'); + Route::get('/', [Application\Nests\NestController::class, 'index'])->name('api.application.nests'); + Route::get('/{nest:id}', [Application\Nests\NestController::class, 'view'])->name('api.application.nests.view'); - // Egg Management Endpoint - Route::group(['prefix' => '/{nest:id}/eggs'], function () { - Route::get('/', [Application\Nests\EggController::class, 'index'])->name('api.application.nests.eggs'); - Route::get('/{egg:id}', [Application\Nests\EggController::class, 'view'])->name('api.application.nests.eggs.view'); - }); + // Egg Management Endpoint + Route::group(['prefix' => '/{nest:id}/eggs'], function () { + Route::get('/', [Application\Nests\EggController::class, 'index'])->name('api.application.nests.eggs'); + Route::get('/{egg:id}', [Application\Nests\EggController::class, 'view'])->name('api.application.nests.eggs.view'); + }); }); diff --git a/routes/api-client.php b/routes/api-client.php index bfd6a4e83..d1d39d651 100644 --- a/routes/api-client.php +++ b/routes/api-client.php @@ -1,9 +1,11 @@ name('api:client.index'); Route::get('/permissions', [Client\ClientController::class, 'permissions']); Route::get('/version', function () { @@ -59,6 +62,7 @@ Route::prefix('/account')->middleware(AccountSubject::class)->group(function () | Endpoint: /api/client/servers/{server} | */ + Route::group([ 'prefix' => '/servers/{server}', 'middleware' => [ @@ -67,126 +71,48 @@ Route::group([ ResourceBelongsToServer::class, ], ], function () { - Route::get('/', [Client\Servers\ServerController::class, 'index'])->name('api:client:server.view'); - Route::get('/websocket', Client\Servers\WebsocketController::class)->name('api:client:server.ws'); - Route::get('/resources', Client\Servers\ResourceUtilizationController::class)->name('api:client:server.resources'); - Route::get('/activity', Client\Servers\ActivityLogController::class)->name('api:client:server.activity'); - - Route::post('/command', [Client\Servers\CommandController::class, 'index']); - Route::post('/power', [Client\Servers\PowerController::class, 'index']); - - Route::group(['prefix' => '/databases'], function () { - Route::get('/', [Client\Servers\DatabaseController::class, 'index']); - Route::post('/', [Client\Servers\DatabaseController::class, 'store']); - Route::post('/{database}/rotate-password', [Client\Servers\DatabaseController::class, 'rotatePassword']); - Route::delete('/{database}', [Client\Servers\DatabaseController::class, 'delete']); - }); - - Route::group(['prefix' => '/files'], function () { - Route::get('/list', [Client\Servers\FileController::class, 'directory']); - Route::get('/contents', [Client\Servers\FileController::class, 'contents']); - Route::get('/download', [Client\Servers\FileController::class, 'download']); - Route::put('/rename', [Client\Servers\FileController::class, 'rename']); - Route::post('/copy', [Client\Servers\FileController::class, 'copy']); - Route::post('/write', [Client\Servers\FileController::class, 'write']); - Route::post('/compress', [Client\Servers\FileController::class, 'compress']); - Route::post('/decompress', [Client\Servers\FileController::class, 'decompress']); - Route::post('/delete', [Client\Servers\FileController::class, 'delete']); - Route::post('/create-folder', [Client\Servers\FileController::class, 'create']); - Route::post('/chmod', [Client\Servers\FileController::class, 'chmod']); - Route::post('/pull', [Client\Servers\FileController::class, 'pull'])->middleware(['throttle:10,5']); - Route::get('/upload', Client\Servers\FileUploadController::class); - }); - - Route::group(['prefix' => '/schedules'], function () { - Route::get('/', [Client\Servers\ScheduleController::class, 'index']); - Route::post('/', [Client\Servers\ScheduleController::class, 'store']); - Route::get('/{schedule}', [Client\Servers\ScheduleController::class, 'view']); - Route::post('/{schedule}', [Client\Servers\ScheduleController::class, 'update']); - Route::post('/{schedule}/execute', [Client\Servers\ScheduleController::class, 'execute']); - Route::delete('/{schedule}', [Client\Servers\ScheduleController::class, 'delete']); - - Route::post('/{schedule}/tasks', [Client\Servers\ScheduleTaskController::class, 'store']); - Route::post('/{schedule}/tasks/{task}', [Client\Servers\ScheduleTaskController::class, 'update']); - Route::delete('/{schedule}/tasks/{task}', [Client\Servers\ScheduleTaskController::class, 'delete']); - }); - - Route::group(['prefix' => '/network'], function () { - Route::get('/allocations', [Client\Servers\NetworkAllocationController::class, 'index']); - Route::post('/allocations', [Client\Servers\NetworkAllocationController::class, 'store']); - Route::post('/allocations/{allocation}', [Client\Servers\NetworkAllocationController::class, 'update']); - Route::post('/allocations/{allocation}/primary', [Client\Servers\NetworkAllocationController::class, 'setPrimary']); - Route::delete('/allocations/{allocation}', [Client\Servers\NetworkAllocationController::class, 'delete']); - }); + Route::get('/', [Client\ServerController::class, 'index'])->name('api.client.servers.daemonType'); + Route::get('/resources', [Client\ServerController::class, 'resources'])->name('api.client.servers.resources'); Route::group(['prefix' => '/subdomain'], function () { - Route::get('/', [Client\Servers\SubdomainController::class, 'index']); - Route::post('/', [Client\Servers\SubdomainController::class, 'store']) + Route::get('/', [Elytra\SubdomainController::class, 'index']); + Route::post('/', [Elytra\SubdomainController::class, 'store']) ->middleware('throttle:5,1'); // Max 5 creates/replaces per minute - Route::delete('/', [Client\Servers\SubdomainController::class, 'destroy']) + Route::delete('/', [Elytra\SubdomainController::class, 'destroy']) ->middleware('throttle:5,1'); // Max 5 deletes per minute - Route::post('/check-availability', [Client\Servers\SubdomainController::class, 'checkAvailability']) + Route::post('/check-availability', [Elytra\SubdomainController::class, 'checkAvailability']) ->middleware('throttle:20,1'); // Max 20 availability checks per minute }); - - Route::group(['prefix' => '/users'], function () { - Route::get('/', [Client\Servers\SubuserController::class, 'index']); - Route::post('/', [Client\Servers\SubuserController::class, 'store']); - Route::get('/{user}', [Client\Servers\SubuserController::class, 'view']); - Route::post('/{user}', [Client\Servers\SubuserController::class, 'update']); - Route::delete('/{user}', [Client\Servers\SubuserController::class, 'delete']); - }); - - // Elytra Jobs API - Route::group(['prefix' => '/jobs'], function () { - Route::get('/', [Client\Servers\ElytraJobsController::class, 'index']); - Route::post('/', [Client\Servers\ElytraJobsController::class, 'create']) - ->middleware('server.operation.rate-limit'); - Route::get('/{jobId}', [Client\Servers\ElytraJobsController::class, 'show']); - Route::delete('/{jobId}', [Client\Servers\ElytraJobsController::class, 'cancel']); - }); - - // Backups API - Route::group(['prefix' => '/backups'], function () { - Route::get('/', [Client\Servers\BackupsController::class, 'index']); - Route::post('/', [Client\Servers\BackupsController::class, 'store']) - ->middleware('server.operation.rate-limit'); - Route::delete('/delete-all', [Client\Servers\BackupsController::class, 'deleteAll']) - ->middleware('throttle:2,60'); - Route::post('/bulk-delete', [Client\Servers\BackupsController::class, 'bulkDelete']) - ->middleware('throttle:10,60'); - Route::get('/{backup}', [Client\Servers\BackupsController::class, 'show']); - Route::get('/{backup}/download', [Client\Servers\BackupsController::class, 'download']); - Route::post('/{backup}/restore', [Client\Servers\BackupsController::class, 'restore']) - ->middleware('server.operation.rate-limit'); - Route::post('/{backup}/rename', [Client\Servers\BackupsController::class, 'rename']); - Route::post('/{backup}/lock', [Client\Servers\BackupsController::class, 'toggleLock']); - Route::delete('/{backup}', [Client\Servers\BackupsController::class, 'destroy']); - }); - - Route::group(['prefix' => '/startup'], function () { - Route::get('/', [Client\Servers\StartupController::class, 'index']); - Route::put('/variable', [Client\Servers\StartupController::class, 'update']); - Route::put('/command', [Client\Servers\StartupController::class, 'updateCommand']); - Route::get('/command/default', [Client\Servers\StartupController::class, 'getDefaultCommand']); - Route::post('/command/process', [Client\Servers\StartupController::class, 'processCommand']); - }); - - Route::group(['prefix' => '/settings'], function () { - Route::post('/rename', [Client\Servers\SettingsController::class, 'rename']); - Route::post('/reinstall', [Client\Servers\SettingsController::class, 'reinstall']) - ->middleware('server.operation.rate-limit'); - Route::put('/docker-image', [Client\Servers\SettingsController::class, 'dockerImage']); - Route::post('/docker-image/revert', [Client\Servers\SettingsController::class, 'revertDockerImage']); - Route::put('/egg', [Client\Servers\SettingsController::class, 'changeEgg']); - Route::post('/egg/preview', [Client\Servers\SettingsController::class, 'previewEggChange']) - ->middleware('server.operation.rate-limit'); - Route::post('/egg/apply', [Client\Servers\SettingsController::class, 'applyEggChange']) - ->middleware('server.operation.rate-limit'); - }); - - Route::group(['prefix' => '/operations'], function () { - Route::get('/', [Client\Servers\SettingsController::class, 'getServerOperations']); - Route::get('/{operationId}', [Client\Servers\SettingsController::class, 'getOperationStatus']); - }); +}); + + + +/* +|-------------------------------------------------------------------------- +| Client Control API(Wings) +|-------------------------------------------------------------------------- +| +| Endpoint: /api/client/servers/wings/{server} +| +*/ + +Route::group([ + 'prefix' => 'servers/wings/', +], function () { + require __DIR__ . '/servers/wings.php'; +}); + + +/* +|-------------------------------------------------------------------------- +| Client Control API(Elytra) +|-------------------------------------------------------------------------- +| +| Endpoint: /api/client/servers/elytra/{server} +| +*/ +Route::group([ + 'prefix' => 'servers/elytra/', +], function () { + require __DIR__ . '/servers/elytra.php'; }); diff --git a/routes/api-remote.php b/routes/api-remote.php index b1ea3c8e9..45809ac81 100644 --- a/routes/api-remote.php +++ b/routes/api-remote.php @@ -11,6 +11,7 @@ use Pterodactyl\Http\Controllers\Api\Remote\ElytraJobCompletionController; use Pterodactyl\Http\Controllers\Api\Remote\Servers\ServerDetailsController; use Pterodactyl\Http\Controllers\Api\Remote\Servers\ServerInstallController; use Pterodactyl\Http\Controllers\Api\Remote\Servers\ServerTransferController; +use Pterodactyl\Http\Controllers\Api\Remote\Backups; // Routes for the Wings daemon. Route::post('/sftp/auth', SftpAuthenticationController::class); @@ -20,24 +21,26 @@ Route::post('/servers/reset', [ServerDetailsController::class, 'resetState']); Route::post('/activity', ActivityProcessingController::class); Route::group(['prefix' => '/servers/{uuid}'], function () { - Route::get('/', ServerDetailsController::class); - Route::get('/install', [ServerInstallController::class, 'index']); - Route::post('/install', [ServerInstallController::class, 'store']); + Route::get('/', ServerDetailsController::class); + Route::get('/install', [ServerInstallController::class, 'index']); + Route::post('/install', [ServerInstallController::class, 'store']); - Route::get('/rustic-config', [RusticConfigController::class, 'show']); - Route::post('/backup-sizes', [BackupSizeController::class, 'update']); + Route::get('/rustic-config', [RusticConfigController::class, 'show']); + Route::post('/backup-sizes', [BackupSizeController::class, 'update']); - Route::get('/transfer/failure', [ServerTransferController::class, 'failure']); - Route::get('/transfer/success', [ServerTransferController::class, 'success']); - Route::post('/transfer/failure', [ServerTransferController::class, 'failure']); - Route::post('/transfer/success', [ServerTransferController::class, 'success']); + Route::get('/transfer/failure', [ServerTransferController::class, 'failure']); + Route::get('/transfer/success', [ServerTransferController::class, 'success']); + Route::post('/transfer/failure', [ServerTransferController::class, 'failure']); + Route::post('/transfer/success', [ServerTransferController::class, 'success']); }); Route::group(['prefix' => '/backups'], function () { - Route::get('/{backup}', BackupRemoteUploadController::class); - Route::delete('/{backup}', BackupDeleteController::class); + Route::get('/{backup}', BackupRemoteUploadController::class); + Route::delete('/{backup}', BackupDeleteController::class); + Route::post('/{backup}', [Backups\BackupStatusController::class, 'index']); // NOTE: These are wings only paths, I need to make them use the DaemonType middleware + Route::post('/{backup}/restore', [Backups\BackupStatusController::class, 'restore']); }); Route::group(['prefix' => '/elytra-jobs'], function () { - Route::put('/{jobId}', [ElytraJobCompletionController::class, 'update']); + Route::put('/{jobId}', [ElytraJobCompletionController::class, 'update']); }); diff --git a/routes/servers/elytra.php b/routes/servers/elytra.php new file mode 100644 index 000000000..f2ede6fa7 --- /dev/null +++ b/routes/servers/elytra.php @@ -0,0 +1,144 @@ + '/{server}', + 'middleware' => [ + ServerSubject::class, + AuthenticateServerAccess::class, + ResourceBelongsToServer::class, + CheckDaemonType::class . ':elytra', + ], +], function () { + Route::get('/', [Elytra\ServerController::class, 'index'])->name('api:client:server.elytra.view'); + Route::get('/websocket', Elytra\WebsocketController::class)->name('api:client:server.elytra.ws'); + Route::get('/resources', Elytra\ResourceUtilizationController::class)->name('api:client:server.elytra.resources'); + Route::get('/activity', Elytra\ActivityLogController::class)->name('api:client:server.elytra.activity'); + + Route::post('/command', [Elytra\CommandController::class, 'index']); + Route::post('/power', [Elytra\PowerController::class, 'index']); + + Route::group(['prefix' => '/databases'], function () { + Route::get('/', [Elytra\DatabaseController::class, 'index']); + Route::post('/', [Elytra\DatabaseController::class, 'store']); + Route::post('/{database}/rotate-password', [Elytra\DatabaseController::class, 'rotatePassword']); + Route::delete('/{database}', [Elytra\DatabaseController::class, 'delete']); + }); + + Route::group(['prefix' => '/files'], function () { + Route::get('/list', [Elytra\FileController::class, 'directory']); + Route::get('/contents', [Elytra\FileController::class, 'contents']); + Route::get('/download', [Elytra\FileController::class, 'download']); + Route::put('/rename', [Elytra\FileController::class, 'rename']); + Route::post('/copy', [Elytra\FileController::class, 'copy']); + Route::post('/write', [Elytra\FileController::class, 'write']); + Route::post('/compress', [Elytra\FileController::class, 'compress']); + Route::post('/decompress', [Elytra\FileController::class, 'decompress']); + Route::post('/delete', [Elytra\FileController::class, 'delete']); + Route::post('/create-folder', [Elytra\FileController::class, 'create']); + Route::post('/chmod', [Elytra\FileController::class, 'chmod']); + Route::post('/pull', [Elytra\FileController::class, 'pull'])->middleware(['throttle:10,5']); + Route::get('/upload', Elytra\FileUploadController::class); + }); + + Route::group(['prefix' => '/schedules'], function () { + Route::get('/', [Elytra\ScheduleController::class, 'index']); + Route::post('/', [Elytra\ScheduleController::class, 'store']); + Route::get('/{schedule}', [Elytra\ScheduleController::class, 'view']); + Route::post('/{schedule}', [Elytra\ScheduleController::class, 'update']); + Route::post('/{schedule}/execute', [Elytra\ScheduleController::class, 'execute']); + Route::delete('/{schedule}', [Elytra\ScheduleController::class, 'delete']); + + Route::post('/{schedule}/tasks', [Elytra\ScheduleTaskController::class, 'store']); + Route::post('/{schedule}/tasks/{task}', [Elytra\ScheduleTaskController::class, 'update']); + Route::delete('/{schedule}/tasks/{task}', [Elytra\ScheduleTaskController::class, 'delete']); + }); + + Route::group(['prefix' => '/network'], function () { + Route::get('/allocations', [Elytra\NetworkAllocationController::class, 'index']); + Route::post('/allocations', [Elytra\NetworkAllocationController::class, 'store']); + Route::post('/allocations/{allocation}', [Elytra\NetworkAllocationController::class, 'update']); + Route::post('/allocations/{allocation}/primary', [Elytra\NetworkAllocationController::class, 'setPrimary']); + Route::delete('/allocations/{allocation}', [Elytra\NetworkAllocationController::class, 'delete']); + }); + + Route::group(['prefix' => '/users'], function () { + Route::get('/', [Servers\SubuserController::class, 'index']); + Route::post('/', [Servers\SubuserController::class, 'store']); + Route::get('/{user}', [Servers\SubuserController::class, 'view']); + Route::post('/{user}', [Servers\SubuserController::class, 'update']); + Route::delete('/{user}', [Servers\SubuserController::class, 'delete']); + }); + + // Elytra Jobs API + Route::group(['prefix' => '/jobs'], function () { + Route::get('/', [Elytra\ElytraJobsController::class, 'index']); + Route::post('/', [Elytra\ElytraJobsController::class, 'create']) + ->middleware('server.operation.rate-limit'); + Route::get('/{jobId}', [Elytra\ElytraJobsController::class, 'show']); + Route::delete('/{jobId}', [Elytra\ElytraJobsController::class, 'cancel']); + }); + + // Backups API + Route::group(['prefix' => '/backups'], function () { + Route::get('/', [Elytra\BackupsController::class, 'index']); + Route::post('/', [Elytra\BackupsController::class, 'store']) + ->middleware('server.operation.rate-limit'); + Route::delete('/delete-all', [Elytra\BackupsController::class, 'deleteAll']) + ->middleware('throttle:2,60'); + Route::post('/bulk-delete', [Elytra\BackupsController::class, 'bulkDelete']) + ->middleware('throttle:10,60'); + Route::get('/{backup}', [Elytra\BackupsController::class, 'show']); + Route::get('/{backup}/download', [Elytra\BackupsController::class, 'download']); + Route::post('/{backup}/restore', [Elytra\BackupsController::class, 'restore']) + ->middleware('server.operation.rate-limit'); + Route::post('/{backup}/rename', [Elytra\BackupsController::class, 'rename']); + Route::post('/{backup}/lock', [Elytra\BackupsController::class, 'toggleLock']); + Route::delete('/{backup}', [Elytra\BackupsController::class, 'destroy']); + }); + + Route::group(['prefix' => '/startup'], function () { + Route::get('/', [Elytra\StartupController::class, 'index']); + Route::put('/variable', [Elytra\StartupController::class, 'update']); + Route::put('/command', [Elytra\StartupController::class, 'updateCommand']); + Route::get('/command/default', [Elytra\StartupController::class, 'getDefaultCommand']); + Route::post('/command/process', [Elytra\StartupController::class, 'processCommand']); + }); + + Route::group(['prefix' => '/settings'], function () { + Route::post('/rename', [Elytra\SettingsController::class, 'rename']); + Route::post('/reinstall', [Elytra\SettingsController::class, 'reinstall']) + ->middleware('server.operation.rate-limit'); + Route::put('/docker-image', [Elytra\SettingsController::class, 'dockerImage']); + Route::post('/docker-image/revert', [Elytra\SettingsController::class, 'revertDockerImage']); + Route::put('/egg', [Elytra\SettingsController::class, 'changeEgg']); + Route::post('/egg/preview', [Elytra\SettingsController::class, 'previewEggChange']) + ->middleware('server.operation.rate-limit'); + Route::post('/egg/apply', [Elytra\SettingsController::class, 'applyEggChange']) + ->middleware('server.operation.rate-limit'); + }); + + Route::group(['prefix' => '/operations'], function () { + Route::get('/', [Elytra\SettingsController::class, 'getServerOperations']); + Route::get('/{operationId}', [Elytra\SettingsController::class, 'getOperationStatus']); + }); +}); diff --git a/routes/servers/wings.php b/routes/servers/wings.php new file mode 100644 index 000000000..0071d9e0e --- /dev/null +++ b/routes/servers/wings.php @@ -0,0 +1,119 @@ + '/{server}', + 'middleware' => [ + ServerSubject::class, + AuthenticateServerAccess::class, + ResourceBelongsToServer::class, + CheckDaemonType::class . ':wings', + ], +], function () { + Route::get('/', [Wings\ServerController::class, 'index'])->name('api:client:server.wings.view'); + Route::get('/websocket', Wings\WebsocketController::class)->name('api:client:server.wings.ws'); + Route::get('/resources', Wings\ResourceUtilizationController::class)->name('api:client:server.wings.resources'); + Route::get('/activity', Wings\ActivityLogController::class)->name('api:client:server.wings.activity'); + + Route::post('/command', [Wings\CommandController::class, 'index']); + Route::post('/power', [Wings\PowerController::class, 'index']); + + Route::group(['prefix' => '/databases'], function () { + Route::get('/', [Wings\DatabaseController::class, 'index']); + Route::post('/', [Wings\DatabaseController::class, 'store']); + Route::post('/{database}/rotate-password', [Wings\DatabaseController::class, 'rotatePassword']); + Route::delete('/{database}', [Wings\DatabaseController::class, 'delete']); + }); + + Route::group(['prefix' => '/files'], function () { + Route::get('/list', [Wings\FileController::class, 'directory']); + Route::get('/contents', [Wings\FileController::class, 'contents']); + Route::get('/download', [Wings\FileController::class, 'download']); + Route::put('/rename', [Wings\FileController::class, 'rename']); + Route::post('/copy', [Wings\FileController::class, 'copy']); + Route::post('/write', [Wings\FileController::class, 'write']); + Route::post('/compress', [Wings\FileController::class, 'compress']); + Route::post('/decompress', [Wings\FileController::class, 'decompress']); + Route::post('/delete', [Wings\FileController::class, 'delete']); + Route::post('/create-folder', [Wings\FileController::class, 'create']); + Route::post('/chmod', [Wings\FileController::class, 'chmod']); + Route::post('/pull', [Wings\FileController::class, 'pull'])->middleware(['throttle:10,5']); + Route::get('/upload', Wings\FileUploadController::class); + }); + + Route::group(['prefix' => '/schedules'], function () { + Route::get('/', [Wings\ScheduleController::class, 'index']); + Route::post('/', [Wings\ScheduleController::class, 'store']); + Route::get('/{schedule}', [Wings\ScheduleController::class, 'view']); + Route::post('/{schedule}', [Wings\ScheduleController::class, 'update']); + Route::post('/{schedule}/execute', [Wings\ScheduleController::class, 'execute']); + Route::delete('/{schedule}', [Wings\ScheduleController::class, 'delete']); + + Route::post('/{schedule}/tasks', [Wings\ScheduleTaskController::class, 'store']); + Route::post('/{schedule}/tasks/{task}', [Wings\ScheduleTaskController::class, 'update']); + Route::delete('/{schedule}/tasks/{task}', [Wings\ScheduleTaskController::class, 'delete']); + }); + + Route::group(['prefix' => '/network'], function () { + Route::get('/allocations', [Wings\NetworkAllocationController::class, 'index']); + Route::post('/allocations', [Wings\NetworkAllocationController::class, 'store']); + Route::post('/allocations/{allocation}', [Wings\NetworkAllocationController::class, 'update']); + Route::post('/allocations/{allocation}/primary', [Wings\NetworkAllocationController::class, 'setPrimary']); + Route::delete('/allocations/{allocation}', [Wings\NetworkAllocationController::class, 'delete']); + }); + + Route::group(['prefix' => '/users'], function () { + Route::get('/', [Servers\SubuserController::class, 'index']); + Route::post('/', [Servers\SubuserController::class, 'store']); + Route::get('/{user}', [Servers\SubuserController::class, 'view']); + Route::post('/{user}', [Servers\SubuserController::class, 'update']); + Route::delete('/{user}', [Servers\SubuserController::class, 'delete']); + }); + + Route::group(['prefix' => '/backups'], function () { + Route::get('/', [Wings\BackupController::class, 'index']); + Route::post('/', [Wings\BackupController::class, 'store']); + Route::get('/{backup}', [Wings\BackupController::class, 'view']); + Route::get('/{backup}/download', [Wings\BackupController::class, 'download']); + Route::post('/{backup}/lock', [Wings\BackupController::class, 'toggleLock']); + Route::post('/{backup}/restore', [Wings\BackupController::class, 'restore']); + Route::delete('/{backup}', [Wings\BackupController::class, 'delete']); + }); + + Route::group(['prefix' => '/startup'], function () { + Route::get('/', [Wings\StartupController::class, 'index']); + Route::put('/variable', [Wings\StartupController::class, 'update']); + }); + + Route::group(['prefix' => '/settings'], function () { + Route::post('/rename', [Wings\SettingsController::class, 'rename']); + Route::post('/reinstall', [Wings\SettingsController::class, 'reinstall']); + Route::put('/docker-image', [Wings\SettingsController::class, 'dockerImage']); + Route::put('/egg', [Wings\SettingsController::class, 'changeEgg']); + Route::post('/egg/preview', [Wings\SettingsController::class, 'previewEggChange']) + ->middleware('server.operation.rate-limit'); + Route::post('/egg/apply', [Wings\SettingsController::class, 'applyEggChange']) + ->middleware('server.operation.rate-limit'); + }); +}); diff --git a/vite.config.ts b/vite.config.ts index bbb99aaa4..99c1becc5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -83,28 +83,27 @@ export default defineConfig({ plugins: [ laravel('resources/scripts/index.tsx'), manifestSRI(), - [ - million.vite({ - auto: { - threshold: 0.01, - }, - telemetry: false, - }), - react({ - plugins: [ - [ - '@swc/plugin-styled-components', - { - pure: true, - namespace: 'pyrodactyl', - }, - ], + million.vite({ + auto: { + threshold: 0.01, + }, + telemetry: false, + }), + react({ + plugins: [ + [ + '@swc/plugin-styled-components', + { + pure: true, + namespace: 'pyrodactyl', + }, ], - }), - ], + ], + }), ], resolve: { + dedupe: ['react', 'react-dom', 'react/jsx-runtime'], alias: { '@': resolve(dirname(fileURLToPath(import.meta.url)), 'resources', 'scripts'), '@definitions': resolve( From ce0e5fd6004d55cf333832854e34492c07af8b86 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 05:02:00 -0800 Subject: [PATCH 03/17] fix: build errors --- eslint.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.js b/eslint.config.js index 5b276f61b..791b200c2 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -65,7 +65,7 @@ export default defineConfig([ languageOptions: { parserOptions: { project: './tsconfig.json', - tsconfigRootDir: './', + tsconfigRootDir: '/app', }, }, }, From 2b1a61d1c35c431284baad4eec116d77bbd82191 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 05:19:59 -0800 Subject: [PATCH 04/17] accidentally gitignored required assets --- .gitignore | 1 - .../backups/wings/BackupContextMenu.tsx | 513 ++++++++++++++++++ .../server/backups/wings/BackupItem.tsx | 134 +++++ 3 files changed, 647 insertions(+), 1 deletion(-) create mode 100644 resources/scripts/components/server/backups/wings/BackupContextMenu.tsx create mode 100644 resources/scripts/components/server/backups/wings/BackupItem.tsx diff --git a/.gitignore b/.gitignore index 22378573b..76671db37 100644 --- a/.gitignore +++ b/.gitignore @@ -57,5 +57,4 @@ nix/docker/wings/etc/ nix/docker/wings/lib/ nix/docker/maria/mariadb_data/ nix/mariadb/ -wings/ mariadb_data/ diff --git a/resources/scripts/components/server/backups/wings/BackupContextMenu.tsx b/resources/scripts/components/server/backups/wings/BackupContextMenu.tsx new file mode 100644 index 000000000..d8a59be94 --- /dev/null +++ b/resources/scripts/components/server/backups/wings/BackupContextMenu.tsx @@ -0,0 +1,513 @@ +import { + ArrowDownToLine, + Bars, + CloudArrowUpIn, + Pencil, + Shield, + TrashBin, + TriangleExclamation, +} from '@gravity-ui/icons'; +import { useStoreState } from 'easy-peasy'; +import { useEffect, useState } from 'react'; + +import FlashMessageRender from '@/components/FlashMessageRender'; +import ActionButton from '@/components/elements/ActionButton'; +import Can from '@/components/elements/Can'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/elements/DropdownMenu'; +import Spinner from '@/components/elements/Spinner'; +import SpinnerOverlay from '@/components/elements/SpinnerOverlay'; +import { Dialog } from '@/components/elements/dialog'; + +import http, { httpErrorToHuman } from '@/api/http'; +import { getServerBackupDownloadUrl } from '@/api/server/backups'; +import { ServerBackup } from '@/api/server/types'; + +import { ApplicationStore } from '@/state'; +import { ServerContext } from '@/state/server'; + +import useFlash from '@/plugins/useFlash'; + +import { useUnifiedBackups } from '../useUnifiedBackups'; +import { getGlobalDaemonType } from '@/api/server/getServer'; + +interface Props { + backup: ServerBackup; +} + +const BackupContextMenu = ({ backup }: Props) => { + const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid); + const daemonType = getGlobalDaemonType(); + const setServerFromState = ServerContext.useStoreActions((actions) => actions.server.setServerFromState); + const [modal, setModal] = useState(''); + const [loading, setLoading] = useState(false); + const [countdown, setCountdown] = useState(5); + const [newName, setNewName] = useState(backup.name); + const [deletePassword, setDeletePassword] = useState(''); + const [deleteTotpCode, setDeleteTotpCode] = useState(''); + const [restorePassword, setRestorePassword] = useState(''); + const [restoreTotpCode, setRestoreTotpCode] = useState(''); + const { clearFlashes, clearAndAddHttpError, addFlash } = useFlash(); + const { deleteBackup, restoreBackup, renameBackup, toggleBackupLock, refresh } = useUnifiedBackups(); + const hasTwoFactor = useStoreState((state: ApplicationStore) => state.user.data?.useTotp || false); + + const doDownload = () => { + setLoading(true); + clearFlashes('backups'); + getServerBackupDownloadUrl(uuid, backup.uuid) + .then((url) => { + // @ts-expect-error this is valid + window.location = url; + }) + .catch((error) => { + clearAndAddHttpError({ key: 'backups', error }); + }) + .then(() => setLoading(false)); + }; + + const doDeletion = async () => { + if (!deletePassword) { + addFlash({ + key: 'backup:delete', + type: 'error', + message: 'Password is required to delete this backup.', + }); + return; + } + + if (hasTwoFactor && !deleteTotpCode) { + addFlash({ + key: 'backup:delete', + type: 'error', + message: 'Two-factor authentication code is required.', + }); + return; + } + + setLoading(true); + clearFlashes('backup:delete'); + + try { + await http.delete(`/api/client/servers/${daemonType}/${uuid}/backups/${backup.uuid}`, { + data: { + password: deletePassword, + ...(hasTwoFactor ? { totp_code: deleteTotpCode } : {}), + }, + }); + + setLoading(false); + setModal(''); + setDeletePassword(''); + setDeleteTotpCode(''); + + // Refresh the backup list to reflect the deletion + await refresh(); + } catch (error) { + clearAndAddHttpError({ key: 'backup:delete', error }); + setLoading(false); + } + }; + + const doRestorationAction = async () => { + if (!restorePassword) { + addFlash({ + key: 'backup:restore', + type: 'error', + message: 'Password is required to restore this backup.', + }); + return; + } + + if (hasTwoFactor && !restoreTotpCode) { + addFlash({ + key: 'backup:restore', + type: 'error', + message: 'Two-factor authentication code is required.', + }); + return; + } + + setLoading(true); + clearFlashes('backup:restore'); + + try { + await http.post(`/api/client/servers/${daemonType}/backups/${backup.uuid}/restore`, { + password: restorePassword, + ...(hasTwoFactor ? { totp_code: restoreTotpCode } : {}), + }); + + // Set server status to restoring + setServerFromState((s) => ({ + ...s, + status: 'restoring_backup', + })); + + setLoading(false); + setModal(''); + setRestorePassword(''); + setRestoreTotpCode(''); + } catch (error) { + clearAndAddHttpError({ key: 'backup:restore', error }); + setLoading(false); + } + }; + + const onLockToggle = async () => { + if (backup.isLocked && modal !== 'unlock') { + return setModal('unlock'); + } + + try { + await toggleBackupLock(backup.uuid); + setModal(''); + } catch (error) { + alert(httpErrorToHuman(error)); + } + }; + + const doRename = async () => { + setLoading(true); + clearFlashes('backups'); + + try { + await renameBackup(backup.uuid, newName.trim()); + setLoading(false); + setModal(''); + } catch (error) { + clearAndAddHttpError({ key: 'backups', error }); + setLoading(false); + setModal(''); + } + }; + + useEffect(() => { + let interval: NodeJS.Timeout; + if (modal === 'restore' && countdown > 0) { + interval = setInterval(() => { + setCountdown((prev) => prev - 1); + }, 1000); + } + return () => { + if (interval) clearInterval(interval); + }; + }, [modal, countdown]); + + useEffect(() => { + if (modal === 'restore') { + setCountdown(5); + } + }, [modal]); + + useEffect(() => { + if (modal === 'rename') { + setNewName(backup.name); + } + }, [modal, backup.name]); + + return ( + <> + setModal('')} title='Rename Backup'> +
+
+ + setNewName(e.target.value)} + className='w-full px-3 py-2 bg-zinc-800 border border-zinc-600 rounded-lg text-zinc-100 placeholder-zinc-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500' + placeholder='Enter backup name...' + maxLength={191} + /> +
+
+ + + setModal('')} variant='secondary'> + Cancel + + + Rename Backup + + +
+ setModal('')} + title={`Unlock "${backup.name}"`} + onConfirmed={onLockToggle} + > + This backup will no longer be protected from automated or accidental deletions. + + { + setModal(''); + setRestorePassword(''); + setRestoreTotpCode(''); + }} + title='Restore Backup' + > + +
+
+

"{backup.name}"

+

+ Your server will be stopped during the restoration process. You will not be able to control + the power state, access the file manager, or create additional backups until completed. +

+
+ +
+
+ +
+

+ Destructive Action - Complete Server Restore +

+

+ All current files and server configuration will be deleted and replaced with the + backup data. This action cannot be undone. +

+
+
+
+ +
+
+ + setRestorePassword(e.target.value)} + disabled={loading} + /> +
+ + {hasTwoFactor && ( +
+ + setRestoreTotpCode(e.target.value.replace(/[^0-9]/g, ''))} + disabled={loading} + /> +
+ )} +
+
+ + + { + setModal(''); + setRestorePassword(''); + setRestoreTotpCode(''); + }} + variant='secondary' + disabled={loading} + > + Cancel + + doRestorationAction()} + variant='danger' + disabled={countdown > 0 || loading} + > + {loading && } + {loading + ? 'Restoring...' + : countdown > 0 + ? `Delete All & Restore (${countdown}s)` + : 'Delete All & Restore Backup'} + + +
+ { + setModal(''); + setDeletePassword(''); + setDeleteTotpCode(''); + }} + title={`Delete "${backup.name}"`} + > + +
+

+ This is a permanent operation. The backup cannot be recovered once deleted. +

+ +
+
+ + + +
+

Warning

+

+ The backup file and its snapshot will be permanently deleted. +

+
+
+
+ +
+
+ + setDeletePassword(e.target.value)} + disabled={loading} + /> +
+ + {hasTwoFactor && ( +
+ + setDeleteTotpCode(e.target.value.replace(/[^0-9]/g, ''))} + disabled={loading} + /> +
+ )} +
+
+ + + { + setModal(''); + setDeletePassword(''); + setDeleteTotpCode(''); + }} + disabled={loading} + > + Cancel + + + {loading && } + {loading ? 'Deleting...' : 'Delete Backup'} + + +
+ + {backup.isSuccessful ? ( + + + +
+ +
+
+
+ + + + + Download + + + + setModal('restore')} className='cursor-pointer'> + + Restore + + + + + setModal('rename')} className='cursor-pointer'> + + Rename + + + + {backup.isLocked ? 'Unlock' : 'Lock'} + + {!backup.isLocked && ( + <> + + setModal('delete')} + className='cursor-pointer text-red-400 focus:text-red-300' + > + + Delete + + + )} + + +
+ ) : ( + setModal('delete')} + disabled={loading} + className='flex items-center gap-2' + > + + Delete + + )} + + ); +}; + +export default BackupContextMenu; diff --git a/resources/scripts/components/server/backups/wings/BackupItem.tsx b/resources/scripts/components/server/backups/wings/BackupItem.tsx new file mode 100644 index 000000000..c0d21d887 --- /dev/null +++ b/resources/scripts/components/server/backups/wings/BackupItem.tsx @@ -0,0 +1,134 @@ +import { Cloud, CloudArrowUpIn, Lock, File } from '@gravity-ui/icons'; + +import { format, formatDistanceToNow } from 'date-fns'; + +import Can from '@/components/elements/Can'; +import { ContextMenu, ContextMenuTrigger } from '@/components/elements/ContextMenu'; +import Spinner from '@/components/elements/Spinner'; +import { PageListItem } from '@/components/elements/pages/PageList'; +import { SocketEvent } from '@/components/server/events'; + +import { bytesToString } from '@/lib/formatters'; + +import { ServerBackup } from '@/api/server/types'; +import getServerBackups from '@/api/swr/getServerBackups'; + +// import Can from '@/components/elements/Can'; +import useWebsocketEvent from '@/plugins/useWebsocketEvent'; + +import BackupContextMenu from './BackupContextMenu'; + +interface Props { + backup: ServerBackup; +} + +const BackupItem = ({ backup }: Props) => { + const { mutate } = getServerBackups(); + + useWebsocketEvent(`${SocketEvent.BACKUP_COMPLETED}:${backup.uuid}` as SocketEvent, async (data) => { + try { + const parsed = JSON.parse(data); + + await mutate( + (data) => ({ + ...data!, + items: data!.items.map((b) => + b.uuid !== backup.uuid + ? b + : { + ...b, + isSuccessful: parsed.is_successful || true, + checksum: (parsed.checksum_type || '') + ':' + (parsed.checksum || ''), + bytes: parsed.file_size || 0, + completedAt: new Date(), + }, + ), + }), + false, + ); + } catch (e) { + console.warn(e); + } + }); + + const getStatusIcon = () => { + const isActive = backup.isInProgress === true || backup.isInProgress === false; + if (backup.completedAt === null) { + return ; + } + if (isActive) { + return ; + } else if (backup.isLocked) { + return ; + } else if (backup.isInProgress === true || backup.isSuccessful) { + return ; + } else { + return ; + } + }; + + return ( + + + +
+
+
+ {getStatusIcon()} +
+
+
+

{backup.name}

+ {backup.isAutomatic && ( + + Automatic + + )} + {backup.isLocked && ( + + Locked + + )} +
+ {backup.checksum &&

{backup.checksum}

} +
+
+
+ +
+ {backup.completedAt && backup.bytes ? ( + <> +

Size

+

{bytesToString(backup.bytes)}

+ + ) : ( + <> +

Size

+

-

+ + )} +
+ +
+

Created

+

+ {formatDistanceToNow(backup.createdAt, { includeSeconds: true, addSuffix: true })} +

+
+ + + + + + {!backup.completedAt ? <> : } + +
+
+
+ ); +}; + +export default BackupItem; From 7ca4a5107513b41ab32c901a64f8bd7827a2ae2a Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 17:50:24 -0800 Subject: [PATCH 05/17] fix: replace that god awful server-menu screenshot I took --- .github/server-menu.png | Bin 811369 -> 140558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/server-menu.png b/.github/server-menu.png index c67fcc2ae4427e7993e5e0521ef1822211111048..56d3c67d6b7fbefabc51b698f036ec385c915f49 100644 GIT binary patch literal 140558 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

n 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 Bu}}a2 literal 811369 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

%L?&OmkxK|&$46CM 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

qBLiW1Sz7{-pd~i>w$Hcp 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

R|6#l(z()|?691;AKXC8N|b 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%0DA5c7*_wv1sWh0IpmU~)(^ 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
KEx+WULy8?9bra0B-_` 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∓?qB(LNN{G$vJkh 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

S-&IU7S&= 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%0Ae&JZF{7eksm1 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 vvO6D#Jr@wi+0>}cQ00000NkvXXu0mjf_GFzx From f822cac6c190a675c182853fe555dc679da4f6de Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 20:40:51 -0800 Subject: [PATCH 06/17] Relicense under Apache2.0 --- LICENSE.md | 668 +------------------------------------------------- README.md | 2 +- composer.json | 4 +- 3 files changed, 13 insertions(+), 661 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 29ebfa545..e430f3594 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,661 +1,13 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 +Copyright 2026 Pyrodactyl-Oss and Pyro, Inc. - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at - Preamble +http://www.apache.org/licenses/LICENSE-2.0 - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. \ No newline at end of file +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index f8f7f0150..63bdd0a03 100755 --- a/README.md +++ b/README.md @@ -66,4 +66,4 @@ Pterodactyl® Copyright © 2015 - 2022 Dane Everitt and contributors. Pyrodactyl™ Copyright © 2023-Present Pyro Inc. and contributors. -AGPL-3.0-or-later +Apache-2.0 diff --git a/composer.json b/composer.json index 8615908d7..5c084c3f2 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "pyrodactyl-oss/pyrodactyl", "description": "Pyrodactyl is the Pterodactyl-based game server panel that's faster, smaller, safer, and more accessible.", - "license": "AGPL-3.0-or-later", + "license": "Apache-2.0", "authors": [ { "name": "Pyrodactyl-Oss", @@ -10,7 +10,7 @@ "role": "Maintainer" }, { - "name": "Pyro Host Inc.", + "name": "Pyro, Inc.", "email": "team@pyro.host", "homepage": "https://pyro.host", "role": "Former Maintainer" From 87b1b9ccd02ce7f612b4fec94774abf7f9c5a0f9 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Fri, 9 Jan 2026 20:42:21 -0800 Subject: [PATCH 07/17] fix: fixed so github will recognise license --- LICENSE.md | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 198 insertions(+), 10 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index e430f3594..0d8755340 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,13 +1,201 @@ -Copyright 2026 Pyrodactyl-Oss and Pyro, Inc. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -http://www.apache.org/licenses/LICENSE-2.0 + 1. Definitions. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2026 Pyrodactyl-oss, and Pyro, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From a60b22d9d5fd0cee8bf2f1adbfdcd22b3ee1251e Mon Sep 17 00:00:00 2001 From: Naterfute Date: Mon, 12 Jan 2026 16:11:56 -0800 Subject: [PATCH 08/17] fix: potential cve --- app/Models/Daemons/Elytra.php | 2 +- app/Models/Daemons/Wings.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Models/Daemons/Elytra.php b/app/Models/Daemons/Elytra.php index c590096b0..57c48cfdd 100644 --- a/app/Models/Daemons/Elytra.php +++ b/app/Models/Daemons/Elytra.php @@ -88,6 +88,6 @@ class Elytra implements Daemon { $debugFlag = config('app.debug') ? ' --allow-insecure' : ''; - return "cd /etc/elytra && sudo elytra configure --panel-url " . config('app.url') . " --token " . $token . " --node " . $node->id . $debugFlag . ""; + return "cd /etc/elytra && sudo elytra configure --panel-url " . escapeshellarg(config('app.url')) . " --token " . escapeshellarg($token) . " --node " . escapeshellarg((string) $node->id) . $debugFlag . ""; } } diff --git a/app/Models/Daemons/Wings.php b/app/Models/Daemons/Wings.php index 46410a1a1..6f5665b74 100644 --- a/app/Models/Daemons/Wings.php +++ b/app/Models/Daemons/Wings.php @@ -45,6 +45,6 @@ class Wings implements Daemon { $debugFlag = config('app.debug') ? ' --allow-insecure' : ''; - return "cd /etc/pterodactyl && sudo wings configure --panel-url " . config('app.url') . " --token " . $token . " --node " . $node->id . $debugFlag . ""; + return "cd /etc/pterodactyl && sudo wings configure --panel-url " . escapeshellarg(config('app.url')) . " --token " . escapeshellarg($token) . " --node " . escapeshellarg((string) $node->id) . $debugFlag . ""; } } From 9d2cacba6868653574b28d2aaff5a3a2c463d15f Mon Sep 17 00:00:00 2001 From: Naterfute Date: Tue, 13 Jan 2026 02:32:59 -0800 Subject: [PATCH 09/17] fix: network page uses globalDaemon type now --- app/Enums/Limits/ResourceLimit.php | 65 +++++++++++++++++++ .../Servers/Elytra/BackupsController.php | 10 +-- .../Client/Servers/Wings/BackupController.php | 2 +- app/Providers/RouteServiceProvider.php | 2 + .../server/network/createServerAllocation.ts | 3 +- .../server/network/deleteServerAllocation.ts | 3 +- .../network/setPrimaryServerAllocation.ts | 3 +- .../network/setServerAllocationNotes.ts | 3 +- .../scripts/api/server/network/subdomain.ts | 1 + 9 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 app/Enums/Limits/ResourceLimit.php diff --git a/app/Enums/Limits/ResourceLimit.php b/app/Enums/Limits/ResourceLimit.php new file mode 100644 index 000000000..fd30156ee --- /dev/null +++ b/app/Enums/Limits/ResourceLimit.php @@ -0,0 +1,65 @@ +name}"); + } + + /** + * Returns a middleware that will throttle the specific resource by server. This + * throttle applies to any user making changes to that resource on the specific + * server, it is NOT per-user. + */ + public function middleware(): string + { + return ThrottleRequests::using($this->throttleKey()); + } + + public function limit(): Limit + { + return match ($this) { + self::Backup => Limit::perMinutes(15, 3), + self::Database => Limit::perMinute(2), + self::FilePull => Limit::perMinutes(10, 5), + self::Subuser => Limit::perMinutes(15, 10), + self::Websocket => Limit::perMinute(5), + default => Limit::perMinute(2), + }; + } + + public static function boot(): void + { + foreach (self::cases() as $case) { + RateLimiter::for($case->throttleKey(), function (Request $request) use ($case) { + Assert::isInstanceOf($server = $request->route()->parameter('server'), Server::class); + + return $case->limit()->by($server->uuid); + }); + } + } +} diff --git a/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php b/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php index 65df79e8c..a0ef51125 100644 --- a/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php +++ b/app/Http/Controllers/Api/Client/Servers/Elytra/BackupsController.php @@ -19,6 +19,8 @@ use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Pterodactyl\Http\Requests\Api\Client\Servers\Backups\StoreBackupRequest; use Pterodactyl\Http\Requests\Api\Client\Servers\Backups\RestoreBackupRequest; +use Pterodactyl\Enums\Daemon\Adapters; + class BackupsController extends ClientApiController { public function __construct( @@ -44,14 +46,14 @@ class BackupsController extends ClientApiController $rusticBackupSum = $server->backups() ->where('is_successful', true) - ->whereIn('disk', [Backup::ADAPTER_RUSTIC_LOCAL, Backup::ADAPTER_RUSTIC_S3]) + ->whereIn('disk', Adapters::all_elytra()) ->sum('bytes'); $rusticSumMb = round($rusticBackupSum / 1024 / 1024, 2); $legacyBackupSum = $server->backups() ->where('is_successful', true) - ->whereNotIn('disk', [Backup::ADAPTER_RUSTIC_LOCAL, Backup::ADAPTER_RUSTIC_S3]) + ->whereNotIn('disk', Adapters::all_elytra()) ->sum('bytes'); $legacyUsageMb = round($legacyBackupSum / 1024 / 1024, 2); @@ -101,7 +103,7 @@ class BackupsController extends ClientApiController 'backup_create', [ 'operation' => 'create', - 'adapter' => $request->input('adapter', config('backups.default')), + 'adapter' => $request->input('adapter', $server->node->backupDisk), 'ignored' => $request->input('ignored', ''), 'name' => $request->input('name'), ], @@ -407,7 +409,7 @@ class BackupsController extends ClientApiController [ 'operation' => 'delete', 'backup_uuid' => $backup->uuid, - 'adapter_type' => $backup->getElytraAdapterType(), + 'adapter_type' => $backup->disk, 'snapshot_id' => $backup->snapshot_id, 'checksum' => $backup->checksum, ], diff --git a/app/Http/Controllers/Api/Client/Servers/Wings/BackupController.php b/app/Http/Controllers/Api/Client/Servers/Wings/BackupController.php index 20fce2b62..40332a507 100644 --- a/app/Http/Controllers/Api/Client/Servers/Wings/BackupController.php +++ b/app/Http/Controllers/Api/Client/Servers/Wings/BackupController.php @@ -74,7 +74,7 @@ class BackupController extends ClientApiController // how best to allow a user to create a backup that is locked without also preventing // them from just filling up a server with backups that can never be deleted? if ($request->user()->can(Permission::ACTION_BACKUP_DELETE, $server)) { - $action->setIsLocked((bool) $request->input('is_locked')); + $action->setIsLocked($request->boolean('is_locked')); } $backup = $action->handle($server, $request->input('name')); diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 43c99f82e..8a60d5072 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -4,6 +4,7 @@ namespace Pterodactyl\Providers; use Illuminate\Http\Request; use Pterodactyl\Models\Database; +use Pterodactyl\Enums\Limits\ResourceLimit; use Illuminate\Support\Facades\Route; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Support\Facades\RateLimiter; @@ -106,5 +107,6 @@ class RouteServiceProvider extends ServiceProvider config('http.rate_limit.application') )->by($key); }); + ResourceLimit::boot(); } } diff --git a/resources/scripts/api/server/network/createServerAllocation.ts b/resources/scripts/api/server/network/createServerAllocation.ts index 48867ef77..f0f9b9d64 100644 --- a/resources/scripts/api/server/network/createServerAllocation.ts +++ b/resources/scripts/api/server/network/createServerAllocation.ts @@ -1,9 +1,10 @@ import http from '@/api/http'; import { Allocation } from '@/api/server/getServer'; import { rawDataToServerAllocation } from '@/api/transformers'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/network/allocations`); + const { data } = await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/network/allocations`); return rawDataToServerAllocation(data); }; diff --git a/resources/scripts/api/server/network/deleteServerAllocation.ts b/resources/scripts/api/server/network/deleteServerAllocation.ts index ec27a60ef..aef375464 100644 --- a/resources/scripts/api/server/network/deleteServerAllocation.ts +++ b/resources/scripts/api/server/network/deleteServerAllocation.ts @@ -1,5 +1,6 @@ import http from '@/api/http'; import { Allocation } from '@/api/server/getServer'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, id: number): Promise => - await http.delete(`/api/client/servers/${uuid}/network/allocations/${id}`); + await http.delete(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/network/allocations/${id}`); diff --git a/resources/scripts/api/server/network/setPrimaryServerAllocation.ts b/resources/scripts/api/server/network/setPrimaryServerAllocation.ts index d87958551..9a34bf909 100644 --- a/resources/scripts/api/server/network/setPrimaryServerAllocation.ts +++ b/resources/scripts/api/server/network/setPrimaryServerAllocation.ts @@ -1,9 +1,10 @@ import http from '@/api/http'; import { Allocation } from '@/api/server/getServer'; import { rawDataToServerAllocation } from '@/api/transformers'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, id: number): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/network/allocations/${id}/primary`); + const { data } = await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/network/allocations/${id}/primary`); return rawDataToServerAllocation(data); }; diff --git a/resources/scripts/api/server/network/setServerAllocationNotes.ts b/resources/scripts/api/server/network/setServerAllocationNotes.ts index 509899a2a..bb1db66d2 100644 --- a/resources/scripts/api/server/network/setServerAllocationNotes.ts +++ b/resources/scripts/api/server/network/setServerAllocationNotes.ts @@ -1,9 +1,10 @@ import http from '@/api/http'; import { Allocation } from '@/api/server/getServer'; import { rawDataToServerAllocation } from '@/api/transformers'; +import { getGlobalDaemonType } from '@/api/server/getServer'; export default async (uuid: string, id: number, notes: string | null): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/network/allocations/${id}`, { notes }); + const { data } = await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/network/allocations/${id}`, { notes }); return rawDataToServerAllocation(data); }; diff --git a/resources/scripts/api/server/network/subdomain.ts b/resources/scripts/api/server/network/subdomain.ts index 3dddce4f9..080789a48 100644 --- a/resources/scripts/api/server/network/subdomain.ts +++ b/resources/scripts/api/server/network/subdomain.ts @@ -25,6 +25,7 @@ export interface AvailabilityResponse { available: boolean; message: string; } +const daemonType = getGlobalDaemonType(); export const getSubdomainInfo = (uuid: string): Promise => { return new Promise((resolve, reject) => { From 11a3bd2a4b54b8e95e58f3ef84aade5f85320f0a Mon Sep 17 00:00:00 2001 From: Naterfute Date: Tue, 13 Jan 2026 02:38:13 -0800 Subject: [PATCH 10/17] fix: update http Kernel --- app/Http/Kernel.php | 128 +++++++++++++++++++++++--------------------- 1 file changed, 68 insertions(+), 60 deletions(-) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index e81ac82d6..73a4eabbe 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -35,66 +35,74 @@ use Pterodactyl\Http\Middleware\Api\Application\AuthenticateApplicationUser; class Kernel extends HttpKernel { - /** - * The application's global HTTP middleware stack. - */ - protected $middleware = [ - TrustProxies::class, - HandleCors::class, - PreventRequestsDuringMaintenance::class, - ValidatePostSize::class, - TrimStrings::class, - ConvertEmptyStringsToNull::class, - ]; + /** + * The application's global HTTP middleware stack. + */ + protected $middleware = [ + TrustProxies::class, + HandleCors::class, + PreventRequestsDuringMaintenance::class, + ValidatePostSize::class, + TrimStrings::class, + ConvertEmptyStringsToNull::class, + ]; - /** - * The application's route middleware groups. - */ - protected $middlewareGroups = [ - 'web' => [ - EncryptCookies::class, - AddQueuedCookiesToResponse::class, - StartSession::class, - ShareErrorsFromSession::class, - VerifyCsrfToken::class, - SubstituteBindings::class, - LanguageMiddleware::class, - ], - 'api' => [ - EnsureStatefulRequests::class, - 'auth:sanctum', - IsValidJson::class, - TrackAPIKey::class, - RequireTwoFactorAuthentication::class, - AuthenticateIPAccess::class, - ], - 'application-api' => [ - SubstituteBindings::class, - AuthenticateApplicationUser::class, - ], - 'client-api' => [ - SubstituteClientBindings::class, - RequireClientApiKey::class, - ], - 'daemon' => [ - SubstituteBindings::class, - DaemonAuthenticate::class, - ], - ]; + protected $middlewarePriority = [ + SubstituteClientBindings::class, + ]; - /** - * The application's route middleware. - */ - protected $middlewareAliases = [ - 'auth' => Authenticate::class, - 'auth.basic' => AuthenticateWithBasicAuth::class, - 'auth.session' => AuthenticateSession::class, - 'guest' => RedirectIfAuthenticated::class, - 'csrf' => VerifyCsrfToken::class, - 'throttle' => ThrottleRequests::class, - 'can' => Authorize::class, - 'bindings' => SubstituteBindings::class, - 'node.maintenance' => MaintenanceMiddleware::class, - 'captcha' => \Pterodactyl\Http\Middleware\VerifyCaptcha::class, - ]; + /** + * The application's route middleware groups. + */ + protected $middlewareGroups = [ + 'web' => [ + EncryptCookies::class, + AddQueuedCookiesToResponse::class, + StartSession::class, + ShareErrorsFromSession::class, + VerifyCsrfToken::class, + SubstituteBindings::class, + LanguageMiddleware::class, + ], + 'api' => [ + EncryptCookies::class, + AddQueuedCookiesToResponse::class, + StartSession::class, + EnsureStatefulRequests::class, + 'auth:sanctum', + IsValidJson::class, + TrackAPIKey::class, + RequireTwoFactorAuthentication::class, + AuthenticateIPAccess::class, + + ], + 'application-api' => [ + SubstituteBindings::class, + AuthenticateApplicationUser::class, + ], + 'client-api' => [ + SubstituteClientBindings::class, + RequireClientApiKey::class, + ], + 'daemon' => [ + SubstituteBindings::class, + DaemonAuthenticate::class, + ], + ]; + + /** + * The application's route middleware. + */ + protected $middlewareAliases = [ + 'auth' => Authenticate::class, + 'auth.basic' => AuthenticateWithBasicAuth::class, + 'auth.session' => AuthenticateSession::class, + 'guest' => RedirectIfAuthenticated::class, + 'csrf' => VerifyCsrfToken::class, + 'throttle' => ThrottleRequests::class, + 'can' => Authorize::class, + 'bindings' => SubstituteBindings::class, + 'node.maintenance' => MaintenanceMiddleware::class, + 'captcha' => \Pterodactyl\Http\Middleware\VerifyCaptcha::class, + ]; } From 1c97c256e25359c38d99f2a02d6cb8f18db9261d Mon Sep 17 00:00:00 2001 From: Naterfute Date: Tue, 13 Jan 2026 05:00:58 -0800 Subject: [PATCH 11/17] fix: csrf mismatch error --- app/Http/Kernel.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 73a4eabbe..6c6daabc2 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -47,9 +47,9 @@ class Kernel extends HttpKernel ConvertEmptyStringsToNull::class, ]; - protected $middlewarePriority = [ - SubstituteClientBindings::class, - ]; + /* protected $middlewarePriority = [ */ + /* SubstituteClientBindings::class, */ + /* ]; */ /** * The application's route middleware groups. @@ -67,8 +67,8 @@ class Kernel extends HttpKernel 'api' => [ EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, - EnsureStatefulRequests::class, + /* StartSession::class, */ + /* EnsureStatefulRequests::class, */ 'auth:sanctum', IsValidJson::class, TrackAPIKey::class, From 9096320fde48dd535a901ceabc837ca9c92c64e7 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Tue, 13 Jan 2026 06:04:14 -0800 Subject: [PATCH 12/17] fix: download backup was the wrong addr --- .../scripts/api/server/backups/getServerBackupDownloadUrl.ts | 3 ++- resources/scripts/api/server/backups/index.ts | 1 + resources/scripts/api/server/backups/renameServerBackup.ts | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/scripts/api/server/backups/getServerBackupDownloadUrl.ts b/resources/scripts/api/server/backups/getServerBackupDownloadUrl.ts index 263f16347..dcde2829f 100644 --- a/resources/scripts/api/server/backups/getServerBackupDownloadUrl.ts +++ b/resources/scripts/api/server/backups/getServerBackupDownloadUrl.ts @@ -1,6 +1,7 @@ import http from '@/api/http'; +import { getGlobalDaemonType } from '../getServer'; export default async (uuid: string, backup: string): Promise => { - const { data } = await http.get(`/api/client/servers/${uuid}/backups/${backup}/download`); + const { data } = await http.get(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/backups/${backup}/download`); return data.attributes.url; }; diff --git a/resources/scripts/api/server/backups/index.ts b/resources/scripts/api/server/backups/index.ts index 16a0a3ca9..49f2c2933 100644 --- a/resources/scripts/api/server/backups/index.ts +++ b/resources/scripts/api/server/backups/index.ts @@ -15,6 +15,7 @@ export const restoreServerBackup = async ( const response = await http.post( `/api/client/servers/${daemonType}/${uuid}/backups/${backup}/restore`, { + // FIXME: This can't be right adapter: 'rustic_s3', truncate_directory: true, download_url: '', diff --git a/resources/scripts/api/server/backups/renameServerBackup.ts b/resources/scripts/api/server/backups/renameServerBackup.ts index 2e6c7a958..2a21e729d 100644 --- a/resources/scripts/api/server/backups/renameServerBackup.ts +++ b/resources/scripts/api/server/backups/renameServerBackup.ts @@ -1,9 +1,10 @@ import http from '@/api/http'; import { ServerBackup } from '@/api/server/types'; import { rawDataToServerBackup } from '@/api/transformers'; +import { getGlobalDaemonType } from '../getServer'; export default async (uuid: string, backup: string, name: string): Promise => { - const { data } = await http.post(`/api/client/servers/${uuid}/backups/${backup}/rename`, { + const { data } = await http.post(`/api/client/servers/${getGlobalDaemonType()}/${uuid}/backups/${backup}/rename`, { name: name, }); From 5fb9fb2803e9bf1fbdb007a5e8c8d2d121064e83 Mon Sep 17 00:00:00 2001 From: Skylar <118846397+NobleSkye@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:30:45 -0800 Subject: [PATCH 13/17] added hytale domain and hytale egg --- .../Features/HytaleSubdomainFeature.php | 60 ++++++++++++ database/Seeders/eggs/hytale/egg-hytale.json | 95 +++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 app/Services/Subdomain/Features/HytaleSubdomainFeature.php create mode 100644 database/Seeders/eggs/hytale/egg-hytale.json diff --git a/app/Services/Subdomain/Features/HytaleSubdomainFeature.php b/app/Services/Subdomain/Features/HytaleSubdomainFeature.php new file mode 100644 index 000000000..cc16749fe --- /dev/null +++ b/app/Services/Subdomain/Features/HytaleSubdomainFeature.php @@ -0,0 +1,60 @@ +allocation->ip; + $port = $server->allocation->port; + $subdomain_split = explode(".", $subdomain); + $fullDomain = $subdomain_split[0] . '.' . $domain; + + $records = []; + + // A record pointing to the server IP + $records[] = [ + 'name' => $subdomain, + 'type' => 'A', + 'content' => $ip, + 'ttl' => 300, + ]; + + // SRV record for Hytale (only if not using default port) + if ($port != 25565) { + $records[] = [ + 'name' => '_hytale._tcp.' . $subdomain, + 'type' => 'SRV', + 'content' => [ + 'service' => '_hytale', + 'proto' => '_tcp', + 'name' => $subdomain, + 'priority' => 0, + 'weight' => 5, + 'port' => $port, + 'target' => $fullDomain, + 'content' => "SRV 0 5 {$port} {$fullDomain}", + ], + 'ttl' => 300, + ]; + } + + return $records; + } +} + diff --git a/database/Seeders/eggs/hytale/egg-hytale.json b/database/Seeders/eggs/hytale/egg-hytale.json new file mode 100644 index 000000000..928608504 --- /dev/null +++ b/database/Seeders/eggs/hytale/egg-hytale.json @@ -0,0 +1,95 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2026-01-13T05:17:28+00:00", + "name": "Hytale", + "author": "hello@pterodactyl.io", + "description": "Set out on an adventure built for both creation and play. Hytale blends the freedom of a sandbox with the momentum of an RPG: explore a procedurally generated world full of dungeons, secrets, and a variety of creatures, then shape it block by block.", + "features": [ + "java_version", + "subdomain_hytale" + ], + "docker_images": { + "ghcr.io/pterodactyl/games:hytale": "ghcr.io/pterodactyl/games:hytale" + }, + "file_denylist": [], + "startup": "java -XX:AOTCache=Server\/HytaleServer.aot -Xms128M $( ((SERVER_MEMORY)) && printf %s \"-Xmx${SERVER_MEMORY}M\" ) -jar Server\/HytaleServer.jar $( ((HYTALE_ALLOW_OP)) && printf %s \"--allow-op\" ) --assets Assets.zip --bind 0.0.0.0:${SERVER_PORT}", + "config": { + "files": "{}", + "startup": "{\n \"done\": \"Hytale Server Booted\"\n}", + "logs": "{}", + "stop": "/stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\nset -e\n\nmkdir -p \/mnt\/server\ncd \/mnt\/server\n\necho -e \"Downloading Hytale Downloader CLI...\"\n\nDOWNLOAD_URL=\"https:\/\/downloader.hytale.com\/hytale-downloader.zip\"\n\nrm -f hytale-downloader.zip\ncurl -o hytale-downloader.zip $DOWNLOAD_URL\nunzip -o hytale-downloader.zip -d hytale-downloader\nmv hytale-downloader\/hytale-downloader-linux-amd64 hytale-downloader\/hytale-downloader-linux\nchmod 555 hytale-downloader\/hytale-downloader-linux\n\necho -e \"Verifying Hytale Downloader installation...\"\n\necho -e \"Hytale Downloader version: `.\/hytale-downloader\/hytale-downloader-linux -version`\"\n\necho -e \"Hytale Downloader installed successfully.\"", + "container": "ghcr.io/pterodactyl/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Accept Early Plugins", + "description": "Hytale warns that loading early plugins is unsupported and may cause stability issues.", + "env_variable": "HYTALE_ACCEPT_EARLY_PLUGINS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Auth Mode", + "description": "Authentication mode.", + "env_variable": "HYTALE_AUTH_MODE", + "default_value": "authenticated", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:authenticated,offline", + "field_type": "text" + }, + { + "name": "Patchline", + "description": "The branch of Hytale to install.", + "env_variable": "HYTALE_PATCHLINE", + "default_value": "release", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:release,pre-release", + "field_type": "text" + }, + { + "name": "Disable Sentry", + "description": "Hytale uses Sentry to track crashes. Disable Sentry during active plugin development.", + "env_variable": "DISABLE_SENTRY", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Use Ahead-of-Time Cache", + "description": "Hytale provides a pre-trained AOT Java cache which can significantly improve boot times.", + "env_variable": "USE_AOT_CACHE", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Allow operators", + "description": "Allow operators", + "env_variable": "HYTALE_ALLOW_OP", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + } + ] +} \ No newline at end of file From 86922c3e873288aa0997d31b73dc0a60ba1a1ee7 Mon Sep 17 00:00:00 2001 From: Skylar <118846397+NobleSkye@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:31:26 -0800 Subject: [PATCH 14/17] changed minecraft class to hytale for hytale domain --- app/Services/Subdomain/Features/HytaleSubdomainFeature.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/Subdomain/Features/HytaleSubdomainFeature.php b/app/Services/Subdomain/Features/HytaleSubdomainFeature.php index cc16749fe..66f97ca4f 100644 --- a/app/Services/Subdomain/Features/HytaleSubdomainFeature.php +++ b/app/Services/Subdomain/Features/HytaleSubdomainFeature.php @@ -5,7 +5,7 @@ namespace Pterodactyl\Services\Subdomain\Features; use Pterodactyl\Models\Server; use Pterodactyl\Contracts\Subdomain\SubdomainFeatureInterface; -class MinecraftSubdomainFeature implements SubdomainFeatureInterface +class HytaleSubdomainFeature implements SubdomainFeatureInterface { /** * Get the feature name. @@ -16,7 +16,7 @@ class MinecraftSubdomainFeature implements SubdomainFeatureInterface } /** - * Get the DNS records that need to be created for Minecraft. + * Get the DNS records that need to be created for Hytale. */ public function getDnsRecords(Server $server, string $subdomain, string $domain): array { From 67726091d9c99d59f0324602238754489f6cd8a4 Mon Sep 17 00:00:00 2001 From: Naterfute Date: Tue, 13 Jan 2026 20:16:09 -0800 Subject: [PATCH 15/17] feat: Hytale Support --- .../features/HytaleOauthRequireFeature.tsx | 112 ++++++++++++++++++ .../components/server/features/index.ts | 3 +- 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 resources/scripts/components/server/features/HytaleOauthRequireFeature.tsx diff --git a/resources/scripts/components/server/features/HytaleOauthRequireFeature.tsx b/resources/scripts/components/server/features/HytaleOauthRequireFeature.tsx new file mode 100644 index 000000000..9ce32570a --- /dev/null +++ b/resources/scripts/components/server/features/HytaleOauthRequireFeature.tsx @@ -0,0 +1,112 @@ +import { useEffect, useState } from 'react'; + +import FlashMessageRender from '@/components/FlashMessageRender'; +import Button from '@/components/elements/ActionButton'; +// assuming this is your styled button +import Modal from '@/components/elements/Modal'; +import { SocketEvent } from '@/components/server/events'; + +import { ServerContext } from '@/state/server'; + +import useFlash from '@/plugins/useFlash'; + +const HytaleOauthRequireFeature = () => { + const [visible, setVisible] = useState(false); + const [userCode, setUserCode] = useState(''); + const [verificationUri, setVerificationUri] = useState(''); + + const status = ServerContext.useStoreState((state) => state.status.value); + const { clearFlashes } = useFlash(); + const { connected, instance } = ServerContext.useStoreState((state) => state.socket); + + useEffect(() => { + if (!connected || !instance || status === 'running') return; + + const listener = (line: string) => { + const urlMatch = line.match( + /https:\/\/oauth\.accounts\.hytale\.com\/oauth2\/device\/verify\?user_code=([a-zA-Z0-9\s]+)/i, + ); + if (urlMatch) { + const code = urlMatch[1]?.trim() || ''; + setUserCode(code); + setVerificationUri(urlMatch[0] || ''); + setVisible(true); + return; + } + }; + + instance.addListener(SocketEvent.CONSOLE_OUTPUT, listener); + return () => { + instance.removeListener(SocketEvent.CONSOLE_OUTPUT, listener); + }; + }, [connected, instance, status]); + + useEffect(() => { + clearFlashes('feature:hytaleOauth'); + }, []); + + const handleAuthenticate = () => { + if (verificationUri) { + window.open(verificationUri, '_blank', 'noopener,noreferrer'); + setVisible(false); + } + }; + + return ( + { + setVisible(false); + setUserCode(''); + setVerificationUri(''); + }} + closeOnBackground={false} + showSpinnerOverlay={false} + title='Hytale Authentication' + > + +

+
+

+ Server requires authentication to start. Click below to verify this device. +

+
+ + +
+
+
+
+ +
+ OR ENTER CODE MANUALLY +
+
+ +
+
DEVICE CODE
+ {userCode ? ( +
navigator.clipboard.writeText(userCode)} + > + {userCode} +
+ ) : ( +
•••• ••••
+ )} +
+ +

Only required once per server

+
+ + ); +}; + +export default HytaleOauthRequireFeature; diff --git a/resources/scripts/components/server/features/index.ts b/resources/scripts/components/server/features/index.ts index af1303fee..d9bdf0774 100644 --- a/resources/scripts/components/server/features/index.ts +++ b/resources/scripts/components/server/features/index.ts @@ -10,10 +10,9 @@ const features: Record = { eula: lazy(() => import('@feature/eula/EulaModalFeature')), java_version: lazy(() => import('@feature/JavaVersionModalFeature')), gsl_token: lazy(() => import('@feature/GSLTokenModalFeature')), - // Why are you broken? - // Not anymore, there's a fix! pid_limit: lazy(() => import('@feature/PIDLimitModalFeature')), steam_disk_space: lazy(() => import('@feature/SteamDiskSpaceFeature')), + hytale_oauth: lazy(() => import('@feature/HytaleOauthRequireFeature')), }; export default features; From 9d084029e5cc16b1961176ebcc8e01e3b77a3833 Mon Sep 17 00:00:00 2001 From: Skylar <118846397+NobleSkye@users.noreply.github.com> Date: Wed, 14 Jan 2026 03:03:53 -0800 Subject: [PATCH 16/17] (it does matter just tested- --- database/Seeders/eggs/hytale/egg-hytale.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/database/Seeders/eggs/hytale/egg-hytale.json b/database/Seeders/eggs/hytale/egg-hytale.json index 928608504..647826ea9 100644 --- a/database/Seeders/eggs/hytale/egg-hytale.json +++ b/database/Seeders/eggs/hytale/egg-hytale.json @@ -35,7 +35,7 @@ "name": "Accept Early Plugins", "description": "Hytale warns that loading early plugins is unsupported and may cause stability issues.", "env_variable": "HYTALE_ACCEPT_EARLY_PLUGINS", - "default_value": "false", + "default_value": "0", "user_viewable": true, "user_editable": true, "rules": "required|boolean", @@ -65,7 +65,7 @@ "name": "Disable Sentry", "description": "Hytale uses Sentry to track crashes. Disable Sentry during active plugin development.", "env_variable": "DISABLE_SENTRY", - "default_value": "false", + "default_value": "0", "user_viewable": true, "user_editable": true, "rules": "required|boolean", @@ -75,7 +75,7 @@ "name": "Use Ahead-of-Time Cache", "description": "Hytale provides a pre-trained AOT Java cache which can significantly improve boot times.", "env_variable": "USE_AOT_CACHE", - "default_value": "false", + "default_value": "0", "user_viewable": true, "user_editable": true, "rules": "required|boolean", @@ -85,7 +85,7 @@ "name": "Allow operators", "description": "Allow operators", "env_variable": "HYTALE_ALLOW_OP", - "default_value": "false", + "default_value": "0", "user_viewable": true, "user_editable": true, "rules": "required|boolean", From 78054ef4b44ea075b4cbffc00e543f07f23235a4 Mon Sep 17 00:00:00 2001 From: Skylar <118846397+NobleSkye@users.noreply.github.com> Date: Wed, 14 Jan 2026 03:06:01 -0800 Subject: [PATCH 17/17] removed hytale domain for just egg with ip --- .../Features/HytaleSubdomainFeature.php | 60 ------------------- database/Seeders/eggs/hytale/egg-hytale.json | 5 +- 2 files changed, 2 insertions(+), 63 deletions(-) delete mode 100644 app/Services/Subdomain/Features/HytaleSubdomainFeature.php diff --git a/app/Services/Subdomain/Features/HytaleSubdomainFeature.php b/app/Services/Subdomain/Features/HytaleSubdomainFeature.php deleted file mode 100644 index 66f97ca4f..000000000 --- a/app/Services/Subdomain/Features/HytaleSubdomainFeature.php +++ /dev/null @@ -1,60 +0,0 @@ -allocation->ip; - $port = $server->allocation->port; - $subdomain_split = explode(".", $subdomain); - $fullDomain = $subdomain_split[0] . '.' . $domain; - - $records = []; - - // A record pointing to the server IP - $records[] = [ - 'name' => $subdomain, - 'type' => 'A', - 'content' => $ip, - 'ttl' => 300, - ]; - - // SRV record for Hytale (only if not using default port) - if ($port != 25565) { - $records[] = [ - 'name' => '_hytale._tcp.' . $subdomain, - 'type' => 'SRV', - 'content' => [ - 'service' => '_hytale', - 'proto' => '_tcp', - 'name' => $subdomain, - 'priority' => 0, - 'weight' => 5, - 'port' => $port, - 'target' => $fullDomain, - 'content' => "SRV 0 5 {$port} {$fullDomain}", - ], - 'ttl' => 300, - ]; - } - - return $records; - } -} - diff --git a/database/Seeders/eggs/hytale/egg-hytale.json b/database/Seeders/eggs/hytale/egg-hytale.json index 647826ea9..ece52541a 100644 --- a/database/Seeders/eggs/hytale/egg-hytale.json +++ b/database/Seeders/eggs/hytale/egg-hytale.json @@ -9,8 +9,7 @@ "author": "hello@pterodactyl.io", "description": "Set out on an adventure built for both creation and play. Hytale blends the freedom of a sandbox with the momentum of an RPG: explore a procedurally generated world full of dungeons, secrets, and a variety of creatures, then shape it block by block.", "features": [ - "java_version", - "subdomain_hytale" + "java_version" ], "docker_images": { "ghcr.io/pterodactyl/games:hytale": "ghcr.io/pterodactyl/games:hytale" @@ -92,4 +91,4 @@ "field_type": "text" } ] -} \ No newline at end of file +}