Skip to content

Installation

DevRock edited this page Sep 1, 2026 · 2 revisions

Installation

Recommended: shell manager

Download and review the manager before running it from a root shell:

curl -fsSL https://raw.githubusercontent.com/devrock07/Rockdactyl/main/install.sh \
  -o /tmp/rockdactyl-install.sh
less /tmp/rockdactyl-install.sh
bash /tmp/rockdactyl-install.sh install

The manager can install, update, or restore its pre-theme backup. It verifies the release checksum before touching the panel and brings the application back online if a later stage fails.

Direct commands are also supported:

bash /tmp/rockdactyl-install.sh update
bash /tmp/rockdactyl-install.sh restore

Use --no-animation for plain logs or --verbose for complete command output. The shorter bash <(curl -fsSL …/main/install.sh) form is convenient, but it executes mutable remote code immediately and cannot be reviewed first.

Manual release archive

Rockdactyl is a complete overlay for the exact Pterodactyl base named in its compatibility information. Do not extract it over a different Pterodactyl base version.

Create backups first. Download and verify the release before entering maintenance mode:

set -euo pipefail
rock_download_dir="$(mktemp -d)"
trap 'rm -rf -- "$rock_download_dir"' EXIT
cd "$rock_download_dir"

curl -fL -o panel.tar.gz \
  https://github.com/devrock07/Rockdactyl/releases/latest/download/panel.tar.gz
curl -fL -o panel.tar.gz.sha256 \
  https://github.com/devrock07/Rockdactyl/releases/latest/download/panel.tar.gz.sha256
sha256sum --check panel.tar.gz.sha256
tar -tzf panel.tar.gz > archive-list.txt

if grep -Eq '(^/|(^|/)\.\.(/|$))' archive-list.txt; then
  echo 'Unsafe path found in archive.' >&2
  exit 1
fi

grep -Fxq './artisan' archive-list.txt
grep -Fxq './composer.json' archive-list.txt

Continue only after the checksum reports panel.tar.gz: OK, both required files are found, and the path check succeeds. In the same shell, deploy the verified archive:

set -euo pipefail
rock_panel_dir=/var/www/pterodactyl
cd "$rock_panel_dir"

php artisan down
trap 'cd "$rock_panel_dir"; php artisan up; rm -rf -- "$rock_download_dir"' EXIT
tar -xzf "$rock_download_dir/panel.tar.gz" -C "$rock_panel_dir"

composer install --no-dev --optimize-autoloader --no-interaction
php artisan migrate --seed --force
php artisan optimize:clear
php artisan queue:restart

chown -R www-data:www-data /var/www/pterodactyl
find storage bootstrap/cache -type d -exec chmod 755 {} +
find storage bootstrap/cache -type f -exec chmod 644 {} +
php artisan up
rm -rf -- "$rock_download_dir"
trap - EXIT

Replace www-data with the account used by your web server.

Container image

Images are published to:

ghcr.io/devrock07/rock-theme

Use a version tag for production rather than edge. Existing Pterodactyl database, environment, storage, reverse-proxy, and Wings requirements still apply. See the container documentation for the image layout and the repository's Rockdactyl Compose example.

Verify the result

cd /var/www/pterodactyl
php artisan about
php artisan migrate:status
php artisan queue:restart

Then load the login screen and one server view. If styling appears stale, see Troubleshooting.

Clone this wiki locally