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.
jabali user:create <username> [--email=] [--password=] [--admin] [--force]Creates a new hosting account. The --admin flag grants administrative access. --force skips validation.
jabali user:delete <username>Removes a user account and all associated data. Requires confirmation.
jabali user:list [--json]Shows all hosting accounts on the system.
jabali user:show <username> [--json]Displays account details including quotas, domains, and suspension status.
jabali user:password <username> [--password=]Updates user account password. If --password is omitted, a secure prompt appears.
jabali user:suspend <username>Temporarily disables a user account. The account and its domains remain, but services are inaccessible.
jabali user:unsuspend <username>Reactivates a suspended user account.
jabali user:admin <identifier> [--revoke] [--force]Grants admin access to a user or revokes it with --revoke. The identifier can be username or email.
jabali domain:create <domain> [--user=]Adds a domain to the system. Assign to a user with --user=username, or leave unassigned.
jabali domain:delete <domain>Removes a domain and all associated files, emails, and DNS records.
jabali domain:enable <domain>
jabali domain:disable <domain>Toggles domain accessibility without deleting data. Disabled domains respond with HTTP 410.
jabali domain:list [--user=]Shows all domains. Filter by user with --user=username.
jabali domain:show <domain> [--json]Displays configuration, SSL status, FTP users, and current resource usage.
jabali db:create <name> [--user=]Creates a new MySQL database.
jabali db:delete <name>Permanently removes a database. Requires confirmation.
jabali db:list [--user=]Shows all databases, optionally filtered by user.
jabali db:user-create <name> [--password=] [--database=]Creates a database user with optional assignment to a specific database.
jabali db:user-delete <name>Removes a database user. Databases owned by this user are not affected.
jabali db:users [--json]Shows all database users and their privilege assignments.
jabali db:tune <variable> <value> [--persist]Adjusts MySQL configuration variables at runtime. Use --persist to write to my.cnf.
jabali mail:create <email> [--password=] [--quota=]Creates a mailbox with optional quota (e.g., 1GB, 500MB). Default is unlimited.
jabali mail:delete <email>Removes a mailbox and all messages.
jabali mail:password <email> [--password=]Updates mailbox password.
jabali mail:quota <email> [--size=]Adjusts storage quota for a mailbox (e.g., 2GB). Omit to set unlimited.
jabali mail:list [--domain=]Shows all mailboxes, optionally filtered by domain.
jabali mail:log [--lines=50] [--domain=] [--type=]Displays recent mail server activity. Filter by domain and log type (e.g., smtp, delivery).
jabali mail:queue [--json]Shows messages pending delivery.
jabali mail:queue-retry [id] [--all]Retries a specific message or all queued messages.
jabali mail:queue-delete <id>Permanently removes a queued message.
jabali ssl:issue <domain> [--force]Requests a new certificate from Let's Encrypt. Use --force to overwrite existing.
jabali ssl:renew <domain>Manually renews an existing certificate.
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.
jabali ssl:list [--json]Shows all installed certificates and expiration dates.
jabali ssl:status <domain>Displays certificate details, chain, and expiration for a domain.
jabali ssl:panel [--json]Shows the panel's current SSL certificate status.
jabali ssl:panel-issue [--json]Issues a new certificate for the control panel itself.
jabali dns:list [--json]Shows all DNS records for all zones.
jabali dns:records <domain> [--type=] [--json]Displays records for a specific domain. Filter by type (A, MX, CNAME, etc.) with --type=.
jabali dns:add <domain> <name> <type> <content> [--ttl=3600] [--priority=0]Creates a new DNS record. Priority is used for MX records.
jabali dns:delete-record <domain> <name> <type>Removes a DNS record.
jabali dns:sync <domain>Synchronizes a zone from PowerDNS (useful after bulk imports).
jabali cron:create [--user=] [--schedule=] [--command=] [--json]Adds a scheduled task. Schedule uses standard crontab format (e.g., 0 2 * * *).
jabali cron:list [--user=] [--json]Shows all scheduled tasks for a user.
jabali cron:run <index> [--user=] [--json]Manually executes a scheduled task (identified by index from list).
jabali cron:delete <index> [--user=]Removes a scheduled task.
jabali cron:toggle <index> [--user=] [--enable|--disable]Enables or disables a cron job without deleting it.
jabali php:list [--json]Shows all installed PHP versions.
jabali php:install <version>Compiles and installs a specific PHP version (e.g., 8.3, 8.4).
jabali php:uninstall <version>Removes a PHP version from the system.
jabali php:default <version>Sets the default PHP version for new domains.
jabali service:list [--json]Shows all monitored services and their status.
jabali service:start <name>Starts a stopped service.
jabali service:stop <name>Stops a running service.
jabali service:restart <name>Restarts a service.
jabali service:enable <name>Enables automatic startup on boot.
jabali service:disable <name>Disables automatic startup, service will stop on reboot.
jabali service:status <name>Displays current status, uptime, and memory usage.
jabali system:status [--json]Overall system health: uptime, load average, service summary.
jabali system:info [--json]Hardware and software inventory: OS, CPU, RAM, kernel version.
jabali system:disk [--json]Filesystem usage by partition and mount point.
jabali system:memory [--json]RAM and swap utilization with breakdown by component.
jabali system:hostname [name] [--json]Displays or updates system hostname.
jabali system:kill <pid> [--signal=TERM]Terminates a process by PID. Use --signal=KILL for force termination.
jabali wp:install <domain> [--user=] [--title=] [--admin-user=] [--admin-email=] [--admin-password=] [--json]Downloads and configures WordPress with optional site details.
jabali wp:list [--user=] [--json]Shows all WordPress installations, optionally filtered by user.
jabali wp:update <domain>Checks for and applies the latest WordPress core update.
jabali wp:scan <domain>Scans for security issues, malware, and plugin vulnerabilities.
jabali wp:delete <domain>Removes a WordPress installation while preserving the domain.
jabali wp:import <path> [--user=]Restores WordPress and database from a cPanel backup file.
jabali cgroup check [--json]Verifies cgroups v2 is available on the server. Reports version and available controllers.
jabali cgroup apply <username> [--all] [--json]Creates or updates the systemd slice for a user based on their effective resource limits (user override or hosting package defaults). Use --all to apply limits to all users with configured limits.
jabali cgroup status <username> [--json]Displays live resource usage vs limits for a user: CPU time, memory used/limit, process count, and I/O bytes.
jabali agent:status [--json]Displays agent health, version, and connectivity.
jabali agent:ping [--json]Tests connectivity to the privileged agent daemon.
jabali agent:log [--lines=50] [--json]Shows recent agent operation log entries.
jabali agent:restart [--json]Restarts the privileged agent service. Use with caution.
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.
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).
jabali cpanel:analyze <path>Scans a cPanel backup file and reports importable content.
jabali cpanel:restore <path> [--user=]Imports users, domains, databases, and email from a cPanel backup.
jabali cpanel:fix-permissions <username>Repairs ownership and permissions after cPanel import.
jabali helpDisplays available command categories and command syntax.
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) |
0— Success1— Command failed2— Invalid arguments3— Configuration error4— Permission denied