Commits

462ee9ee7de241dcb405ea9786f300b4bb323164
Switch branches/tags

Commits on May 10, 2026

  1. 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
  2. Matthew Forrester Wolffe committed
  3. Merge pull request #40 from tenseleyFlow/chore/droplet-drift-audit-script
    audit: read-only droplet-drift checker (issue #38)
    Matthew Forrester Wolffe committed
  4. espadonne committed
  5. espadonne committed
  6. espadonne committed
  7. espadonne committed
  8. 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
  9. espadonne committed
  10. espadonne committed
  11. Merge pull request #37 from tenseleyFlow/docs/env-backup-runbook
    docs(runbook): operator backup of /etc/shithub/web.env
    Matthew Forrester Wolffe committed
  12. Merge pull request #36 from tenseleyFlow/chore/db-migration-runbook
    docs(runbook): pgdata migration from root disk to block volume
    Matthew Forrester Wolffe committed
  13. Matthew Forrester Wolffe committed
  14. Merge pull request #34 from tenseleyFlow/fix/metrics-route-bypass-compress
    web: bypass Compress middleware on /metrics (closes #33)
    Matthew Forrester Wolffe committed
  15. 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
  16. espadonne committed
  17. Merge pull request #32 from tenseleyFlow/fix/alloy-enable-compression-false
    fix(monitoring): alloy enable_compression=false + manual install runbook fallback
    Matthew Forrester Wolffe committed
  18. Merge pull request #31 from tenseleyFlow/fix/runbook-prom-url-example
    docs(observability): refresh step 3 + URL placeholder for current Grafana UI
    Matthew Forrester Wolffe committed
  19. espadonne committed
  20. Matthew Forrester Wolffe committed
  21. Matthew Forrester Wolffe committed