osama-ata packs Mike up to run entirely on your own servers

A self-hosting bundle that lets a firm stand up the whole stack in-house - and a fix for a bug that quietly broke shared projects.

infrastructuremulti-tenant

osama-ata's fork wraps Mike's storage, database, and authentication into a single self-hosted package, deployable with Docker - the standard way to bundle an app and everything it needs to run on infrastructure you control. For a firm that won't put client matters on someone else's cloud, that's the difference between "interesting" and "deployable." The owner clearly ran it for real, then went back and patched the things that only break once you do.

The fix worth knowing about has nothing to do with plumbing: shared projects were silently returning nothing for anyone except the project's owner. Invite a colleague, and they'd see an empty screen. The query was malformed in a way that produced no error - just zero results - so it would have been easy to miss. osama-ata caught and corrected it.

So what Anyone evaluating Mike for on-premise use, or relying on project sharing, should look at this fork - the self-host scaffolding and the shared-access fix both matter.

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