Status

Live dashboard for core services on the host: state, CPU, RAM, and uptime, with one-click controls (start/stop/restart/reload). Access: root.

What it shows
  • Status — Active / Inactive / Failed / Not installed (from systemctl).
  • CPU / RAM — point-in-time % for the unit’s MainPID (via ps).
  • Uptime — time since the unit entered the “active” state (derived from ActiveEnterTimestamp).
How services are discovered
  • Reads services.yaml and builds a list of enabled components.
  • Special cases:
    • nginxapache: install=on → adds both apache and nginx.
    • database → adds mariadb, and phpmyadmin if enabled.
    • filetransfer → adds ftp plus helper daemons pure-certd and pure-authd; adds sftp if enabled.
    • mail → adds mail (Exim), dovecot, spamassassin, and roundcube if enabled.
    • Per-user PHP pools are intentionally omitted.
Unit mapping

Friendly names are mapped to systemd units, e.g. apache→httpd, nginx→nginx, mariadb→mariadb, ftp→pure-ftpd, mail→exim, etc.

Controls & refresh
  • Per-row actions: Start, Stop, Restart, Reload. Each runs systemctl <cmd> <unit> and then refreshes that row.
  • Refresh status (row) — re-polls a single service.
  • Refresh all — reloads the full table.
  • Badges: green = Active, red = Inactive/Failed, gray = Not installed, amber = other states.
How status is computed
  • Installed? systemctl list-unit-files … for the mapped unit.
  • State: systemctl is-active.
  • Main PID: systemctl show -p MainPIDps -p <pid> -o %cpu=,%mem=.
  • Uptime: systemctl show -p ActiveEnterTimestamp → human-readable elapsed time.
Notes & tips
  • “Not installed” can also mean “no unit file present for the mapped name.”
  • CPU/RAM reflect the main process only; auxiliary workers are not summed.
  • Some stacks run multiple units (e.g., FTP helpers); each is tracked individually.

Navigation