From 0bd1cc38d90a2796ca270484b41a7b528871d858 Mon Sep 17 00:00:00 2001 From: Haro Date: Sat, 24 Oct 2026 07:47:26 +0000 Subject: [PATCH] [UPDATE][pterodactyl][0.0.16] Updates Panel to 1.15.2 with the official PHP 8.3.36 image. Keeps existing accounts, nodes, servers, and Wings settings. Wings remains --- pterodactyl/Chart.yaml | 4 +- pterodactyl/OlaresManifest.yaml | 10 +++-- pterodactyl/TEST-REPORT.md | 49 ++++++++++++++++++++++ pterodactyl/i18n/de-DE/OlaresManifest.yaml | 4 +- pterodactyl/i18n/en-US/OlaresManifest.yaml | 4 +- pterodactyl/i18n/es-ES/OlaresManifest.yaml | 4 +- pterodactyl/i18n/fr-FR/OlaresManifest.yaml | 4 +- pterodactyl/i18n/it-IT/OlaresManifest.yaml | 4 +- pterodactyl/i18n/ja-JP/OlaresManifest.yaml | 4 +- pterodactyl/i18n/zh-CN/OlaresManifest.yaml | 4 +- pterodactyl/templates/configmap.yaml | 42 +++++++++++++++++++ pterodactyl/templates/deployment.yaml | 26 ++++++++++-- pterodactyl/templates/wings.yaml | 2 +- pterodactyl/values.yaml | 4 +- 14 files changed, 146 insertions(+), 19 deletions(-) create mode 100644 pterodactyl/TEST-REPORT.md diff --git a/pterodactyl/Chart.yaml b/pterodactyl/Chart.yaml index a60f886e6..a75887131 100644 --- a/pterodactyl/Chart.yaml +++ b/pterodactyl/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: pterodactyl description: Pterodactyl Panel for Olares type: application -version: 0.0.14 -appVersion: '1.15.1' +version: 0.0.16 +appVersion: '1.15.2' diff --git a/pterodactyl/OlaresManifest.yaml b/pterodactyl/OlaresManifest.yaml index d32f109e7..4de68ffd7 100644 --- a/pterodactyl/OlaresManifest.yaml +++ b/pterodactyl/OlaresManifest.yaml @@ -6,7 +6,7 @@ metadata: title: Pterodactyl Panel description: Game server management with an experimental local Wings node. icon: https://cdn.olares.com/images/2026/10/a6d9f087598ca3a354f566343f1b2588.png - version: 0.0.14 + version: 0.0.16 categories: - Developer Tools - Fun @@ -40,12 +40,14 @@ ports: exposePort: 43000 protocol: tcp spec: - versionName: '1.15.1' + upgradeDescription: | + Updates Panel to 1.15.2 with the official PHP 8.3.36 image. Keeps existing accounts, nodes, servers, and Wings settings. Wings remains at 1.13.3. + versionName: '1.15.2' developer: Pterodactyl Software website: https://pterodactyl.io/ sourceCode: https://github.com/pterodactyl/panel doc: https://docs.pterodactyl.io/v1 - submitter: harveyff + submitter: Olares locale: - en-US - zh-CN @@ -67,7 +69,7 @@ spec: Panel manages game servers created through Wings. It does not take over Minecraft or other applications installed separately from Olares Market. - This Olares package includes Panel 1.15.1 and an experimental local Wings 1.13.3 node backed by Docker-in-Docker. Set the administrator username and password during installation. Existing administrators are preserved on upgrades. + This Olares package includes Panel 1.15.2 and an experimental local Wings 1.13.3 node backed by Docker-in-Docker. Set the administrator username and password during installation. Existing administrators are preserved on upgrades. The local Docker service runs in a privileged container. Panel and Wings run as UID/GID 1000. Game installation scripts must create files with matching ownership; arbitrary game templates may need adaptation. diff --git a/pterodactyl/TEST-REPORT.md b/pterodactyl/TEST-REPORT.md new file mode 100644 index 000000000..af29f48a7 --- /dev/null +++ b/pterodactyl/TEST-REPORT.md @@ -0,0 +1,49 @@ +# Pterodactyl 1.15.2 validation + +Validated on October 24, 2026, on Olares 1.12.7-20260908, Linux AMD64. Production candidate: Chart 0.0.16, Panel 1.15.2, Wings 1.13.3. + +## Baselines + +| Case | Actual source | Panel / PHP before | Result | +| --- | --- | --- | --- | +| A | Formal Market Chart 0.0.14, downloaded from market.olares | 1.15.1 / 8.3.33 | In-place upgrade and complete stop/resume passed | +| B | Supplemental upstream 1.15.0 image using the current packaging harness | 1.15.0 / 8.3.33 | In-place upgrade and complete stop/resume passed | +| C | Empty-data installation of the target | 1.15.2 / 8.3.36 | Fresh initialization, functionality, and complete stop/resume passed | + +The market history contains only one distinct Panel application version. B was explicitly approved as a supplemental upstream baseline; it is not a historical market package. + +Fixture identity, database/Redis namespace, external ports, and chart-generated random test credentials were isolated. Application source images were not patched. Installed fixture revisions used the next ordinary chart patch when an already-uploaded version could not be replaced. A and C received fixture-only Chart 0.0.17 for the final existing-Wings-configuration guard; the production candidate remains 0.0.16. Fresh initialization was tested before this guard was added; its new branch applies only when an existing configuration file is present. B exercised the final guard during its first upgrade from 1.15.0. + +## Verified behavior + +- Actual PHP-FPM requests report PHP 8.3.36, UID 1000, and disabled session upload progress. Both older baselines reported PHP 8.3.33 with upload progress enabled. +- Normal password login through the external private entrance, authenticated account lookup, and the admin dashboard passed before upgrade, after upgrade, and after full stop/resume. No database/browser session extraction or fabricated login session was used. +- Original server UUID, owner, allocation, custom location/nest/egg, server settings, inactive schedule/task, backup records, and application encryption key remained intact. +- Eleven business tables were compared by content hashes, excluding normal updated_at timestamps. Server files and backup archives were compared byte-for-byte. +- Server installation, real file writes/reads, normal client power start/stop/restart, authenticated console WSS, published TCP port, and SFTP login/upload/readback passed. Restart assertions used the actual Docker process start time because the Panel statistics endpoint caches responses for 20 seconds. +- Native server backup creation and restoration passed on all three cases. Existing backups remained available after upgrade and after full stop/resume. +- Existing schedules ran real queue jobs that started the original server and completed. They remained inactive afterward, and the server was stopped after each test. +- Complete stop was confirmed by the absence of active application pods. Resumed workloads became ready, original Docker image IDs remained cached, and persisted business data passed again. +- Automatic pre-migration SQL and Panel-file snapshots were validated for both upgrade paths. They include the users/server tables, custom fixture, encryption key, and Wings configuration. Snapshot directory/file modes were 700/600. The snapshots cover Panel state; the unchanged game volumes and native server backups were independently hashed. + +## Packaging and configuration checks + +- Panel uses the unmodified official v1.15.2 image, mirrored as docker.io/beclab/pterodactyl-panel:v1.15.2. Wings remains the unmodified official v1.13.3 image, mirrored as docker.io/beclab/pterodactyl-wings:v1.13.3. +- AMD64 and ARM64 registry configurations were verified for Panel, Wings, and all auxiliary images. Target Panel reports PHP 8.3.36 on both architectures. Source/mirror config digests match, including ordered uncompressed rootfs digests. Some older/Wings compressed layer digests change during mirror conversion. +- Old image values cannot retain vulnerable Panel images: the application and copy-init images are fixed in the template. Old-values Helm rendering and final chart lint passed. +- Existing matching-node Wings YAML is retained rather than regenerated. Node UUID and credential fields must match before it is reused; mismatched configuration is retained and startup stops. Raw configuration bytes remained identical during both tested Panel upgrades. +- Wings itself expands an implicit Docker network driver into bridge on full startup. Canonical configuration hashes were compared after full stop/resume, normalizing only that equivalent default. Historical canonical hashes came from files whose raw hashes exactly matched the recorded pre-stop checkpoints. The original raw hashes remain in the private evidence. + +## Scope and observed limitations + +The disposable server was a minimal HTTP process used to exercise Wings lifecycle, console, files, networking, SFTP, and backups. This change does not claim new Minecraft/Terraria/TShock installation or gameplay testing. The test-only runtime image was local to each disposable Docker service and was not published or included in the chart. + +Wings needed initial retries while its Docker service initialized, and logged an optional CPU-burst warning. The final workloads and all listed operations passed. Wings remains the same experimental component/version already packaged by the market. + +ARM64 image availability and contents were verified; native ARM64 runtime testing was not performed. Teammate test-market smoke testing remains pending. All three disposable applications, their private test data, and their Upload versions were removed; shared middleware was retained. + +## Upstream references + +- [Panel v1.15.2 security release](https://github.com/pterodactyl/panel/releases/tag/v1.15.2) +- [Official Panel source](https://github.com/pterodactyl/panel) +- [PHP releases](https://www.php.net/) diff --git a/pterodactyl/i18n/de-DE/OlaresManifest.yaml b/pterodactyl/i18n/de-DE/OlaresManifest.yaml index 5d364d2e4..7f0faadad 100644 --- a/pterodactyl/i18n/de-DE/OlaresManifest.yaml +++ b/pterodactyl/i18n/de-DE/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: Gameserver-Verwaltung mit experimentellem lokalem Wings-Knoten spec: + upgradeDescription: | + Aktualisiert Panel auf 1.15.2 mit dem offiziellen PHP-8.3.36-Image. Bestehende Konten, Knoten, Server und Wings-Einstellungen bleiben erhalten. Wings bleibt bei Version 1.13.3. fullDescription: | Pterodactyl ist ein quelloffenes Verwaltungspanel für Gameserver. Verwalten Sie Konsolen, Dateien, Zeitpläne, Backups und Benutzerrechte im Browser. Panel verwaltet Gameserver, die über Wings erstellt wurden. Separat aus Olares Market installierte Anwendungen, einschließlich Minecraft, werden nicht übernommen. - Dieses Olares-Paket enthält Panel 1.15.1 und einen experimentellen lokalen Wings-Knoten 1.13.3 mit Docker-in-Docker. Legen Sie den Administratornamen und das Passwort bei der Installation fest. Bestehende Administratorkonten bleiben bei Upgrades erhalten. + Dieses Olares-Paket enthält Panel 1.15.2 und einen experimentellen lokalen Wings-Knoten 1.13.3 mit Docker-in-Docker. Legen Sie den Administratornamen und das Passwort bei der Installation fest. Bestehende Administratorkonten bleiben bei Upgrades erhalten. Der lokale Docker-Dienst läuft in einem privilegierten Container. Panel und Wings verwenden UID/GID 1000. Installationsskripte für Spiele müssen Dateien mit derselben Eigentümerzuordnung erstellen; andere Spielvorlagen können Anpassungen erfordern. diff --git a/pterodactyl/i18n/en-US/OlaresManifest.yaml b/pterodactyl/i18n/en-US/OlaresManifest.yaml index e07df9050..53119c87c 100644 --- a/pterodactyl/i18n/en-US/OlaresManifest.yaml +++ b/pterodactyl/i18n/en-US/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: Game server management with an experimental local Wings node spec: + upgradeDescription: | + Updates Panel to 1.15.2 with the official PHP 8.3.36 image. Keeps existing accounts, nodes, servers, and Wings settings. Wings remains at 1.13.3. fullDescription: | Pterodactyl is an open-source game server management panel. Manage server consoles, files, schedules, backups and user permissions from your browser. Panel manages game servers created through Wings. It does not take over Minecraft or other applications installed separately from Olares Market. - This Olares package includes Panel 1.15.1 and an experimental local Wings 1.13.3 node backed by Docker-in-Docker. Set the administrator username and password during installation. Existing administrators are preserved on upgrades. + This Olares package includes Panel 1.15.2 and an experimental local Wings 1.13.3 node backed by Docker-in-Docker. Set the administrator username and password during installation. Existing administrators are preserved on upgrades. The local Docker service runs in a privileged container. Panel and Wings run as UID/GID 1000. Game installation scripts must create files with matching ownership; arbitrary game templates may need adaptation. diff --git a/pterodactyl/i18n/es-ES/OlaresManifest.yaml b/pterodactyl/i18n/es-ES/OlaresManifest.yaml index 23e49c783..34a64bdf9 100644 --- a/pterodactyl/i18n/es-ES/OlaresManifest.yaml +++ b/pterodactyl/i18n/es-ES/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: Gestión de servidores de juegos con un nodo Wings local experimental spec: + upgradeDescription: | + Actualiza Panel a 1.15.2 con la imagen oficial de PHP 8.3.36. Conserva las cuentas, los nodos, los servidores y los ajustes de Wings existentes. Wings se mantiene en la versión 1.13.3. fullDescription: | Pterodactyl es un panel de código abierto para gestionar servidores de juegos. Administra consolas, archivos, tareas programadas, copias de seguridad y permisos de usuario desde el navegador. Panel gestiona servidores de juegos creados mediante Wings. No toma el control de Minecraft ni de otras aplicaciones instaladas por separado desde Olares Market. - Este paquete de Olares incluye Panel 1.15.1 y un nodo Wings 1.13.3 local experimental con Docker-in-Docker. Define el nombre de usuario y la contraseña del administrador durante la instalación. Las actualizaciones conservan las cuentas de administrador existentes. + Este paquete de Olares incluye Panel 1.15.2 y un nodo Wings 1.13.3 local experimental con Docker-in-Docker. Define el nombre de usuario y la contraseña del administrador durante la instalación. Las actualizaciones conservan las cuentas de administrador existentes. El servicio Docker local se ejecuta en un contenedor privilegiado. Panel y Wings usan UID/GID 1000. Los scripts de instalación de juegos deben crear archivos con el mismo propietario; otras plantillas pueden necesitar adaptaciones. diff --git a/pterodactyl/i18n/fr-FR/OlaresManifest.yaml b/pterodactyl/i18n/fr-FR/OlaresManifest.yaml index 75ffeccd6..b0870395f 100644 --- a/pterodactyl/i18n/fr-FR/OlaresManifest.yaml +++ b/pterodactyl/i18n/fr-FR/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: Gestion de serveurs de jeux avec un nœud Wings local expérimental spec: + upgradeDescription: | + Met à jour Panel vers la version 1.15.2 avec l’image officielle de PHP 8.3.36. Conserve les comptes, les nœuds, les serveurs et les réglages de Wings existants. Wings reste à la version 1.13.3. fullDescription: | Pterodactyl est un panneau open source de gestion de serveurs de jeux. Gérez les consoles, fichiers, tâches planifiées, sauvegardes et permissions depuis votre navigateur. Panel gère les serveurs de jeux créés via Wings. Il ne prend pas en charge les applications installées séparément depuis Olares Market, y compris Minecraft. - Ce paquet Olares comprend Panel 1.15.1 et un nœud Wings 1.13.3 local expérimental utilisant Docker-in-Docker. Définissez le nom d’utilisateur et le mot de passe administrateur pendant l’installation. Les mises à niveau conservent les comptes administrateur existants. + Ce paquet Olares comprend Panel 1.15.2 et un nœud Wings 1.13.3 local expérimental utilisant Docker-in-Docker. Définissez le nom d’utilisateur et le mot de passe administrateur pendant l’installation. Les mises à niveau conservent les comptes administrateur existants. Le service Docker local fonctionne dans un conteneur privilégié. Panel et Wings utilisent UID/GID 1000. Les scripts d’installation des jeux doivent créer des fichiers avec le même propriétaire ; les autres modèles peuvent nécessiter une adaptation. diff --git a/pterodactyl/i18n/it-IT/OlaresManifest.yaml b/pterodactyl/i18n/it-IT/OlaresManifest.yaml index 5239fd36e..b2adfb48b 100644 --- a/pterodactyl/i18n/it-IT/OlaresManifest.yaml +++ b/pterodactyl/i18n/it-IT/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: Gestione di server di gioco con un nodo Wings locale sperimentale spec: + upgradeDescription: | + Aggiorna Panel alla versione 1.15.2 con l’immagine ufficiale di PHP 8.3.36. Mantiene gli account, i nodi, i server e le impostazioni di Wings esistenti. Wings resta alla versione 1.13.3. fullDescription: | Pterodactyl è un pannello open source per gestire server di gioco. Gestisci console, file, attività pianificate, backup e permessi utente dal browser. Panel gestisce i server di gioco creati tramite Wings. Non prende il controllo di Minecraft o di altre applicazioni installate separatamente da Olares Market. - Questo pacchetto Olares include Panel 1.15.1 e un nodo Wings 1.13.3 locale sperimentale basato su Docker-in-Docker. Imposta nome utente e password dell’amministratore durante l’installazione. Gli aggiornamenti conservano gli account amministratore esistenti. + Questo pacchetto Olares include Panel 1.15.2 e un nodo Wings 1.13.3 locale sperimentale basato su Docker-in-Docker. Imposta nome utente e password dell’amministratore durante l’installazione. Gli aggiornamenti conservano gli account amministratore esistenti. Il servizio Docker locale viene eseguito in un container privilegiato. Panel e Wings usano UID/GID 1000. Gli script di installazione dei giochi devono creare file con lo stesso proprietario; altri modelli possono richiedere adattamenti. diff --git a/pterodactyl/i18n/ja-JP/OlaresManifest.yaml b/pterodactyl/i18n/ja-JP/OlaresManifest.yaml index 577c48d6c..e0ffdcecc 100644 --- a/pterodactyl/i18n/ja-JP/OlaresManifest.yaml +++ b/pterodactyl/i18n/ja-JP/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: 実験的なローカルWingsノードを備えたゲームサーバー管理パネル spec: + upgradeDescription: | + 公式のPHP 8.3.36イメージを使用してPanelを1.15.2に更新します。既存のアカウント、ノード、サーバー、Wingsの設定を保持します。Wingsのバージョンは1.13.3のままです。 fullDescription: | Pterodactylはオープンソースのゲームサーバー管理パネルです。ブラウザーからコンソール、ファイル、スケジュール、バックアップ、ユーザー権限を管理できます。 PanelはWingsで作成したゲームサーバーを管理します。Olares Marketから個別にインストールしたMinecraftや他のアプリを引き継ぐことはできません。 - Olares向けパッケージには、Panel 1.15.1とDocker-in-Dockerで動作する実験的なローカルWings 1.13.3ノードが含まれます。インストール時に管理者のユーザー名とパスワードを設定します。アップグレード時には既存の管理者アカウントが保持されます。 + Olares向けパッケージには、Panel 1.15.2とDocker-in-Dockerで動作する実験的なローカルWings 1.13.3ノードが含まれます。インストール時に管理者のユーザー名とパスワードを設定します。アップグレード時には既存の管理者アカウントが保持されます。 ローカルDockerサービスは特権コンテナーで動作します。PanelとWingsはUID/GID 1000で実行されます。ゲームのインストールスクリプトが作成するファイルも同じ所有者である必要があります。他のゲームテンプレートには調整が必要な場合があります。 diff --git a/pterodactyl/i18n/zh-CN/OlaresManifest.yaml b/pterodactyl/i18n/zh-CN/OlaresManifest.yaml index 5e7982a1d..4fa7fda6f 100644 --- a/pterodactyl/i18n/zh-CN/OlaresManifest.yaml +++ b/pterodactyl/i18n/zh-CN/OlaresManifest.yaml @@ -2,12 +2,14 @@ metadata: title: Pterodactyl Panel description: 游戏服务器管理面板,包含实验性的本地 Wings 节点 spec: + upgradeDescription: | + 升级 Panel 至 1.15.2,使用官方 PHP 8.3.36 镜像。保留现有账户、节点、服务器和 Wings 设置。Wings 版本保持 1.13.3。 fullDescription: | Pterodactyl 是开源的游戏服务器管理面板。通过浏览器管理服务器控制台、文件、计划任务、备份和用户权限。 Panel 管理通过 Wings 创建的游戏服务器,不会接管从 Olares Market 独立安装的 Minecraft 或其他应用。 - Olares 版本包含 Panel 1.15.1 和实验性的本地 Wings 1.13.3 节点,后者通过 Docker-in-Docker 运行。安装时设置管理员用户名和密码。升级时保留现有管理员账户。 + Olares 版本包含 Panel 1.15.2 和实验性的本地 Wings 1.13.3 节点,后者通过 Docker-in-Docker 运行。安装时设置管理员用户名和密码。升级时保留现有管理员账户。 本地 Docker 服务运行在特权容器中。Panel 和 Wings 使用 UID/GID 1000 运行。游戏安装脚本创建的文件必须使用相同的所有者;其他游戏模板可能需要适配。 diff --git a/pterodactyl/templates/configmap.yaml b/pterodactyl/templates/configmap.yaml index 5c12e12b7..70c36a340 100644 --- a/pterodactyl/templates/configmap.yaml +++ b/pterodactyl/templates/configmap.yaml @@ -69,6 +69,7 @@ data: catch_workers_output = yes php_admin_value[upload_max_filesize] = 100M php_admin_value[post_max_size] = 100M + php_admin_flag[session.upload_progress.enabled] = off start.sh: | #!/bin/ash set -eu @@ -139,6 +140,18 @@ data: ]); } $config=$node->getConfiguration(); + // Keep existing node settings, including user customization and Wings-expanded defaults. + if (is_file('/data/wings/config.yml')) { + $saved = Symfony\Component\Yaml\Yaml::parseFile('/data/wings/config.yml'); + if (!is_array($saved)) throw new RuntimeException('Existing Wings configuration is invalid; retained unchanged.'); + foreach (['uuid', 'token_id', 'token'] as $field) { + if (!isset($saved[$field], $config[$field]) || !hash_equals((string)$config[$field], (string)$saved[$field])) { + throw new RuntimeException('Existing Wings configuration belongs to a different node; retained unchanged.'); + } + } + echo "Existing local Wings configuration preserved\n"; + return; + } $config['api']['port']=8080; $config['api']['ssl']=['enabled'=>false]; $config['system']=array_replace_recursive($config['system'],[ @@ -157,3 +170,32 @@ data: file_put_contents('/data/wings/config.yml.new',Symfony\Component\Yaml\Yaml::dump($config,8,2)); rename('/data/wings/config.yml.new','/data/wings/config.yml'); echo "Local Wings node configured\n"; + backup.sh: | + #!/bin/bash + set -euo pipefail + umask 077 + state=/data/.olares-upgrade/1.15.2 + mkdir -p "$state" + if [ ! -s "$state/files.tar.gz" ]; then + items=(storage) + [ ! -f /data/app-key ] || items+=(app-key) + [ ! -f /data/wings/config.yml ] || items+=(wings/config.yml) + tar -czf "$state/files.tar.gz.tmp" -C /data "${items[@]}" + tar -tzf "$state/files.tar.gz.tmp" >/dev/null + mv "$state/files.tar.gz.tmp" "$state/files.tar.gz" + fi + tar -tzf "$state/files.tar.gz" >/dev/null + export MYSQL_PWD="$DB_PASSWORD" + for attempt in $(seq 1 90); do + mariadb --skip-ssl --host="$DB_HOST" --port="${DB_PORT:-3306}" --user="$DB_USERNAME" "$DB_DATABASE" -N -e 'SELECT 1' >/dev/null 2>&1 && break + [ "$attempt" -lt 90 ] || { echo 'Application database is unavailable' >&2; exit 1; } + sleep 2 + done + if [ ! -s "$state/database.sql.gz" ]; then + mariadb-dump --skip-ssl --host="$DB_HOST" --port="${DB_PORT:-3306}" --user="$DB_USERNAME" --single-transaction --quick --skip-lock-tables --hex-blob --routines --events "$DB_DATABASE" | gzip > "$state/database.sql.gz.tmp" + gzip -t "$state/database.sql.gz.tmp" + gzip -cd "$state/database.sql.gz.tmp" | tail -n 8 | grep -q 'Dump completed' + mv "$state/database.sql.gz.tmp" "$state/database.sql.gz" + fi + gzip -t "$state/database.sql.gz" + echo 'Application file and database snapshots verified' diff --git a/pterodactyl/templates/deployment.yaml b/pterodactyl/templates/deployment.yaml index 07b1a2b94..8724c011a 100644 --- a/pterodactyl/templates/deployment.yaml +++ b/pterodactyl/templates/deployment.yaml @@ -26,21 +26,41 @@ spec: image: beclab/aboveos-busybox:1.37.0 securityContext: runAsUser: 0 - command: [sh, -c, 'mkdir -p /data/storage /data/wings; chown 1000:1000 /data /data/storage /data/wings'] + command: [sh, -c, 'set -eu; mkdir -p /data/storage /data/wings /data/.olares-upgrade; chown 1000:1000 /data /data/storage /data/wings /data/.olares-upgrade; chmod 700 /data/.olares-upgrade'] volumeMounts: - name: data mountPath: /data - name: copy-app - image: {{ .Values.image }} + image: docker.io/beclab/pterodactyl-panel:v1.15.2 command: [sh, -c, 'cp -R /app/. /runtime/; cp -Rn /app/storage/. /data/storage/'] volumeMounts: - name: app mountPath: /runtime - name: data mountPath: /data + - name: pre-upgrade-snapshot + image: docker.io/beclab/mariadb:11.4.3-noble + command: [bash, /config/backup.sh] + envFrom: + - secretRef: + name: pterodactyl-auth + env: + - name: DB_HOST + value: {{ .Values.mariadb.host | quote }} + - name: DB_PORT + value: {{ .Values.mariadb.port | default 3306 | quote }} + - name: DB_DATABASE + value: {{ .Values.mariadb.databases.panel | quote }} + - name: DB_USERNAME + value: {{ .Values.mariadb.username | quote }} + volumeMounts: + - name: data + mountPath: /data + - name: config + mountPath: /config containers: - name: panel - image: {{ .Values.image }} + image: docker.io/beclab/pterodactyl-panel:v1.15.2 command: [/bin/ash, /config/start.sh] envFrom: - secretRef: diff --git a/pterodactyl/templates/wings.yaml b/pterodactyl/templates/wings.yaml index e1c33ddf1..e13e9a169 100644 --- a/pterodactyl/templates/wings.yaml +++ b/pterodactyl/templates/wings.yaml @@ -33,7 +33,7 @@ spec: - {name: wings-data, mountPath: /wings} containers: - name: wings - image: {{ .Values.wingsImage }} + image: docker.io/beclab/pterodactyl-wings:v1.13.3 args: [--config, /wings/config.yml] securityContext: runAsUser: 1000 diff --git a/pterodactyl/values.yaml b/pterodactyl/values.yaml index daeef55eb..b25a00047 100644 --- a/pterodactyl/values.yaml +++ b/pterodactyl/values.yaml @@ -1,5 +1,5 @@ -image: ghcr.io/pterodactyl/panel:v1.15.1 -wingsImage: ghcr.io/pterodactyl/wings:v1.13.3 +image: docker.io/beclab/pterodactyl-panel:v1.15.2 +wingsImage: docker.io/beclab/pterodactyl-wings:v1.13.3 dindImage: beclab/docker:29.3.0-dind workloads: pterodactyl: