Files
jabali-panel/docs/onboarding.md
2026-02-06 02:10:23 +00:00

2.4 KiB

Jabali Panel Developer Onboarding

Last updated: 2026-02-06

Start Here

  • Read AGENT.md first. It is the authoritative guide.
  • Work from /var/www/jabali.
  • Use ASCII in edits unless the file already uses Unicode.

What This Project Is

Jabali Panel is a modern web hosting control panel. It has two Filament panels:

  • Admin: /jabali-admin (server-wide management)
  • User: /jabali-panel (per-tenant management)

Key Components

  • Laravel 12 + Filament v5 + Livewire v4
  • Root agent: bin/jabali-agent (privileged ops over Unix socket /var/run/jabali/agent.sock)
  • Health monitor: bin/jabali-health-monitor (service restarts and alerts)
  • Panel DB: SQLite at database/database.sqlite
  • Server metrics: app/Services/SysstatMetrics.php uses /var/log/sysstat

Local Development (Typical)

From /var/www/jabali:

  • composer dev
  • php artisan test --compact
  • ./vendor/bin/pint

Production Operations (Typical)

  • php artisan migrate
  • php artisan config:cache
  • php artisan route:cache

UI Rules (Non-Negotiable)

  • Use Filament native components only.
  • No custom HTML, no custom CSS, no inline styles.
  • Use tables for list data (EmbeddedTable or HasTable).
  • Use icons and icon colors for status.
  • Keep pages responsive and match existing patterns.

Backups and Security

  • Backup/restore goes through the agent and includes strict validations.
  • Audit logs stored in audit_logs with retention.
  • DNSSEC is supported and managed via the agent.

Installer and Upgrade Notes

  • Target OS: Fresh Debian 12/13 install with no pre-existing web/mail stack.
  • install.sh builds assets as www-data and manages permissions.
  • php artisan jabali:upgrade ensures caches and permissions (public/build, node_modules).

Git Rules

  • Do not push unless explicitly asked.
  • Bump VERSION before every push.
  • Keep install.sh version fallback in sync with VERSION.

Where to Look for Examples

  • app/Filament/Admin/Pages and app/Filament/Jabali/Pages
  • app/Filament/Admin/Widgets and app/Filament/Jabali/Widgets
  • app/Services for business logic
  • bin/jabali-agent for privileged operations

Common Tasks

  • Screenshots: node tests/take-screenshots.cjs --output-dir=docs/screenshots
  • Package build: scripts/build-jabali-deps-deb.sh, scripts/build-jabali-panel-deb.sh

Quick Checklist Before You Commit

  • Ran at least one test command.
  • UI changes follow Filament-only rules.
  • No permission regressions for public/build or node_modules.
  • No changes to vendor or node_modules.