Files
pterodactyl_addon/docs/INSTALL.md
2026-06-11 20:33:44 -05:00

3.3 KiB

Installation Guide

Ball Studioshttps://git.balls.studio/BallStudios/pterodactyl_addon

Run as root on your Pterodactyl server:

bash <(curl -fsSL https://git.balls.studio/BallStudios/pterodactyl_addon/raw/branch/main/install.sh)

Custom panel path:

bash <(curl -fsSL https://git.balls.studio/BallStudios/pterodactyl_addon/raw/branch/main/install.sh) /path/to/pterodactyl

The script will:

  1. Run preflight checks (PHP version, panel path, git)
  2. Back up all files it will modify to .addon_backup_<timestamp>/
  3. Clone the addon repository
  4. Copy backend + frontend files
  5. Apply 4 minimal patches to panel core files
  6. Run database migrations
  7. Seed default roles (Owner, Admin, Moderator, Viewer)
  8. Run yarn build:production
  9. Clear Laravel caches

Manual Install

Prerequisites

Requirement Version
Pterodactyl Panel v1.12.x
PHP 8.1+
Node.js 22.x
Yarn 1.x
MySQL/MariaDB 8.0+ / 10.4+

Steps

# 1. Clone the addon (outside panel dir)
git clone https://git.balls.studio/BallStudios/pterodactyl_addon /tmp/ptero-addon
cd /tmp/ptero-addon

# 2. Copy files
cp -r app/Addons /var/www/pterodactyl/app/
cp config/advanced-admin.php /var/www/pterodactyl/config/
cp -r config/addon-commands /var/www/pterodactyl/config/
cp -r database/migrations/addon /var/www/pterodactyl/database/migrations/
cp routes/addon-client.php /var/www/pterodactyl/routes/
cp routes/addon-application.php /var/www/pterodactyl/routes/
cp -r resources/scripts/addons /var/www/pterodactyl/resources/scripts/
cp -r database/seeders/. /var/www/pterodactyl/database/seeders/

# 3. Register the service provider
# In /var/www/pterodactyl/app/Providers/AppServiceProvider.php
# Add inside the register() method:
#   $this->app->register(\Pterodactyl\Addons\AdvancedAdmin\AddonServiceProvider::class);

# 4. Migrate
cd /var/www/pterodactyl
php artisan migrate --path=database/migrations/addon --force

# 5. Seed default roles
php artisan db:seed --class="Pterodactyl\\Addons\\AdvancedAdmin\\Database\\Seeders\\DefaultRolesSeeder" --force

# 6. Build frontend
export NODE_OPTIONS=--openssl-legacy-provider
yarn install --frozen-lockfile && yarn build:production

# 7. Clear caches
php artisan optimize:clear && php artisan optimize

# 8. Fix permissions
chown -R www-data:www-data storage bootstrap/cache app/Addons resources/scripts/addons

Core Patches Applied

All patches are documented in patches/PATCHES.md. Each patch is ≤ 3 lines:

File Change
app/Providers/AppServiceProvider.php Register AddonServiceProvider
resources/scripts/routers/ServerRouter.tsx Add Network tab route
resources/scripts/components/server/files/FileEditContainer.tsx Import FileHistoryButton
resources/scripts/components/server/console/ServerConsole.tsx Import CommandInput wrapper

Post-Install

  1. Review config/advanced-admin.php — adjust retention, rate limits, and exclusions
  2. Add .env overrides if needed (see CONFIG.md)
  3. Restart queue worker: php artisan queue:restart
  4. Navigate to your panel — the Network, History, and Autocomplete features are now active

Troubleshooting

See TROUBLESHOOTING.md.