TUI SSH monitor for Caddy web server logs
History was effectively frozen: the find pattern 'access.log*' never matched Caddy's native rotation naming (access-<ts>.log.gz), so rotated files were invisible and the server-side cache - invalidated only by new .gz files - never refreshed after the first load. - match both Caddy native (access-*.log.gz) and logrotate (access.log.N) rotation naming - cache aggregation per rotated file (immutable, scanned exactly once); always scan the current log fresh, so history never goes stale - always bucket hourly on the server, re-bucket client-side so all tabs share the same caches - cap IPs at top 50 per file so output stays small on busy servers - aggregate request duration so history shows real avg response time - tail -F instead of -f: Caddy rotates by rename, which silently killed the live stream at every rotation on high-traffic servers - process live lines in batches instead of one Update cycle per line - fetch CPU/MEM stats every 5s instead of every second - stable sort in topN: equal counts no longer flicker and swap rows - drop the 1 Month tab (Live / 1 Day / 1 Week remain) - retro green-phosphor CRT look: double borders, ▓░ bars, amber accents Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| cmd | ||
| internal | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||