604 lines
15 KiB
YAML
604 lines
15 KiB
YAML
# Jabali Agent Functions Reference
|
|
# Communication via Unix socket: /var/run/jabali/agent.sock
|
|
# Request format: {"action": "category.action", "params": {...}}
|
|
|
|
user:
|
|
create:
|
|
description: Create a new system user
|
|
params:
|
|
username: string (required) - Lowercase alphanumeric, max 32 chars
|
|
password: string (optional) - If not provided, generates random
|
|
returns: {success: bool, username: string, home: string}
|
|
|
|
delete:
|
|
description: Delete a system user and their data
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool}
|
|
|
|
exists:
|
|
description: Check if user exists
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, exists: bool}
|
|
|
|
password:
|
|
description: Set user password
|
|
params:
|
|
username: string (required)
|
|
password: string (required)
|
|
returns: {success: bool}
|
|
|
|
domain:
|
|
create:
|
|
description: Create a new domain with nginx vhost
|
|
params:
|
|
username: string (required)
|
|
domain: string (required) - Valid domain name
|
|
php_version: string (optional) - e.g., "8.4"
|
|
returns: {success: bool, domain: string, document_root: string}
|
|
|
|
delete:
|
|
description: Delete a domain
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
list:
|
|
description: List domains for a user
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, domains: array}
|
|
|
|
toggle:
|
|
description: Enable/disable a domain
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
enabled: bool (required)
|
|
returns: {success: bool}
|
|
|
|
wp:
|
|
install:
|
|
description: Install WordPress
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional) - Subdirectory, default ""
|
|
title: string (required)
|
|
admin_user: string (required)
|
|
admin_password: string (required)
|
|
admin_email: string (required)
|
|
enable_auto_update: bool (optional) - Default false
|
|
returns: {success: bool, url: string}
|
|
|
|
list:
|
|
description: List WordPress installations
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, installations: array}
|
|
|
|
delete:
|
|
description: Delete WordPress installation
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
returns: {success: bool}
|
|
|
|
auto_login:
|
|
description: Generate auto-login URL
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
returns: {success: bool, url: string}
|
|
|
|
update:
|
|
description: Update WordPress core
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
returns: {success: bool, version: string}
|
|
|
|
scan:
|
|
description: Security scan via WPScan API
|
|
params:
|
|
url: string (required)
|
|
returns: {success: bool, vulnerabilities: array, plugins: array}
|
|
|
|
toggle_debug:
|
|
description: Toggle WP_DEBUG mode
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
enabled: bool (required)
|
|
returns: {success: bool, debug_enabled: bool}
|
|
|
|
toggle_auto_update:
|
|
description: Toggle auto-updates
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
enabled: bool (required)
|
|
returns: {success: bool, auto_update: bool}
|
|
|
|
create_staging:
|
|
description: Create staging environment
|
|
params:
|
|
username: string (required)
|
|
domain: string (required)
|
|
path: string (optional)
|
|
staging_subdomain: string (required) - e.g., "staging"
|
|
returns: {success: bool, staging_url: string}
|
|
|
|
email:
|
|
enable_domain:
|
|
description: Enable email for a domain
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
disable_domain:
|
|
description: Disable email for a domain
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
generate_dkim:
|
|
description: Generate DKIM keys for domain
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool, dkim_record: string}
|
|
|
|
mailbox_create:
|
|
description: Create an email mailbox
|
|
params:
|
|
domain: string (required)
|
|
username: string (required) - Local part of email
|
|
password: string (required)
|
|
quota: int (optional) - MB, default 1024
|
|
returns: {success: bool, email: string}
|
|
|
|
mailbox_delete:
|
|
description: Delete a mailbox
|
|
params:
|
|
domain: string (required)
|
|
username: string (required)
|
|
returns: {success: bool}
|
|
|
|
mailbox_change_password:
|
|
description: Change mailbox password
|
|
params:
|
|
domain: string (required)
|
|
username: string (required)
|
|
password: string (required)
|
|
returns: {success: bool}
|
|
|
|
forwarder_create:
|
|
description: Create email forwarder
|
|
params:
|
|
domain: string (required)
|
|
source: string (required) - Local part or full address
|
|
destination: string (required) - Comma-separated destinations
|
|
returns: {success: bool}
|
|
|
|
mysql:
|
|
list_databases:
|
|
description: List databases for a user
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, databases: array}
|
|
|
|
create_database:
|
|
description: Create a new database
|
|
params:
|
|
username: string (required)
|
|
database: string (required)
|
|
returns: {success: bool, database: string}
|
|
|
|
delete_database:
|
|
description: Delete a database
|
|
params:
|
|
username: string (required)
|
|
database: string (required)
|
|
returns: {success: bool}
|
|
|
|
create_user:
|
|
description: Create a database user
|
|
params:
|
|
username: string (required) - DB username
|
|
password: string (required)
|
|
host: string (optional) - Default "localhost"
|
|
returns: {success: bool}
|
|
|
|
grant_privileges:
|
|
description: Grant privileges to user
|
|
params:
|
|
username: string (required)
|
|
database: string (required)
|
|
privileges: array (optional) - Default ALL
|
|
returns: {success: bool}
|
|
|
|
import_database:
|
|
description: Import SQL file
|
|
params:
|
|
username: string (required)
|
|
database: string (required)
|
|
file: string (required) - Path to SQL file
|
|
returns: {success: bool}
|
|
|
|
export_database:
|
|
description: Export database to file
|
|
params:
|
|
username: string (required)
|
|
database: string (required)
|
|
file: string (required) - Output path
|
|
returns: {success: bool}
|
|
|
|
ssl:
|
|
check:
|
|
description: Check SSL certificate status
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool, valid: bool, expires: string, issuer: string}
|
|
|
|
issue:
|
|
description: Issue Let's Encrypt certificate
|
|
params:
|
|
domain: string (required)
|
|
email: string (required)
|
|
returns: {success: bool, expires: string}
|
|
|
|
install:
|
|
description: Install custom certificate
|
|
params:
|
|
domain: string (required)
|
|
cert: string (required) - PEM certificate
|
|
key: string (required) - Private key
|
|
chain: string (optional) - CA chain
|
|
returns: {success: bool}
|
|
|
|
renew:
|
|
description: Renew certificate
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
backup:
|
|
create:
|
|
description: Create user backup
|
|
params:
|
|
username: string (required)
|
|
include_databases: bool (optional) - Default true
|
|
include_email: bool (optional) - Default true
|
|
returns: {success: bool, backup_file: string, size: int}
|
|
|
|
restore:
|
|
description: Restore from backup
|
|
params:
|
|
username: string (required)
|
|
backup_file: string (required)
|
|
returns: {success: bool}
|
|
|
|
list:
|
|
description: List backups for user
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, backups: array}
|
|
|
|
delete:
|
|
description: Delete a backup
|
|
params:
|
|
backup_file: string (required)
|
|
returns: {success: bool}
|
|
|
|
dns:
|
|
create_zone:
|
|
description: Create DNS zone file
|
|
params:
|
|
domain: string (required)
|
|
ip: string (required) - Primary IP
|
|
ns1: string (optional) - Nameserver 1
|
|
ns2: string (optional) - Nameserver 2
|
|
returns: {success: bool}
|
|
|
|
sync_zone:
|
|
description: Sync zone from database records
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
delete_zone:
|
|
description: Delete DNS zone
|
|
params:
|
|
domain: string (required)
|
|
returns: {success: bool}
|
|
|
|
reload:
|
|
description: Reload BIND configuration
|
|
params: {}
|
|
returns: {success: bool}
|
|
|
|
service:
|
|
list:
|
|
description: List managed services
|
|
params: {}
|
|
returns: {success: bool, services: array}
|
|
|
|
start:
|
|
description: Start a service
|
|
params:
|
|
service: string (required)
|
|
returns: {success: bool}
|
|
|
|
stop:
|
|
description: Stop a service
|
|
params:
|
|
service: string (required)
|
|
returns: {success: bool}
|
|
|
|
restart:
|
|
description: Restart a service
|
|
params:
|
|
service: string (required)
|
|
returns: {success: bool}
|
|
|
|
status:
|
|
description: Get service status
|
|
params:
|
|
service: string (required)
|
|
returns: {success: bool, running: bool, enabled: bool}
|
|
|
|
ufw:
|
|
status:
|
|
description: Get firewall status
|
|
params: {}
|
|
returns: {success: bool, enabled: bool, default_policy: string}
|
|
|
|
list_rules:
|
|
description: List firewall rules
|
|
params: {}
|
|
returns: {success: bool, rules: array}
|
|
|
|
allow_port:
|
|
description: Allow a port
|
|
params:
|
|
port: int (required)
|
|
protocol: string (optional) - tcp/udp, default both
|
|
returns: {success: bool}
|
|
|
|
deny_port:
|
|
description: Deny a port
|
|
params:
|
|
port: int (required)
|
|
returns: {success: bool}
|
|
|
|
allow_ip:
|
|
description: Allow an IP address
|
|
params:
|
|
ip: string (required)
|
|
returns: {success: bool}
|
|
|
|
deny_ip:
|
|
description: Deny an IP address
|
|
params:
|
|
ip: string (required)
|
|
returns: {success: bool}
|
|
|
|
file:
|
|
list:
|
|
description: List directory contents
|
|
params:
|
|
username: string (required)
|
|
path: string (required)
|
|
returns: {success: bool, files: array}
|
|
|
|
read:
|
|
description: Read file contents
|
|
params:
|
|
username: string (required)
|
|
path: string (required)
|
|
returns: {success: bool, content: string}
|
|
|
|
write:
|
|
description: Write file
|
|
params:
|
|
username: string (required)
|
|
path: string (required)
|
|
content: string (required)
|
|
returns: {success: bool}
|
|
|
|
delete:
|
|
description: Delete file or directory
|
|
params:
|
|
username: string (required)
|
|
path: string (required)
|
|
returns: {success: bool}
|
|
|
|
extract:
|
|
description: Extract archive
|
|
params:
|
|
username: string (required)
|
|
path: string (required) - Archive path
|
|
destination: string (optional) - Extract destination
|
|
returns: {success: bool}
|
|
|
|
ssh:
|
|
list_keys:
|
|
description: List authorized SSH keys
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, keys: array}
|
|
|
|
add_key:
|
|
description: Add SSH public key
|
|
params:
|
|
username: string (required)
|
|
key: string (required) - Public key content
|
|
name: string (optional) - Key name/comment
|
|
returns: {success: bool}
|
|
|
|
delete_key:
|
|
description: Remove SSH key
|
|
params:
|
|
username: string (required)
|
|
fingerprint: string (required)
|
|
returns: {success: bool}
|
|
|
|
enable_shell:
|
|
description: Enable shell access for user
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool}
|
|
|
|
disable_shell:
|
|
description: Disable shell access (set to /bin/false)
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool}
|
|
|
|
cron:
|
|
list:
|
|
description: List cron jobs
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, jobs: array}
|
|
|
|
create:
|
|
description: Create cron job
|
|
params:
|
|
username: string (required)
|
|
minute: string (required)
|
|
hour: string (required)
|
|
day: string (required)
|
|
month: string (required)
|
|
weekday: string (required)
|
|
command: string (required)
|
|
returns: {success: bool}
|
|
|
|
delete:
|
|
description: Delete cron job
|
|
params:
|
|
username: string (required)
|
|
id: int (required)
|
|
returns: {success: bool}
|
|
|
|
toggle:
|
|
description: Enable/disable cron job
|
|
params:
|
|
username: string (required)
|
|
id: int (required)
|
|
enabled: bool (required)
|
|
returns: {success: bool}
|
|
|
|
php:
|
|
list_versions:
|
|
description: List installed PHP versions
|
|
params: {}
|
|
returns: {success: bool, versions: array, default: string}
|
|
|
|
install:
|
|
description: Install PHP version
|
|
params:
|
|
version: string (required) - e.g., "8.3"
|
|
returns: {success: bool}
|
|
|
|
uninstall:
|
|
description: Uninstall PHP version
|
|
params:
|
|
version: string (required)
|
|
returns: {success: bool}
|
|
|
|
set_default:
|
|
description: Set default PHP version
|
|
params:
|
|
version: string (required)
|
|
returns: {success: bool}
|
|
|
|
reload_fpm:
|
|
description: Reload PHP-FPM for version
|
|
params:
|
|
version: string (required)
|
|
returns: {success: bool}
|
|
|
|
restart_fpm:
|
|
description: Reload PHP-FPM for version (legacy alias)
|
|
params:
|
|
version: string (required)
|
|
returns: {success: bool}
|
|
|
|
metrics:
|
|
overview:
|
|
description: Get system overview
|
|
params: {}
|
|
returns: {success: bool, cpu: object, memory: object, disk: object, uptime: string}
|
|
|
|
cpu:
|
|
description: Get CPU usage
|
|
params: {}
|
|
returns: {success: bool, usage: float, cores: int, load: array}
|
|
|
|
memory:
|
|
description: Get memory usage
|
|
params: {}
|
|
returns: {success: bool, total: int, used: int, free: int, percent: float}
|
|
|
|
disk:
|
|
description: Get disk usage
|
|
params: {}
|
|
returns: {success: bool, filesystems: array}
|
|
|
|
processes:
|
|
description: Get top processes
|
|
params:
|
|
limit: int (optional) - Default 10
|
|
returns: {success: bool, processes: array}
|
|
|
|
quota:
|
|
status:
|
|
description: Get quota system status
|
|
params: {}
|
|
returns: {success: bool, enabled: bool}
|
|
|
|
enable:
|
|
description: Enable disk quotas
|
|
params: {}
|
|
returns: {success: bool}
|
|
|
|
set:
|
|
description: Set user quota
|
|
params:
|
|
username: string (required)
|
|
soft: int (required) - Soft limit in MB
|
|
hard: int (required) - Hard limit in MB
|
|
returns: {success: bool}
|
|
|
|
get:
|
|
description: Get user quota usage
|
|
params:
|
|
username: string (required)
|
|
returns: {success: bool, used: int, soft: int, hard: int}
|
|
|
|
clamav:
|
|
status:
|
|
description: Get ClamAV status
|
|
params: {}
|
|
returns: {success: bool, installed: bool, running: bool, signatures: int}
|
|
|
|
scan:
|
|
description: Scan path for malware
|
|
params:
|
|
path: string (required)
|
|
recursive: bool (optional) - Default true
|
|
returns: {success: bool, infected_files: array, scanned: int}
|
|
|
|
update_signatures:
|
|
description: Update virus signatures
|
|
params: {}
|
|
returns: {success: bool}
|