Commits

7f720eefce227f02724400581e2180afa0a84838
Switch branches/tags

Commits on May 10, 2026

  1. espadonne committed
  2. Merge pull request #43 from tenseleyFlow/fix/metrics-disable-promhttp-gzip
    metrics: DisableCompression on promhttp.HandlerOpts + pin in tests
    Matthew Forrester Wolffe committed
  3. espadonne committed
  4. Merge pull request #42 from tenseleyFlow/fix/aide-rebaseline-runbook
    docs(aide): re-baseline via aide --init, not aideinit (interactive trap)
    Matthew Forrester Wolffe committed
  5. Matthew Forrester Wolffe committed
  6. Merge pull request #40 from tenseleyFlow/chore/droplet-drift-audit-script
    audit: read-only droplet-drift checker (issue #38)
    Matthew Forrester Wolffe committed
  7. espadonne committed
  8. espadonne committed
  9. espadonne committed
  10. espadonne committed
  11. audit: read-only droplet-drift checker (issue #38)
    Compares md5 of every file the ansible roles install against the
    live droplet over a single ssh round-trip. TEMPLATE rows (those
    rendered from .j2 with inventory vars) are reported with stat
    info but not auto-diffed.
    
    Run after any PR that touches deploy/ansible/ to surface what
    needs to be pushed manually until we resolve the broader ansible
    ownership question (issue #38).
    espadonne committed
  12. espadonne committed
  13. espadonne committed
  14. Merge pull request #37 from tenseleyFlow/docs/env-backup-runbook
    docs(runbook): operator backup of /etc/shithub/web.env
    Matthew Forrester Wolffe committed
  15. Merge pull request #36 from tenseleyFlow/chore/db-migration-runbook
    docs(runbook): pgdata migration from root disk to block volume
    Matthew Forrester Wolffe committed
  16. Matthew Forrester Wolffe committed
  17. Merge pull request #34 from tenseleyFlow/fix/metrics-route-bypass-compress
    web: bypass Compress middleware on /metrics (closes #33)
    Matthew Forrester Wolffe committed
  18. web: bypass Compress middleware on /metrics
    Prometheus scrapers advertise Accept-Encoding: gzip, but Alloy 1.16
    mis-handles Content-Encoding: gzip on responses — it parses the raw
    0x1f magic byte as text and silently drops the scrape (up=0).
    
    Mount /metrics on the bare router so only global middleware applies
    (request_id, access_log, metrics, secure_headers). Adds regression
    test that asserts no Content-Encoding header when scraper sends
    Accept-Encoding: gzip.
    
    Closes #33.
    espadonne committed