andrsschultz rips out the cloud storage and runs Mike on a local disk

Files now live on the server's own filesystem instead of Cloudflare's object storage - a deliberate, no-going-back swap.

infrastructuresecurity

andrsschultz has gutted the cloud storage layer that ships with Mike. Where the upstream codebase pushes uploaded documents to Cloudflare R2 (a hosted file-bucket service, similar to Amazon S3), this fork writes them straight to a folder on the server it's running on. The cloud SDKs are uninstalled, the cloud credentials are deleted from the config, and the frontend's upload helper is gone too.

This is a hard replacement, not an either/or switch - R2 is simply no longer an option. Download links also change shape: instead of the time-limited signed URLs that R2 hands out, the fork reuses Mike's own internal token system to gate access. There's a path-traversal guard on the new storage code that's worth a look if you're security-minded.

So what Relevant to anyone running Mike on their own hardware - air-gapped firms, on-prem deployments, or jurisdictions where client files can't sit in third-party cloud storage.

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 andrsschultz/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
acbc99b7 Replace R2 storage with local filesystem asschultz 2026-04-30 ↗ GitHub

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-81.md from inside the repo you want the changes in.

⬇ Download capture-thread-81.md