Update README, docs, and version

This commit is contained in:
root
2026-02-06 02:10:23 +00:00
parent fa5231803c
commit be34afe2c8
8 changed files with 186 additions and 941 deletions

View File

@@ -3,22 +3,29 @@
</p>
<h1 align="center">Jabali Panel</h1>
A modern web hosting control panel for WordPress and general PHP hosting. Jabali focuses on clean multi-tenant isolation, safe automation, and a consistent admin/user experience. It ships with an agent for privileged tasks, built-in mail and DNS management, migrations from common panels, and a security center that keeps critical services in check. The UI is designed to be fast, predictable, and easy to operate on a single server. Administrators get clear visibility into services, SSL, DNS, backups, and security posture, while users get a streamlined workflow for domains, email, WordPress, files, databases, and PHP settings. The goal is simple: reduce the operational burden of hosting by making common tasks safe, repeatable, and easy to audit.
A modern web hosting control panel for WordPress and general PHP hosting. Jabali focuses on clean multi-tenant isolation, safe automation, and a consistent admin/user experience. It ships with a privileged agent for root-level tasks, built-in mail and DNS management, migrations from common panels, and a security center that keeps critical services in check. The UI is designed to be fast, predictable, and easy to operate on a single server.
Version: 0.9-rc48 (release candidate)
Version: 0.9-rc51 (release candidate)
This is a release candidate. Expect rapid iteration and breaking changes until 1.0.
## Demo and Website
- Demo: https://jabali-panel.com/demo/
- Website: https://jabali-panel.com/
## Highlights
- Per-user Linux accounts and PHP-FPM isolation
- Root agent for DNS, SSL, mail, backups, and migrations
- Health monitor with auto-restarts and alerts
- cPanel and WHM migrations with step-by-step logs
- Built-in mail stack with webmail SSO
- DNS templates with optional DNSSEC
- User and server backups with schedules and retention
- WordPress management (install, updates, scans, and SSO)
- Security center with firewall, Fail2ban, and ClamAV
- Security center with firewall, Fail2ban, ClamAV, and scanners
- Audit logs and admin notifications
## Installation
@@ -33,6 +40,16 @@ Optional flags:
- `JABALI_MINIMAL=1` for core-only install
- `JABALI_FULL=1` to force all optional components
Debian packages:
```
./scripts/build-jabali-deps-deb.sh
./scripts/build-jabali-panel-deb.sh
sudo dpkg -i ./jabali-deps_<version>_all.deb
sudo apt-get -f install -y
sudo dpkg -i ./jabali-panel_<version>_all.deb
```
After install:
- Admin panel: `https://your-host/jabali-admin`
@@ -79,33 +96,13 @@ After install:
- Redis ACL isolation for WordPress caching
- Multi-language UI
## Screenshots
Admin panel:
- Dashboard: ![Admin Dashboard](docs/screenshots/admin-dashboard.png)
- Server Status: ![Server Status](docs/screenshots/admin-server-status.png)
- Server Settings: ![Server Settings](docs/screenshots/admin-server-settings.png)
- Security Center: ![Security Center](docs/screenshots/admin-security.png)
- Users: ![User Management](docs/screenshots/admin-users.png)
- SSL Manager: ![SSL Manager](docs/screenshots/admin-ssl-manager.png)
- DNS Zones: ![DNS Zones](docs/screenshots/admin-dns-zones.png)
- Backups: ![Admin Backups](docs/screenshots/admin-backups.png)
- Services: ![Services](docs/screenshots/admin-services.png)
User panel:
- Dashboard: ![User Dashboard](docs/screenshots/user-dashboard.png)
- Domain Management: ![User Domains](docs/screenshots/user-domains.png)
- Backups: ![User Backups](docs/screenshots/user-backups.png)
- cPanel Migration: ![cPanel Migration](docs/screenshots/user-cpanel-migration.png)
## Architecture
- Control plane: Laravel app with Filament panels
- Control plane: Laravel 12 app with Filament v5 and Livewire v4
- Data plane: root agent handling privileged operations
- Job queue: async tasks and migration steps
- Logging: panel and agent logs for troubleshooting
- Server metrics: sysstat logs via SysstatMetrics
Service stack (single-node default):

View File

@@ -1 +1 @@
VERSION=0.9-rc51
VERSION=0.9-rc52

33
docs/docs-index.md Normal file
View File

@@ -0,0 +1,33 @@
# Jabali Documentation Index
Last updated: 2026-02-06
## Top-Level Docs
- /var/www/jabali/README.md - Product overview, features, install, upgrade, and architecture summary.
- /var/www/jabali/AGENT.md - Authoritative project guide (architecture, backups, DNSSEC, Filament rules).
- /var/www/jabali/AGENTS.md - Agent behavior rules for automated changes.
- /var/www/jabali/CONTEXT.md - Current stack, services, and upgrade notes.
- /var/www/jabali/DECISIONS.md - Key technical decisions and rationale snapshots.
- /var/www/jabali/TODO.md - Active checklist items.
## Docs Folder
- /var/www/jabali/docs/installation.md - Debian package install path and Filament notifications patch.
- /var/www/jabali/docs/architecture/control-panel-blueprint.md - High-level blueprint for a hosting panel.
- /var/www/jabali/docs/archive-notes.md - Archived files and restore notes.
- /var/www/jabali/docs/screenshots/README.md - Screenshot generation instructions.
- /var/www/jabali/docs/docs-summary.md - Project documentation summary (generated).
- /var/www/jabali/docs/onboarding.md - Developer onboarding guide (generated).
- /var/www/jabali/docs/docs-index.md - This index (generated).
## MCP Docs Server
- /var/www/jabali/mcp-docs-server/README.md - MCP server for Jabali docs resources and tools.
## Policy and Terms
- /var/www/jabali/resources/markdown/policy.md - Privacy policy placeholder.
- /var/www/jabali/resources/markdown/terms.md - Terms of service placeholder.
## WordPress Plugin
- /var/www/jabali/resources/wordpress/jabali-cache/readme.txt - Jabali Cache plugin documentation.
## Tests and Support Files
- /var/www/jabali/tests/Unit/ReadmeScreenshotsTest.php - Screenshot test references for README content.

56
docs/docs-summary.md Normal file
View File

@@ -0,0 +1,56 @@
# Documentation Summary (Jabali Panel)
Last updated: 2026-02-06
## Product Overview
Jabali Panel is a modern web hosting control panel for WordPress and general PHP hosting. It provides an admin panel for server-wide operations and a user panel for per-tenant management. The core goals are safe automation, clean multi-tenant isolation, and operational clarity.
## Architecture
- Control plane: Laravel 12 app using Filament v5 + Livewire v4.
- Data plane: Root-level agent (bin/jabali-agent) that performs privileged operations.
- Health monitor: bin/jabali-health-monitor restarts critical services and sends alerts.
- Job queue: async tasks and long-running operations.
## Panels and Routes
- Admin panel: /jabali-admin
- User panel: /jabali-panel
## Data and Storage
- Panel metadata: SQLite at database/database.sqlite.
- Hosting services: MariaDB, Postfix, Dovecot, BIND, Redis (as configured by the agent).
- Sysstat-based server status charts: app/Services/SysstatMetrics.php uses /var/log/sysstat.
## Services and Monitoring
Health monitor checks services every 30s and auto-restarts when needed. Notifications are sent via AdminNotificationService based on settings in dns_settings (notify_service_health, notify_high_load, etc.). Audit logs are stored in audit_logs and pruned daily based on retention settings.
## Backup System
- User and server backups with restore options for files, databases, mail, SSL, and DNS.
- Restore is guarded by strict security validations (prefix checks, SQL sanitization, path validation, DNS validation).
- Supports local and remote destinations (SFTP, NFS, S3). Retention is applied after each backup.
## DNSSEC
DNSSEC can be enabled per domain and generates KSK/ZSK keys, DS records, and signed zones. Managed through the admin panel and backed by agent actions.
## UI and Filament Rules (Critical)
- Use only Filament native components (no custom HTML, no custom CSS, no inline styles).
- Use tables for list data (EmbeddedTable or HasTable).
- Use icons and icon colors for status indication.
- Keep layouts responsive and consistent with existing patterns.
## Installation and Upgrade
- Target OS: Fresh Debian 12/13 install with no pre-existing web/mail stack.
- Installer: install.sh, builds assets as www-data and ensures permissions.
- Upgrade: php artisan jabali:upgrade manages dependencies, caches, and permissions for public/build and node_modules.
## Packaging
Debian packaging is supported via scripts:
- scripts/build-jabali-deps-deb.sh
- scripts/build-jabali-panel-deb.sh
## Documentation MCP Server
mcp-docs-server exposes README, AGENT docs, and changelog through MCP tools for search and section retrieval.
## Miscellaneous Docs
- Screenshot regeneration script: tests/take-screenshots.cjs.
- Policies: resources/markdown/policy.md and resources/markdown/terms.md are placeholders.
- WordPress plugin: resources/wordpress/jabali-cache/readme.txt documents the Jabali Cache plugin.

69
docs/onboarding.md Normal file
View File

@@ -0,0 +1,69 @@
# 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.

View File

@@ -16,7 +16,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [[ -f "$SCRIPT_DIR/VERSION" ]]; then
JABALI_VERSION="$(sed -n 's/^VERSION=//p' "$SCRIPT_DIR/VERSION")"
fi
JABALI_VERSION="${JABALI_VERSION:-0.9-rc51}"
JABALI_VERSION="${JABALI_VERSION:-0.9-rc52}"
# Colors
RED='\033[0;31m'

916
package-lock.json generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long