Skip to content

Installing Notur

Automated Installation

The easiest way to install Notur into a Pterodactyl Panel:

bash
curl -sSL https://docs.notur.site/install.sh | bash -s -- /var/www/pterodactyl

Replace /var/www/pterodactyl with your panel root path if different. This performs all steps below automatically.

Manual Installation

Step 1: Add Composer Package

bash
cd /var/www/pterodactyl
composer require notur/notur

Step 2: Patch the Blade Layout

Notur needs to inject its scripts into the panel's HTML. Edit resources/views/layouts/scripts.blade.php and add:

blade
@include('notur::scripts')

This file is a minimal binder — adding the include here is the cleanest approach.

Step 3: Apply React Patches

The patch set adds slot containers and dynamic route merging to the panel's React source. The automated installer selects the right patch version (v1.11 or v1.12) automatically. For manual installation, pick the folder that matches your panel version and apply the core patches:

bash
cd /var/www/pterodactyl

# Choose the matching patch set for your panel version:
# PATCH_SET=v1.11
# PATCH_SET=v1.12
PATCH_SET=v1.12

# Apply core patches (required for basic functionality)
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/routes.ts.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/ServerRouter.tsx.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/DashboardRouter.tsx.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/DashboardContainer.tsx.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/NavigationBar.tsx.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/ServerTerminal.tsx.patch
patch -p1 < vendor/notur/notur/installer/patches/${PATCH_SET}/FileManager.tsx.patch

# For full functionality, apply all patches from installer/patches/${PATCH_SET}/
# (excluding *.reverse.patch files)

What the core patches do:

FileChange
routes.tsAdds getNoturRoutes() function that reads extension routes from window.__NOTUR__
ServerRouter.tsxAdds slot containers for server navigation + renders extension server routes
DashboardRouter.tsxAdds slot containers for dashboard/account navigation + renders extension dashboard/account routes
DashboardContainer.tsxAdds dashboard header/footer and server list slots
NavigationBar.tsxAdds slot containers in the top navigation bar
ServerTerminal.tsxAdds console page slots + terminal button slot
FileManager.tsxAdds file manager toolbar/header/footer slots

Step 4: Rebuild Frontend

One-time rebuild — not needed again when installing/removing extensions.

bash
npm install
npm run build:production
bash
yarn install
yarn run build:production
bash
pnpm install
pnpm run build:production
bash
bun install
bun run build:production

Step 5: Run Migrations

bash
php artisan migrate

This creates four tables:

  • notur_extensions — installed extension records
  • notur_migrations — per-extension migration tracking
  • notur_settings — per-extension key-value settings
  • notur_activity_logs — extension activity audit trail

Step 6: Set Up Directories

bash
mkdir -p notur/extensions
mkdir -p public/notur/extensions
echo '{"extensions":{}}' > notur/extensions.json

Step 7: Install Frontend Runtime Assets

Build the bridge JS and the shared Tailwind CSS, then place them in the panel's public directory:

bash
cd vendor/notur/notur
npm install
npm run build:bridge
npm run build:tailwind
cp bridge/dist/bridge.js /var/www/pterodactyl/public/notur/bridge.js
cp bridge/dist/tailwind.css /var/www/pterodactyl/public/notur/tailwind.css
bash
cd vendor/notur/notur
yarn install
yarn run build:bridge
yarn run build:tailwind
cp bridge/dist/bridge.js /var/www/pterodactyl/public/notur/bridge.js
cp bridge/dist/tailwind.css /var/www/pterodactyl/public/notur/tailwind.css
bash
cd vendor/notur/notur
pnpm install
pnpm run build:bridge
pnpm run build:tailwind
cp bridge/dist/bridge.js /var/www/pterodactyl/public/notur/bridge.js
cp bridge/dist/tailwind.css /var/www/pterodactyl/public/notur/tailwind.css
bash
cd vendor/notur/notur
bun install
bun run build:bridge
bun run build:tailwind
cp bridge/dist/bridge.js /var/www/pterodactyl/public/notur/bridge.js
cp bridge/dist/tailwind.css /var/www/pterodactyl/public/notur/tailwind.css

Verifying the Installation

  1. Visit your panel — the page should load normally
  2. Check the page source — you should see window.__NOTUR__ and bridge.js script tags
  3. Run php artisan notur:list — should show no extensions installed
  4. Open the browser console — you should see [Notur] Bridge runtime vX.X.X initialized

Uninstalling Notur

  1. Remove all extensions: php artisan notur:list then php artisan notur:remove for each
  2. Restore backed-up files (the installer creates .notur-backup copies)
  3. Rebuild frontend:
bash
npm run build:production
bash
yarn run build:production
bash
pnpm run build:production
bash
bun run build:production
  1. Remove Notur tables: php artisan migrate:rollback (the 4 notur tables)
  2. Remove composer package: composer remove notur/notur
  3. Remove directories: rm -rf notur/ public/notur/

Compatibility

ComponentSupported Versions
Pterodactyl Panelv1 canary / 1.11.x
PHP8.2, 8.3
Node.js22+
Package Managernpm, Yarn, pnpm, or Bun
MySQL8.0+
MariaDB10.6+

Released under the MIT License.