Furious-Industries puts Mike on a server you control, no cloud required

One commit packages the whole system to run on a single in-house machine, with no outside services in the loop.

infrastructuresecurity

For firms uneasy about legal work touching an outside cloud, this fork is a useful starting point. It bundles Mike and everything it leans on - database, login, file storage - into one self-contained package that runs on a single Linux box, whether that's bare-metal in the office or a homelab. The only setting most people need to change is the server's address; the rest is derived from it. It also fixes a genuine bug that bit anyone using non-Amazon file storage, so document download links actually resolve in a browser.

Read the fine print before you deploy. The shipped config carries publicly-known development keys (flagged as "regenerate before exposing to the internet," but easy to skim past), and one secret key appears to be wired into the frontend build by mistake, where no secret should ever land. Treat this as a template to harden, not a turnkey box.

So what Worth a look for any team that wants Mike running on infrastructure it owns outright - but have someone technical lock down the keys before it goes anywhere near a network.

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

SHA Subject Author Date
4de37127 Add self-hosted Docker Compose stack S J 2026-05-02 ↗ GitHub
commit body
Full self-contained stack for running Mike on a local Linux server with
no external cloud dependencies.

Services: Supabase Postgres, GoTrue auth, PostgREST, Kong API gateway,
MinIO S3-compatible storage, Mike backend (with LibreOffice), Next.js
frontend.

- backend/Dockerfile: Node 22 + LibreOffice for DOC/DOCX conversion
- frontend/Dockerfile: Next.js standalone build; NEXT_PUBLIC_* vars
  baked in at build time via build args
- docker-compose.yml: full 9-service stack with health-check ordering
- docker/kong.yml: routes /auth/v1/* and /rest/v1/* behind single port
- docker/migrate.sh: waits for GoTrue, runs one-shot schema migration
- docker/volumes/db/roles.sql|jwt.sql: Postgres init scripts for
  service role passwords and JWT secret
- .env.example: single config file; only SERVER_HOST + passwords need
  changing per machine
- storage.ts: added forcePathStyle (MinIO requirement) and
  S3_PUBLIC_ENDPOINT_URL for presigned URLs reachable from the browser
- next.config.ts: added output: standalone for Docker build

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

⬇ Download capture-thread-136.md