adamwolfe2 cuts Mike loose from a single-vendor stack

You no longer need a Cloudflare account just to run this fork - Supabase will do.

infrastructureintegration

Until now, running this fork meant committing to Cloudflare's file-storage service to hold documents. adamwolfe2 added a second option - Supabase Storage, the storage arm of a popular all-in-one backend platform - switchable with a single setting. Operators who already run on Supabase no longer have to provision a separate Cloudflare account just to store files.

The same change packages the fork for deployment on Fly.io, a hosting service, sized deliberately so document conversion doesn't run the machine out of memory - a fix informed by an earlier service that buckled under the same load. There's also a new internal entry point, locked behind its own service-level key, that lets a companion tool request document reviews machine-to-machine rather than through a logged-in user.

So what Legal-ops teams self-hosting Mike now get to pick their storage and hosting vendors instead of inheriting someone else's.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from adamwolfe2/mike-amcollective, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
cb876234 feat: add Fly deploy config, /review endpoint, and Supabase S3 support adamwolfe2 2026-04-30 ↗ GitHub
commit body
- Dockerfile: Node 22-slim + LibreOffice apt (mirrors nixpacks.toml config)
- fly.toml: mike-backend-amcollective, shared-cpu-1x @ 512MB, region iad
- routes/review.ts: POST /review - stateless doc review via Claude Haiku
  Fetches URL, extracts text (pdfjs/mammoth, same pattern as chatTools.ts),
  returns {summary, key_clauses, risks, recommendation} JSON
- middleware/serviceAuth.ts: timing-safe Bearer token auth (MIKE_SERVICE_TOKEN)
- index.ts: register /review route
- lib/storage.ts: R2_REGION env var instead of hardcoded 'auto'
  Set R2_REGION=us-east-1 for Supabase Storage S3, omit for Cloudflare R2

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-90.md from inside the repo you want the changes in.

⬇ Download capture-thread-90.md