Files
kb-anhonesthost/tools/screenshots/shots.config.ts
Josh c602b8f8f3 docs: verify against real WHP + capture real screenshots
Discovery against the demo account on whp01 surfaced several inaccuracies:

- Cache is Valkey (Redis wire-compatible), not Redis or Memcached.
  No Memcached is offered as a separate service.
- Site Monitoring is the sidebar label (not 'AI Monitor').
- 'Add a domain' has no Primary/Add-on distinction.
- Sites form: 'Container Type' (not 'Site type'), Number of Containers
  (1-10 for horizontal scaling), CPU per Container (default 0.25),
  Memory per Container (default 256MB), SSL inline on the same form.
- Backups: default retention 5 days / 10 backups; on-demand + scheduled;
  S3 backup targets are visible and configurable.
- Email: per-domain settings live behind 'Setup Instructions' on the
  Email page; mail server hostname is on the Dashboard (per-server,
  e.g. mail01.cloud-hosting.io), not per-domain.

Also reworked the screenshot pipeline:
- New shots.config.ts targets the real index.php?page=... URLs
- Added redactSensitive() step that runs before each screenshot to swap
  server names, IPs, mail hostnames, and demo-user-isms with neutral
  placeholders. This keeps docs portable across the fleet.
- Hides .brand-full and .navbar-text (top-bar server identifier and
  Welcome greeting).
- Captured 9 real WHP screenshots; removed stale placeholders.
2026-05-17 17:00:13 -07:00

33 lines
1.4 KiB
TypeScript

export type Shot = {
/** Stable filename id; output is src/assets/screenshots/whp/<id>.png */
id: string;
/** Path on the WHP host. Leading slash, no scheme/host. */
path: string;
/** Optional CSS selector to clip to a region instead of the full viewport */
selector?: string;
/** Optional list of selectors to redact (account ID, IPs, etc.) before snapshot */
mask?: string[];
/** Defaults: 1440x900 */
viewport?: { width: number; height: number };
/** Optional selector to wait for before capturing */
waitFor?: string;
};
/** Always-applied redactions. Per-shot mask is added on top of this list. */
export const DEFAULT_MASK: string[] = [
// Conservative defaults — the actual selectors may differ; verify by inspecting
// a captured shot and adding more selectors here if anything leaks.
];
export const shots: Shot[] = [
{ id: 'whp-dashboard', path: '/index.php?page=dashboard' },
{ id: 'whp-domains', path: '/index.php?page=domains' },
{ id: 'whp-sites', path: '/index.php?page=sites' },
{ id: 'whp-email', path: '/index.php?page=email-management' },
{ id: 'whp-backups', path: '/index.php?page=backups' },
{ id: 'whp-site-monitoring', path: '/index.php?page=ai-monitor-customer' },
{ id: 'whp-mysql', path: '/index.php?page=database-management' },
{ id: 'whp-postgres', path: '/index.php?page=postgresql-management' },
{ id: 'whp-valkey', path: '/index.php?page=account-valkey' },
];