Skip to content

Operator Recipes

DevRock edited this page Sep 1, 2026 · 2 revisions

Operator Recipes

These are safe starting points for common Rockdactyl deployments. Apply values in Admin → Settings, save once, then verify in a private browser window and at a phone-sized viewport. Database-backed settings override matching .env fallbacks.

Branded production panel

Host versioned assets locally so the panel does not depend on a third-party image service:

  1. Put a transparent logo and compressed dashboard image in public/branding/.
  2. Configure Panel Name, Footer Owner, Footer URL, Header Mark, and the copyright start year.
  3. Set Logo to /branding/logo.svg and Dashboard Image to /branding/dashboard.webp.
  4. Keep the dashboard title short enough for one or two lines on a phone.
APP_NAME="Example Hosting"
BRAND_OWNER="Example Hosting"
BRAND_URL="https://example.com"
BRAND_MARK="EH"
BRAND_LOGO="/branding/logo.svg"
BRAND_START_YEAR=2026
BRAND_DASHBOARD_TITLE="Servers, under control."
BRAND_DASHBOARD_SUBTITLE="Welcome back, {username}."
BRAND_DASHBOARD_IMAGE="/branding/dashboard.webp"

Purge the CDN path and hard-refresh after replacing an asset without changing its filename.

Crimson Red or Midnight Blue

Rockdactyl ships two complete presets. Crimson Red is the default warm theme; Midnight Blue is the cooler operations theme.

Setting Conservative production value
Glass 14–18 px
Radius 10–14 px
Motion Reduced for shared terminals; enabled for personal dashboards

Check login, dashboard, console, file menus, dialogs, admin forms, notifications, and /status after switching. The selected preset is panel-wide.

Privacy-first status page

To publish availability without exposing infrastructure names:

  • Enable Status Page.
  • Set Node Filter Mode to Summary Totals Only.
  • Disable Show Node Cards.

For a private deployment, set Status Page to Hidden. Both /status and its public API then return a not-found response.

Incident announcements

Keep messages short and actionable:

Situation Severity Example
Planned work Notice Maintenance begins at 02:00 UTC.
Degraded service Warning Database provisioning is delayed.
Active outage Critical Console access is temporarily unavailable.

Use a root-relative action such as /status or an HTTPS incident page. Disable the banner after resolution.

Readable console media

Prefer a dark, low-detail WebP image or short muted WebM loop hosted locally.

Setting Suggested value
Background Media /branding/console.webp
Media Visibility 14%
Font Size 12 px
Scanlines Off

Verify normal and ANSI-colored output over bright and dark areas. For remote media, use HTTPS and confirm the URL is public, returns the right content type, and is not blocked by hotlink protection.

Mobile and reduced motion

  • Prefer WebP or AVIF over large GIFs.
  • Keep dashboard and login video loops short, muted, and compressed.
  • Set Motion to Reduced and Glass to 14 px or less.
  • Test at 360, 390, 768, 1440, and 1920 pixel widths.

Reduced mode also follows prefers-reduced-motion; core actions, focus rings, menus, and loading states remain functional without decorative animation.

Telemetry and persistent notifications

Resource history and threshold notifications require Laravel's scheduler:

* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
cd /var/www/pterodactyl
php artisan schedule:list
php artisan rock:telemetry

Notification read and clear state is stored per account. Read one notification, reload, and confirm it does not return as unread.

TLS reverse proxy

Keep the origin private, terminate TLS at the edge, and trust only proxies you operate:

APP_URL=https://panel.example.com
TRUSTED_PROXIES=10.0.0.10,10.0.0.11

Do not set TRUSTED_PROXIES=* on a public origin. Preserve WebSocket upgrade headers and verify login, uploads, downloads, and a live console through the public hostname.

Production verification

cd /var/www/pterodactyl
php artisan optimize:clear
php artisan queue:restart
php artisan schedule:list

Verify login, dashboard, notifications, a server console, file actions, admin settings persistence, and /status where enabled. Retain the previous settings and local branding files for visual rollback.

Clone this wiki locally