Create Hosting Package

Reached from Hosting Packages → Create. Defines a new bundle of quotas and limits that may then be assigned to users.

Required fields

  • Name — human-readable label (e.g. “Starter”, “Business”, “Reseller”).
  • Slug — URL-safe identifier; cannot be changed after creation.
  • Description — optional free text shown in the package list.

Quotas

  • Disk quota (MiB) — POSIX user quota on /home/<user>.
  • Bandwidth quota (GiB / month) — outbound traffic cap aggregated across the user’s vhosts.

Resource limits (cgroup v2 slice)

  • Memory limit (MiB) — wraps every process owned by the user. Setting this too low causes PHP-FPM workers to be killed under load.
  • CPU percentage — soft limit across all CPUs (100% = one full core; 200% = two cores).
  • Tasks max — upper bound on the number of processes the user may have running.

Request rate (per-vhost)

  • Requests per second — used in nginx limit_req_zone … for the user’s vhosts.
  • Burst — short-term allowance above the steady-state rate.

Caps

  • Maximum domains — refuse domain creation once exceeded.
  • Maximum mailboxes — refuse mailbox creation once exceeded.
  • Maximum databases — refuse database creation once exceeded.
  • Maximum cron jobs — refuse cron creation once exceeded.

PHP

  • Allowed PHP versions — subset of installed PHP versions. The user’s domain edit page only lists versions enabled here.
  • PHP-INI ceilings — maximum values the user may set for memory_limit, upload_max_filesize, etc. The user’s PHP Settings page clamps to these.

Applications

  • Allowed applications — subset of the 15-app registry the user may install one-click. Disabled apps remain installable by the admin on the user’s behalf.

Egress

  • Default-restricted — nftables ruleset allows :443 to anywhere plus mail submission to the panel’s mail host; everything else is dropped.
  • Unrestricted — outbound left open. Choose this only for trusted tenants.

Save

On submit, a single INSERT against packages. No reconciler action is needed until the first user is assigned.

CLI

jabali package create   --name "Starter"   --slug starter   --disk-quota-mib 5120   --bandwidth-quota-gib 100   --memory-limit-mib 512   --cpu-pct 25   --tasks-max 200   --req-per-sec 30   --req-burst 60   --max-domains 2   --max-mailboxes 10   --max-databases 3   --max-cron-jobs 5