Furious-Industries packages Mike for the server in your closet

A one-command self-hosted stack turns Mike from a cloud-dependent app into something you can run on a Linux box in the office.

infrastructuresecurity

Most Mike forks tinker with the app. Furious-Industries went the other direction and shipped the plumbing: a nine-service bundle that stands up the database, authentication, file storage, document conversion, and both halves of Mike on a single machine, with one configuration file and one host-specific setting. No Supabase account, no Cloudflare, no third-party cloud dependencies - the whole thing runs on-prem.

The signal here isn't a feature. It's a posture. Upstream Mike assumes you're comfortable wiring it into hosted services; this fork assumes you'd rather not. A couple of small fixes ride along too, including one that makes file download links actually work when you're not on Cloudflare's storage - a real papercut for anyone trying to deploy Mike anywhere else. A few rough edges remain around demo credentials that need rotating before you'd ever expose this to the internet, but the direction is unmistakable: legal AI you can keep behind your own firewall.

So what Worth a look for any firm or legal-ops team that wants Mike's capabilities without sending client documents to someone else's cloud.

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