Competitive Intelligence

logs/2026-06-29-ci-dashboard-public-dns.md

CI Dashboard Public DNS

date: 2026-06-29 system: MyOS-Core / Competitive Intelligence

Decision

Serve the Competitive Intelligence dashboard under https://ci.chowmes.com/ from Chowmes, not from the stale Vercel deployment path.

What changed

  • Added Hostinger DNS record: A ci -> 72.61.72.147, TTL 300.
  • Added ci.chowmes.com to the Chowmes Caddyfile.
  • Added systemd service ci-dashboard-static.service.
  • The service binds only to 127.0.0.1:8662.
  • Caddy is the only public ingress and proxies ci.chowmes.com to that loopback service.
  • Static files are served from /root/.hermes/apps/algolia-competitive-intelligence/apps/dashboard/public.

Why

The CI pipeline had fresh dashboard assets in the Chowmes app repo and GitHub main, but Vercel production was serving an older generated timestamp and a manual production deploy stalled with status UNKNOWN. Serving the static dashboard directly from Chowmes removes Vercel deployment lag from the operator path.

Verification

  • dig @athena.dns-parking.com ci.chowmes.com A returned 72.61.72.147.
  • dig @apollo.dns-parking.com ci.chowmes.com A returned 72.61.72.147.
  • dig @1.1.1.1 ci.chowmes.com A returned 72.61.72.147.
  • dig @8.8.8.8 ci.chowmes.com A returned 72.61.72.147.
  • curl -I https://ci.chowmes.com/ returned HTTP 200.
  • curl https://ci.chowmes.com/data/latest.json returned generated_at=2026-06-29T19:31:08.
  • TLS certificate subject is CN=ci.chowmes.com, issuer Let's Encrypt.
  • ci-dashboard-static.service is enabled and active.
  • Caddy config validation passed.

Boundary

Do not expose the Hermes admin dashboard publicly. The public DNS route is for the static CI dashboard only.