A production-ready, single-file automation script for installing, updating, and managing Aquadactyl (Pterodactyl fork with bundled Blueprint beta-2026-08 integration).
Run the full automated installation with a single command:
curl -fsSL https://raw.githubusercontent.com/Aquadactyl/Installer/main/deploy.sh | sudo bash -s -- installNote: If
deploy.shis already downloaded locally on your server:sudo bash deploy.sh install
To ensure compatibility with modern PHP 8.5 runtimes and current build tooling, only modern distributions are supported:
- Ubuntu:
24.04 LTS,24.10,26.04+ LTS - Debian:
12 (Bookworm),13 (Trixie)
(Older releases such as Debian 11 or Ubuntu 22.04 and older are deprecated and unsupported).
-
PHP 8.5 & FPM: Configures the official Ondřej Surý Debian/Ubuntu repository with all required extensions (
bcmath,curl,gd,intl,mbstring,pdo_mysql,posix,redis,xml,zip). -
Node.js & npm: Idempotently installs NVM
v0.40.8, Node.js24, and the latestnpm(skips if Node$\ge$ 24 is already present). -
pnpm: Installs the pinned
pnpm@12.10.1package manager. - Composer: Installs Composer 2.
-
Services: Sets up MariaDB 10.11+, Redis 6+, Nginx, and system utilities (
rsync,flock,mariadb-client, etc.).
- Clones Aquadactyl to
/var/www/aquadactyl. - Configures
.envwith interactive terminal prompts (or pre-set environment variables). - Configures Redis drivers for sessions, caching, and queues.
- Generates secure Laravel
APP_KEYand 32-hexHASHIDS_SALT. - Automatically executes migrations, seeds Blueprint tables, and seeds default nests & eggs (
DatabaseSeeder). - Headlessly bootstraps Blueprint beta-2026-08 and warms its extension cache (
artisan bp:cache). - Compiles production frontend assets (
pnpm run build:production). - Deploys the background worker (
pteroq.service) and the Laravel cron scheduler (/etc/cron.d/aquadactyl). - Normalizes strict least-privilege permissions (
root:www-data,0750/0640, onlystorageandbootstrap/cachewritable bywww-data). - Guides you through creating your initial administrator account.
-
Tag-based upgrades:
sudo bash deploy.sh update v1.0.0
-
Local archive upgrades:
sudo bash deploy.sh update --archive /path/to/panel.tar.gz <sha256-hash>
-
Safety First:
- Automatically creates a timestamped private backup (
/var/backups/aquadactyl/) containing a full database SQL dump and compressed file snapshot. - Pauses background queues (
pteroq.service) and enters maintenance mode. - Syncs the release archive while strictly preserving
.env,.blueprintrc, and extension data. - Re-applies all installed Blueprint extensions non-interactively.
- Traps failures: keeps maintenance mode active upon any error and outputs step-by-step recovery commands.
- Automatically creates a timestamped private backup (
Restore the strict Aquadactyl permission model at any time:
sudo bash deploy.sh permissionsCleanly uninstall Aquadactyl and revert system changes:
sudo bash deploy.sh remove- Stops and disables background workers (
pteroq.service) and removes the systemd unit. - Removes cron configuration
/etc/cron.d/aquadactyl. - Removes the Nginx vhost (
/etc/nginx/sites-available/aquadactyl.conf) and reloads Nginx. - Drops the MariaDB database and user credentials defined in
.env. - Deletes the panel root (
/var/www/aquadactyl). - Cleans up global binary symlinks (
blueprint,node,npm,pnpm). - Prompts whether to optionally purge installed system packages (PHP, MariaDB, Redis, Nginx, NVM).
Customize deployment behavior without modifying the script:
| Variable | Default | Description |
|---|---|---|
PANEL_ROOT |
/var/www/aquadactyl |
Absolute directory path to the panel root. |
WEB_USER |
www-data |
System user executing PHP-FPM and web workers. |
WEB_GROUP |
www-data |
System group executing PHP-FPM and web workers. |
PHP_VERSION |
8.5 |
Target PHP minor version (8.4 or 8.5). |
BACKUP_DIR |
/var/backups/aquadactyl |
Directory for update snapshots and SQL dumps. |
NON_INTERACTIVE |
0 |
Set to 1 to bypass all terminal questions for CI/headless runs. |
If an update is interrupted or encounters an unrecoverable error, the script prints the exact backup path. You can restore your previous state with:
# 1. Stop services
sudo systemctl stop php8.5-fpm pteroq.service
# 2. Extract files
sudo tar -xzf /var/backups/aquadactyl/<TIMESTAMP>/panel.tar.gz -C /var/www/aquadactyl
# 3. Restore database
sudo mariadb -u aquadactyl -p aquadactyl < /var/backups/aquadactyl/<TIMESTAMP>/database.sql
# 4. Normalize permissions and start
sudo bash /var/www/aquadactyl/deploy.sh permissions
sudo systemctl start php8.5-fpm pteroq.service
sudo -u www-data php /var/www/aquadactyl/artisan upThis tooling is licensed under the MIT License.