83 lines
3.3 KiB
Markdown
83 lines
3.3 KiB
Markdown
# 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 (`<span class="mono">`)
|
|
- 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`
|