Jabali CLI
Jabali provides a comprehensive command-line interface using the jabali command with a noun:verb pattern. All commands support --json output for automation and --yes to skip confirmation prompts.
User Management
Create User
jabali user:create <username> [--email=] [--password=] [--admin] [--force]
Creates a new hosting account. The --admin flag grants administrative access. --force skips validation.
Delete User
jabali user:delete <username>
Removes a user account and all associated data. Requires confirmation.
List Users
jabali user:list [--json]
Shows all hosting accounts on the system.
Show User Details
jabali user:show <username> [--json]
Displays account details including quotas, domains, and suspension status.
Change Password
jabali user:password <username> [--password=]
Updates user account password. If --password is omitted, a secure prompt appears.
Suspend User
jabali user:suspend <username>
Temporarily disables a user account. The account and its domains remain, but services are inaccessible.
Unsuspend User
jabali user:unsuspend <username>
Reactivates a suspended user account.
Grant/Revoke Admin
jabali user:admin <identifier> [--revoke] [--force]
Grants admin access to a user or revokes it with --revoke. The identifier can be username or email.
Domain Management
Create Domain
jabali domain:create <domain> [--user=]
Adds a domain to the system. Assign to a user with --user=username, or leave unassigned.
Delete Domain
jabali domain:delete <domain>
Removes a domain and all associated files, emails, and DNS records.
Enable/Disable Domain
jabali domain:enable <domain>
jabali domain:disable <domain>
Toggles domain accessibility without deleting data. Disabled domains respond with HTTP 410.
List Domains
jabali domain:list [--user=]
Shows all domains. Filter by user with --user=username.
Show Domain Details
jabali domain:show <domain> [--json]
Displays configuration, SSL status, FTP users, and current resource usage.
Database Management
Create Database
jabali db:create <name> [--user=]
Creates a new MySQL database.
Delete Database
jabali db:delete <name>
Permanently removes a database. Requires confirmation.
List Databases
jabali db:list [--user=]
Shows all databases, optionally filtered by user.
Create Database User
jabali db:user-create <name> [--password=] [--database=]
Creates a database user with optional assignment to a specific database.
Delete Database User
jabali db:user-delete <name>
Removes a database user. Databases owned by this user are not affected.
List Database Users
jabali db:users [--json]
Shows all database users and their privilege assignments.
Tune Database Parameters
jabali db:tune <variable> <value> [--persist]
Adjusts MySQL configuration variables at runtime. Use --persist to write to my.cnf.
Email Management
Create Email Account
jabali mail:create <email> [--password=] [--quota=]
Creates a mailbox with optional quota (e.g., 1GB, 500MB). Default is unlimited.
Delete Email Account
jabali mail:delete <email>
Removes a mailbox and all messages.
Change Email Password
jabali mail:password <email> [--password=]
Updates mailbox password.
Set Email Quota
jabali mail:quota <email> [--size=]
Adjusts storage quota for a mailbox (e.g., 2GB). Omit to set unlimited.
List Email Accounts
jabali mail:list [--domain=]
Shows all mailboxes, optionally filtered by domain.
View Mail Log
jabali mail:log [--lines=50] [--domain=] [--type=]
Displays recent mail server activity. Filter by domain and log type (e.g., smtp, delivery).
Mail Queue
jabali mail:queue [--json]
Shows messages pending delivery.
Queue Retry
jabali mail:queue-retry [id] [--all]
Retries a specific message or all queued messages.
Queue Delete
jabali mail:queue-delete <id>
Permanently removes a queued message.
SSL/TLS Management
Issue Certificate
jabali ssl:issue <domain> [--force]
Requests a new certificate from Let’s Encrypt. Use --force to overwrite existing.
Renew Certificate
jabali ssl:renew <domain>
Manually renews an existing certificate.
Check Certificate Status
jabali ssl:check [domain] [--issue-only] [--renew-only]
Validates all certificates or a specific domain. --issue-only checks for missing certs, --renew-only only for expiring certs.
List Certificates
jabali ssl:list [--json]
Shows all installed certificates and expiration dates.
Check Domain SSL Status
jabali ssl:status <domain>
Displays certificate details, chain, and expiration for a domain.
Panel Certificate
jabali ssl:panel [--json]
Shows the panel’s current SSL certificate status.
Issue Panel Certificate
jabali ssl:panel-issue [--json]
Issues a new certificate for the control panel itself.
DNS Management
List DNS Records
jabali dns:list [--json]
Shows all DNS records for all zones.
Zone Records
jabali dns:records <domain> [--type=] [--json]
Displays records for a specific domain. Filter by type (A, MX, CNAME, etc.) with --type=.
Add DNS Record
jabali dns:add <domain> <name> <type> <content> [--ttl=3600] [--priority=0]
Creates a new DNS record. Priority is used for MX records.
Delete DNS Record
jabali dns:delete-record <domain> <name> <type>
Removes a DNS record.
Sync Zone
jabali dns:sync <domain>
Synchronizes a zone from PowerDNS (useful after bulk imports).
Backup Management
Create Backup
jabali backup:create <username> [--json]
Initiates a new backup for a user’s home directory.
List Backups
jabali backup:list [--user=] [--json]
Shows available backup snapshots. Filter by user with --user=.
Backup Info
jabali backup:info <path> [--json]
Displays size, timestamp, and file count for a backup snapshot.
Restore Backup
jabali backup:restore <path> [--user=] [--json]
Restores files from a snapshot to a user’s home directory.
Delete Backup
jabali backup:delete <path>
Permanently removes a backup snapshot.
Backup Password
jabali backup:password [--set=]
Sets or changes the encryption password for new backups. Password is required for restore operations.
Cron Job Management
Create Cron Job
jabali cron:create [--user=] [--schedule=] [--command=] [--json]
Adds a scheduled task. Schedule uses standard crontab format (e.g., 0 2 * * *).
List Cron Jobs
jabali cron:list [--user=] [--json]
Shows all scheduled tasks for a user.
Run Cron Job
jabali cron:run <index> [--user=] [--json]
Manually executes a scheduled task (identified by index from list).
Delete Cron Job
jabali cron:delete <index> [--user=]
Removes a scheduled task.
Toggle Cron Job
jabali cron:toggle <index> [--user=] [--enable|--disable]
Enables or disables a cron job without deleting it.
PHP Version Management
List PHP Versions
jabali php:list [--json]
Shows all installed PHP versions.
Install PHP Version
jabali php:install <version>
Compiles and installs a specific PHP version (e.g., 8.3, 8.4).
Uninstall PHP Version
jabali php:uninstall <version>
Removes a PHP version from the system.
Set Default PHP Version
jabali php:default <version>
Sets the default PHP version for new domains.
Service Management
List Services
jabali service:list [--json]
Shows all monitored services and their status.
Start Service
jabali service:start <name>
Starts a stopped service.
Stop Service
jabali service:stop <name>
Stops a running service.
Restart Service
jabali service:restart <name>
Restarts a service.
Enable Service
jabali service:enable <name>
Enables automatic startup on boot.
Disable Service
jabali service:disable <name>
Disables automatic startup, service will stop on reboot.
Service Status
jabali service:status <name>
Displays current status, uptime, and memory usage.
System Information
System Status
jabali system:status [--json]
Overall system health: uptime, load average, service summary.
System Info
jabali system:info [--json]
Hardware and software inventory: OS, CPU, RAM, kernel version.
Disk Usage
jabali system:disk [--json]
Filesystem usage by partition and mount point.
Memory Usage
jabali system:memory [--json]
RAM and swap utilization with breakdown by component.
Set Hostname
jabali system:hostname [name] [--json]
Displays or updates system hostname.
Kill Process
jabali system:kill <pid> [--signal=TERM]
Terminates a process by PID. Use --signal=KILL for force termination.
WordPress Management
Install WordPress
jabali wp:install <domain> [--user=] [--title=] [--admin-user=] [--admin-email=] [--admin-password=] [--json]
Downloads and configures WordPress with optional site details.
List WordPress Installs
jabali wp:list [--user=] [--json]
Shows all WordPress installations, optionally filtered by user.
Update WordPress
jabali wp:update <domain>
Checks for and applies the latest WordPress core update.
Scan WordPress
jabali wp:scan <domain>
Scans for security issues, malware, and plugin vulnerabilities.
Delete WordPress
jabali wp:delete <domain>
Removes a WordPress installation while preserving the domain.
Import cPanel Backup
jabali wp:import <path> [--user=]
Restores WordPress and database from a cPanel backup file.
Agent Management
Agent Status
jabali agent:status [--json]
Displays agent health, version, and connectivity.
Agent Ping
jabali agent:ping [--json]
Tests connectivity to the privileged agent daemon.
Agent Log
jabali agent:log [--lines=50] [--json]
Shows recent agent operation log entries.
Agent Restart
jabali agent:restart [--json]
Restarts the privileged agent service. Use with caution.
Support & Diagnostics
Generate Diagnostic Report
jabali logs:share [--ttl=86400] [--raw] [--json]
Creates an encrypted diagnostic package with logs for support staff. Default TTL is 24 hours. --raw skips encryption.
One-Time Login Token
jabali login:token [--user=] [--ttl=15] [--panel=] [--json]
Generates a secure token for password-less panel login. TTL in minutes, panel is admin or user (default: user).
cPanel Migration
Analyze cPanel Backup
jabali cpanel:analyze <path>
Scans a cPanel backup file and reports importable content.
Restore cPanel Backup
jabali cpanel:restore <path> [--user=]
Imports users, domains, databases, and email from a cPanel backup.
Fix File Permissions
jabali cpanel:fix-permissions <username>
Repairs ownership and permissions after cPanel import.
Help
Show Help
jabali help
Displays available command categories and command syntax.
Common Options
All commands accept these global options:
| Option | Effect |
|---|---|
--json |
Output in JSON format for scripting |
--yes |
Skip confirmation prompts |
-v |
Verbose output |
-q |
Quiet mode (minimal output) |
Exit Codes
0— Success1— Command failed2— Invalid arguments3— Configuration error4— Permission denied