# Config Page — Session Reference Created: 2026-07-08 File: `/var/www/ops/config.html` Domain: `ops.itpropartner.com` ## Page structure (4 cards) ### 1. Versions Grid of version cards showing software versions. Populated from live API (`data.versions`) with embedded fallbacks: | Component | Embedded | API-override | |-----------|----------|-------------| | Hermes | v0.18.0 | data.versions.hermes | | Caddy | v2.11.4 | data.versions.caddy | | Python | 3.13.5 | data.versions.python | | Docker | 26.1.5 | data.versions.docker | | OS | Debian 13.5 | data.versions.os | ### 2. Active Config Files Table of key config files that are part of the hermetic backup: | Path | Size | Modified | Backed Up | |------|------|----------|-----------| | /etc/caddy/Caddyfile | 2.8 KB | 2026-07-08 | ✓ | | /root/.hermes/config.yaml | 3.3 KB | 2026-07-08 | ✓ | | /etc/systemd/system/hermes-assistant.service | 295 B | 2026-07-08 | ✓ | | /etc/systemd/system/hermes-browser.service | 495 B | 2026-07-07 | ✓ | | /root/.hermes/scripts/ | 592 KB (51 files) | — | ✓ | All backed up via `hermes-backup.sh` → Wasabi S3 (`hermes-vps-backups`). ### 3. Environment Grid of system attributes (hostname, OS, kernel, uptime, CPU, memory, disk, Docker). ### 4. Infrastructure Diagram Link card pointing to `/dependency-diagram.html` (teal-accented) — placeholder for future dependency diagram. ## Static data + API fallback architecture The config page is the first ops portal page to use **embedded static data** rather than relying solely on the API. Rationale: - File system stats (size, modified time, backup status) are not provided by the ops-data-collector - These change infrequently — rebuilding the HTML is acceptable - The page works fully when the API is offline (embedded data is always shown) **Render sequence:** 1. Embedded `CONFIG_FILES` array → config files table (immediate) 2. Embedded `ENV_DATA` object → environment grid (immediate) 3. Embedded `VERSIONS_EMBEDDED` object → version cards (immediate) 4. API fetch → overrides version cards with live data (async) 5. API failure → embedded versions remain, non-fatal ## Embedded data categories for this page ### CONFIG_FILES (static, from file system stats) - path, size, size_bytes, modified (ISO timestamp), backed_up (bool), backup_desc ### ENV_DATA (static, from live system) - hostname, os, kernel, uptime, cpu, memory, disk, docker, hermes_path ### VERSIONS_EMBEDDED (fallback from live system) - hermes, caddy, python, os, docker ## Design details - File paths rendered in monospace (``) - Backup status badges: green ✓ Yes / red ✗ No - Version cards centered with uppercase labels, large value text - Environment grid: 1-col mobile → 2-col tablet → 3-col desktop - Shared stylesheet (`/css/ops.css`) referenced — no inline duplication - Shared nav injected from `/nav.html` - File mode fixed to 644 after creation ## Rebuilding To regenerate this page with updated embedded data: 1. SSH into core 2. Gather current file stats (size, timestamps) via `stat` 3. Gather current system info (uptime, versions, disk, memory) via `df -h`, `free -h`, `hostname`, `cat /proc/uptime` 4. Update the `CONFIG_FILES`, `ENV_DATA`, and `VERSIONS_EMBEDDED` objects in the HTML 5. `chmod 644 /var/www/ops/config.html`