justice-bac ships a one-command Fly.io deploy for Mike

A complete, opinionated path to running both halves of Mike on Fly.io - wired up to GitHub Actions and ready to import.

infrastructureintegration

justice-bac built out the full deployment story Mike has been missing: containers for the backend and the web front-end, health checks, region pinning, and machines that auto-stop when idle. All of it targets Fly.io, a developer-friendly host that runs apps close to users in regions worldwide.

The centrepiece is a long, interactive deploy script that handles the awkward parts - discovering secrets from local config or prompting for them, auto-generating signing keys, deriving public URLs from app names, and retrying when Fly's remote builder gets flaky. A companion GitHub Actions workflow lists every secret the deploy needs by name, which doubles as a useful checklist for anyone porting this. A small but smart fix lets the frontend build cleanly even when its Supabase keys aren't present yet.

So what Anyone running their own Mike instance - or evaluating what it takes to - now has a credible blueprint instead of a blank page.

View this fork on GitHub →

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

Commits in this thread

8 commits from justice-bac/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
0ec5fd61 fly.io deployment modifications Jules Kuehn 2026-05-13 ↗ GitHub
d24f6dab Merge pull request #1 from justice-bac/jus-setup Jules Kuehn 2026-05-14 ↗ GitHub
ops: jus devcontainer setup; fly.io deploy
aa97c8ef deploy to fly.io Jules Kuehn 2026-05-14 ↗ GitHub
308988bd update deployment script Jules Kuehn 2026-05-14 ↗ GitHub
7daca8f0 fix dockerfile Jules Kuehn 2026-05-14 ↗ GitHub
ec481035 fix dockerfile Jules Kuehn 2026-05-14 ↗ GitHub
6921ae2c lazy init supabase module (for build fix) Jules Kuehn 2026-05-14 ↗ GitHub
680ca30e fix deployment Jules Kuehn 2026-05-15 ↗ 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-401.md from inside the repo you want the changes in.

⬇ Download capture-thread-401.md