Users
Last updated
/jabali-admin/users. The list and lifecycle controls for every panel user (administrators and hosting customers).
What is a User
A panel user combines several pieces of state:
- A Kratos identity (email, password credential, optional TOTP).
- A row in the panel
userstable (display name, role, package assignment, suspension flags). - A Linux account under
/home/<username>with disabled shell login (used by SFTP, PHP-FPM, per-user cron, and per-user egress firewall slice). - A per-user PHP-FPM pool socket at
/run/php/jabali-<username>/fpm.sock.
The reconciler converges Linux account state, PHP pool drop-ins, quota assignments, and slice limits from the users table on each tick.
List
Columns: username, email, role (admin / user), package, domains, disk used / quota, suspended flag, last login.
Filters: by role, by package, by suspension state, by free-text search across email + username + primary domain.
Actions per row
- Edit: opens Edit User.
- Reset password: generates a new password (shown once); writes a Kratos credential update.
- Reset 2FA: strips TOTP and recovery codes; the user must re-enrol on next login.
- Suspend: sets
users.is_suspended=1; the reconciler returns a “suspended” page on every vhost owned by the user. - Delete: destructive; removes domains, databases, mailboxes, OS account,
/home/<user>, and all related rows.
Create
Top-right Create User button opens Create User.
CLI parity
Every operation here has a CLI equivalent:
jabali user list
jabali user create --username … --email … --package … --primary-domain …
jabali user password <email>
jabali user 2fa-reset <email>
jabali user delete <email>
Direct-DB path (M20-safe); bypasses the HTTP layer, runs from the panel host.
Audit
Every action above writes an audit row: actor user, subject user, action, result. See Audit Log.