Installing Notur
Automated Installation
The easiest way to install Notur into a Pterodactyl Panel:
curl -sSL https://docs.notur.site/install.sh | bash -s -- /var/www/pterodactylReplace /var/www/pterodactyl with your panel root path if different. This performs all steps below automatically.
Manual Installation
Step 1: Add Composer Package
cd /var/www/pterodactyl
composer require notur/noturStep 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:
@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:
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:
| File | Change |
|---|---|
routes.ts | Adds getNoturRoutes() function that reads extension routes from window.__NOTUR__ |
ServerRouter.tsx | Adds slot containers for server navigation + renders extension server routes |
DashboardRouter.tsx | Adds slot containers for dashboard/account navigation + renders extension dashboard/account routes |
DashboardContainer.tsx | Adds dashboard header/footer and server list slots |
NavigationBar.tsx | Adds slot containers in the top navigation bar |
ServerTerminal.tsx | Adds console page slots + terminal button slot |
FileManager.tsx | Adds file manager toolbar/header/footer slots |
Step 4: Rebuild Frontend
One-time rebuild — not needed again when installing/removing extensions.
npm install
npm run build:productionyarn install
yarn run build:productionpnpm install
pnpm run build:productionbun install
bun run build:productionStep 5: Run Migrations
php artisan migrateThis creates four tables:
notur_extensions— installed extension recordsnotur_migrations— per-extension migration trackingnotur_settings— per-extension key-value settingsnotur_activity_logs— extension activity audit trail
Step 6: Set Up Directories
mkdir -p notur/extensions
mkdir -p public/notur/extensions
echo '{"extensions":{}}' > notur/extensions.jsonStep 7: Install Frontend Runtime Assets
Build the bridge JS and the shared Tailwind CSS, then place them in the panel's public directory:
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.csscd 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.csscd 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.csscd 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.cssVerifying the Installation
- Visit your panel — the page should load normally
- Check the page source — you should see
window.__NOTUR__andbridge.jsscript tags - Run
php artisan notur:list— should show no extensions installed - Open the browser console — you should see
[Notur] Bridge runtime vX.X.X initialized
Uninstalling Notur
- Remove all extensions:
php artisan notur:listthenphp artisan notur:removefor each - Restore backed-up files (the installer creates
.notur-backupcopies) - Rebuild frontend:
npm run build:productionyarn run build:productionpnpm run build:productionbun run build:production- Remove Notur tables:
php artisan migrate:rollback(the 4 notur tables) - Remove composer package:
composer remove notur/notur - Remove directories:
rm -rf notur/ public/notur/
Compatibility
| Component | Supported Versions |
|---|---|
| Pterodactyl Panel | v1 canary / 1.11.x |
| PHP | 8.2, 8.3 |
| Node.js | 22+ |
| Package Manager | npm, Yarn, pnpm, or Bun |
| MySQL | 8.0+ |
| MariaDB | 10.6+ |