Changes From 1.x
The changes in Pterodactyl 2.0 that affect existing 1.x installations.
Introduction
This page lists the 2.0 changes that affect 1.x installations, and how likely each one is to affect you. To upgrade, follow Upgrading From 1.x.
Does this affect you?
How you run the Panel
About your Panel
3 of 10 changes apply to you
On our test installation, the database migration took less than ten seconds. To see how long your own upgrade takes, time a run on a copy of your Panel first. See Testing the Upgrade.
High Impact Changes
PHP 8.3 and the Intl Extension
Likelihood Of Impact: High
The Panel now needs PHP 8.3 or newer and the intl PHP extension. 1.x also ran on PHP 8.2, and the 1.x installation guide does not install intl. On Ubuntu, install it with:
apt install php8.3-intlIf php -v shows a version older than 8.3, upgrade PHP first with Upgrading PHP. Requirements has the full list.
Upgrading With p:upgrade
Likelihood Of Impact: High
Do not use php artisan p:upgrade or the 1.x update steps to move to 2.0. Both download the latest release and unpack it over your 1.x files, which leaves your Panel offline. Once 2.0 is released, p:upgrade without --release will download 2.0.
Instead, follow Upgrading From 1.x, which installs 2.0 in a new directory.
Nest Endpoints Removed From the Application API
Likelihood Of Impact: High
The /api/application/nests endpoints are removed and now return 404. Use the egg and tag endpoints instead:
| 1.x | 2.0 |
|---|---|
GET /api/application/nests | GET /api/application/tags |
GET /api/application/nests/{nest} | GET /api/application/tags/{tag} |
GET /api/application/nests/{nest}/eggs | GET /api/application/eggs?filter[tag]={slug} |
GET /api/application/nests/{nest}/eggs/{egg} | GET /api/application/eggs/{egg} |
When the upgrade turns a nest with two or more eggs into a tag, the tag stores the nest's ID in its legacy_nest_id attribute, so integrations that stored nest IDs can find the matching tag. Not every nest becomes a tag; see Review Egg Tags. To get an egg's tags, add ?include=tags to an egg request. The tag endpoints need the same read permission as the egg endpoints.
This mostly affects billing modules. If you use the official WHMCS module, update it before you upgrade the Panel; the updated module works with 1.x and 2.0. For any other billing module, ask its developer whether it supports 2.0.
Existing API keys keep working, as do the other Application API requests billing modules make, such as creating, suspending, and deleting servers.
Medium Impact Changes
The /assets/ Web Server Block
Likelihood Of Impact: Medium
The 2.0 web server configuration adds a block for /assets/. It serves the Panel's public/assets directory, where themes and extensions publish their files, as plain files: it never passes them to PHP, and it refuses hidden files.
The Panel loads without the block, but add it to your configuration when you upgrade. Switch to 2.0 shows it for NGINX, Apache, and Caddy. The Docker image already includes it.
Nests Are Replaced by Tags
Likelihood Of Impact: Medium
Eggs are now grouped with tags instead of nests. An egg can have several tags, and nodes can have tags too. The upgrade turns your nests into tags; Review Egg Tags explains how.
Your eggs keep working, and 2.0 can import egg files exported from 1.x.
The nests table stays in your database, but 2.0 no longer updates it. Eggs and servers created on 2.0 do not belong to a nest.
Changes to 1.x Panel Files
Likelihood Of Impact: Medium
The upgrade installs 2.0 in a new directory and copies only your .env file. Anything you changed or added in the 1.x Panel directory stays behind, such as an edited theme, a modified page, or files from an addon installer.
You cannot copy these changes across: 2.0 has a rebuilt frontend and a new admin area, so changes to 1.x source files do not apply. Rebuild them for 2.0 instead:
- To change colors, corners, or console colors, create a theme. Themes need no frontend build.
- To add pages or features, use an extension.
Both keep working when you update the Panel.
Database Versions
Likelihood Of Impact: Medium
The Panel is tested with MariaDB 10.11 and 11, and MySQL 8 and 9. The 1.x minimums, MySQL 5.7 and MariaDB 10.2, are not tested with 2.0. If you run an older database server, upgrade it first.
Low Impact Changes
Admin API
Likelihood Of Impact: Low
2.0 adds an Admin API at /api/admin, which the new admin area uses to manage the Panel, including eggs, tags, settings, and extensions. The Client and Application APIs keep their paths. See the API overview.
Building the Frontend
Likelihood Of Impact: Low
This affects you only if you build the Panel from source. The release archive and the Docker image include the built frontend. The frontend builds with npm and Vite instead of Yarn and Webpack, needs Node.js 22.12 or newer, and does not need the --openssl-legacy-provider option.
Docker Image
Likelihood Of Impact: Low
The Panel Docker image now includes the queue worker and the scheduler, so you need no separate worker service or cron entry. It does not run database migrations when it starts; run them yourself in each deployment. See Docker Deployment.
Last updated on