osama-ata makes Mike self-hostable in one command

A full Docker stack so you can run Mike on your own boxes instead of leaning on hosted cloud services.

infrastructuresecurity

osama-ata is turning Mike into something you can stand up entirely on your own infrastructure. The fork wires up a complete local deployment: a Postgres-based database stack, an in-house object store (MinIO, an open-source stand-in for Amazon S3), and an API gateway, all glued together so the whole system runs from a single compose file. Healthchecks, routing, and storage paths have been tuned to actually survive contact with a real Docker environment.

Tucked inside the deployment work is a genuine bug fix worth flagging: lookups for shared projects were silently returning nothing because of a quirk in how the database was being queried. That one is a correctness issue on the sharing feature itself, not a deployment detail - anyone running Mike is affected.

So what Relevant for firms or legal-tech teams that want Mike running inside their own walls rather than on someone else's cloud - and for anyone using the shared-projects feature today.

View this fork on GitHub →

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

Commits in this thread

3 commits from osama-ata/mikeoss, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
ac06a2f6 Fix Docker healthchecks for distroless images and clear auth schema Osama Ata 2026-05-04 ↗ GitHub
commit body
- Replace curl-based minio healthcheck with `mc ready local` (chainguard image has no curl)
- Replace wget-based supabase-auth healthcheck with `gotrue version` (distroless image)
- Replace wget-based supabase-rest healthcheck with `postgrest --help` (distroless image)
- Volume was wiped to resolve gotrue uuid=text migration error on fresh Postgres 17 schema

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55aebbdd Enhance Docker setup and configuration Osama Ata 2026-05-04 ↗ GitHub
commit body
- Update .gitignore to include .env.docker
- Revise README.md for clearer Docker Compose instructions
- Add docker-setup-validator agent for Docker configuration validation
- Create backend and frontend Dockerfiles with multi-stage builds
- Implement health checks in Dockerfiles
- Establish docker-compose configuration for Supabase integration
- Introduce .dockerignore files for backend and frontend
- Add initialization scripts for Supabase roles and configurations
- Configure CORS in Kong for Supabase services

Co-authored-by: Copilot <copilot@github.com>
baa2a5bb Fix CORS headers, JSONB query format, and S3 path-style addressing Osama Ata 2026-05-04 ↗ GitHub
commit body
- kong.yml: add full set of PostgREST headers (Accept-Profile,
  Content-Profile, Prefer, Range, etc.) to CORS allowed list
- access.ts, projects.ts: fix shared_with containment query to use
  JSON.stringify([email]) instead of [email] - avoids Postgres array
  syntax {..} which is invalid for JSONB cs. operator
- storage.ts: add forcePathStyle: true to S3Client so MinIO URLs use
  path-style (http://minio:9000/bucket) instead of virtual-hosted style
  (http://bucket.minio:9000) which fails DNS resolution

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

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

⬇ Download capture-thread-103.md