jthacker48 wires mike into a rule26 sibling-service stack on ai-server
Jeremy Thacker's fork adds a full Docker + Infisical + deploy-script stack to run mike alongside folio-enrich and other rule26 services. The deployment wiring is rule26-specific and not portable, but two Dockerfile fixes - React 19 peer-dep workaround and a `next.config.ts` transpilation step - will hit anyone containerizing the upstream frontend.
The initial commit drops 10 new files: multi-stage Dockerfiles for backend (Node 20 + LibreOffice) and frontend (Node 20, bakes NEXT_PUBLIC_* at build time), docker-compose.yml mapping host 8094 → frontend and 8095 → backend, .env.defaults (committed non-secret config), .env.example (Infisical-driven secret template), scripts/deploy.sh (pulls from Infisical project rule26/mike, writes .env, runs docker compose up --build, polls /health), a CLAUDE.md guide, integration docs, and a README appendix.
Everything is baked to rule26's ai-server topology: 10.77.1.181, ~/svc/rule26/mike, the Infisical project UUID. None of this ports directly.
Four follow-up commits are all build-fix iteration on the same evening. A path typo in the docs gets corrected (~/projects/legal-tech/mike → ~/svc/rule26/mike). The more interesting fixes: --legacy-peer-deps has to be added to both npm ci and npm prune --omit=dev in the frontend Dockerfile, because recharts, @uiw/react-md-editor, and auth-helpers-nextjs all declare React 18 peer deps against a React 19 install. Anyone else building the upstream frontend in a clean container will hit the same failure.
The last fix is more surgical. next start parses next.config.ts at startup, but the runtime stage strips devDeps - including TypeScript. The solution: in the builder, run typescript.transpileModule via an inline node -e "..." to emit next.config.js, then copy the .js file into the runtime image instead of the .ts. This is a real gotcha for anyone running the upstream Next.js frontend in a slim production container.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?