Skip to content

Development and Architecture

DevRock edited this page Sep 1, 2026 · 2 revisions

Development and Architecture

Toolchain

  • Node.js 22+ and Yarn Classic 1.x
  • PHP 8.2 or 8.3 and Composer 2
  • A disposable MySQL or MariaDB database for integration tests
yarn install --frozen-lockfile
composer install

Frontend workflow

yarn build
yarn watch
yarn serve

The development server expects the local pterodactyl.test hostname and HTTPS certificate. Production verification is:

yarn tsc
yarn lint
yarn test --runInBand
yarn build:production

Backend verification

Copy .env.ci to .env only in an isolated development checkout configured for a disposable database. Never run the integration suite from a production panel directory or against production data.

cp .env.ci .env
composer validate --strict --no-check-publish
vendor/bin/php-cs-fixer fix --dry-run --diff
vendor/bin/phpunit --bootstrap vendor/autoload.php tests/Unit
vendor/bin/phpunit tests/Integration

Review the database values in .env.ci before running the tests.

Code map

Area Location
React client resources/scripts/
Shared client styles resources/scripts/assets/css/GlobalStylesheet.ts
React Bits adaptations resources/scripts/components/elements/reactbits/
Admin theme CSS public/themes/pterodactyl/css/admin-rockvps.css
Admin theme behavior public/themes/pterodactyl/js/admin/
Branding defaults config/branding.php
Laravel application app/, routes/, database/
Installer and release scripts install.sh, release.sh, scripts/
CI and release automation .github/workflows/

Contribution flow

Open an issue before large changes, use a focused branch, keep generated assets out of source commits, add regression coverage, and include desktop/mobile evidence for visual changes. Read the repository's contribution guide, governance model, and Code of Conduct.

Clone this wiki locally