Files
jabali-panel/README.md

5.1 KiB

Jabali Panel

Jabali Panel

A modern web hosting control panel for WordPress and general PHP hosting. Built with Laravel 12, Filament v5, Livewire 4, and Tailwind CSS v4.

Version: 0.9-rc31 (release candidate)

This is a release candidate. Expect rapid iteration and breaking changes until 1.0.

Highlights

  • Multi-tenant isolation with per-user Linux accounts and PHP-FPM pools
  • Agent-driven automation for domains, SSL, mail, DNS, backups, and migrations
  • cPanel and WHM migrations with detailed, step-by-step logs
  • Built-in mail stack (Postfix, Dovecot, Rspamd) with webmail SSO
  • DNS management with templates and optional DNSSEC
  • Backups for users and servers with schedules, retention, and remote targets
  • Security controls including firewall, Fail2ban, and ClamAV scanning

Installation

Quick install:

curl -fsSL https://raw.githubusercontent.com/shukiv/jabali-panel/main/install.sh | sudo bash

Optional flags:

  • JABALI_MINIMAL=1 for core-only install
  • JABALI_FULL=1 to force all optional components

After install:

  • Admin panel: https://your-host/jabali-admin
  • User panel: https://your-host/jabali-panel
  • Webmail: https://your-host/webmail

Feature Map

Admin Panel

  • Server dashboard with stats, health, and recent activity
  • User management with suspension and quota tracking
  • Service manager for systemd services
  • PHP version manager and PHP-FPM pool management
  • DNS zones, templates, and DNSSEC management
  • SSL issuance, renewal, and certificate inventory
  • IP address management (default and per-domain assignments)
  • Backups and restores (local + remote, schedules + retention)
  • Migrations (cPanel restore and WHM downloads)
  • Security center (firewall, Fail2ban, ClamAV, security scans)
  • Audit logs and email notifications

User Panel

  • Domains and redirects with automatic Nginx config
  • DNS records editor
  • Mail domains, mailboxes, and forwarders
  • Webmail SSO (Roundcube)
  • WordPress manager (install, scan, updates, SSO)
  • File manager plus SFTP/SSH key management
  • Databases and user permissions
  • PHP settings per account
  • SSL certificates and renewals
  • Cron jobs
  • Backups and restore
  • Logs and statistics
  • Protected directories

Platform

  • Root-level agent for privileged operations
  • Queue-backed jobs for long-running tasks
  • Self-healing service monitor and alerts
  • Redis ACL isolation for WordPress caching
  • Multi-language UI

Screenshots

Admin panel:

  • Dashboard: Admin Dashboard
  • Server Status: Server Status
  • Server Settings: Server Settings
  • Security Center: Security Center
  • Users: User Management
  • SSL Manager: SSL Manager
  • DNS Zones: DNS Zones
  • Backups: Admin Backups
  • Services: Services

User panel and flows:

  • User Dashboard: User Dashboard
  • Domain Management: User Domains
  • Backups: User Backups
  • cPanel Migration: cPanel Migration

Architecture

  • Control plane: Laravel app with Filament panels
  • Data plane: root agent handling privileged operations
  • Job queue: async tasks and migration steps
  • Logging: agent and panel logs for troubleshooting

Service stack (single-node default):

  • Nginx + PHP-FPM
  • MariaDB (user databases)
  • SQLite (panel metadata by default)
  • Postfix, Dovecot, Rspamd
  • BIND9 (DNS)
  • Redis
  • Fail2ban and ClamAV (optional)

Requirements

  • Fresh Debian 12 or 13 install (no pre-existing web or mail stack)
  • A domain for panel and mail (with glue records if hosting DNS)
  • PTR (reverse DNS) for mail hostname
  • Open ports: 22, 80, 443, 25, 465, 587, 993, 995, 53

Upgrades

cd /var/www/jabali
php artisan jabali:upgrade

Check for updates only:

php artisan jabali:upgrade --check

CLI

jabali --help
jabali backup create <user>
jabali backup restore <path> --user=<user>
jabali cpanel analyze <file>
jabali cpanel restore <file> <user>

Development

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

Initial Release

  • 0.9-rc31: File manager navigation uses Livewire actions; parent row excluded from bulk select.
  • 0.9-rc30: Avoid IncludeOptional in ModSecurity CRS includes.
  • 0.9-rc29: Ensure ModSecurity unicode mapping is installed automatically.
  • 0.9-rc28: ModSecurity unicode mapping setup fixes.
  • 0.9-rc27: Installers now read VERSION when available.
  • 0.9-rc26: Updated installer version banner.
  • 0.9-rc25: Added Gitea installer script.
  • 0.9-rc24: WAF installer improvements and ModSecurity setup fixes.
  • 0.9-rc: initial release candidate with core hosting, mail, DNS, SSL, backups, and migrations.

License

MIT