manueljpconde ↗ analysis ↗ GitHub manueljpconde/mikeEU
EU-focused Mike fork targeting sovereign deployment with Docker self-hosting, local LLM support, managed model endpoints, and five-language UI
manueljpconde/mikeEU is a fork of the willchen96/mike legal-AI codebase shaped for EU deployment scenarios where data sovereignty and self-hosting matter. The main lines of work are: a full Docker Compose stack that boots the entire application locally without external Supabase or R2 accounts; a local:server provider that routes inference to any OpenAI-compatible endpoint (Ollama, LM Studio, vLLM) with credentials kept server-side; a managedModels subsystem that lets admins configure per-user Azure Foundry or local model endpoints with AES-256-GCM-encrypted keys; a five-locale UI (en, pt, es, fr, de) built on a custom library-free i18n runtime; and a confirmed cross-tenant document access fix on the tabular review routes.
The openaiCompatible adapter, managed models schema, and encryption helpers are the most portable pieces - worth evaluating independently of the Docker and i18n work. The cross-tenant access fix applies to anyone running tabular review features. The Docker stack is opinionated: it bundles a local Supabase cluster rather than pointing at hosted, so it only makes sense if you want the full self-host story.
What's in it
- Run it on your own hardware A self-hosted local model provider lets operators keep inference inside their own walls instead of routing prompts to a public API.
- One-command self-host stack A Docker quickstart any firm can spin up without stitching the pieces together themselves.
- Admin-managed model providers An admin screen for plugging in your own AI models, with a clean split between public and self-hosted options.
- Five-language UI English, Portuguese, Spanish, French, and German across the main lawyer-facing screens, with English as the fallback everywhere.
- Profile-synced language preference A lawyer's chosen language follows their profile rather than resetting per session.
- Tightened self-host on-ramp A pass over the quickstart that closes a credential leak and removes several footguns for first-time self-hosters.
- Cross-tenant fix on tabular review The spreadsheet-style review feature no longer lets a logged-in user pull another tenant's documents into an AI prompt.
Direction
infrastructurei18nsecurity
Activity
manueljpconde ↗ analysis ↗ GitHub manueljpconde ↗ analysis ↗ GitHub manueljpconde ↗ analysis ↗ GitHub manueljpconde ↗ analysis ↗ GitHub manueljpconde ↗ analysis ↗ GitHub manueljpconde ↗ analysis ↗ GitHub Threads of work (detailed view)
manueljpconde makes Mike speak five European languages
The mikeEU fork adds a built-from-scratch multilingual layer, so the tool can run in English, Portuguese, Spanish, French, or German.
Full i18n stack for en/pt/es/fr/de, library-free, with catalog validation and two expansion passes
manueljpconde built a complete localization system for five languages without pulling in an i18n library. The implementation spans schema, backend allowlist, frontend runtime, catalog validation tooling, and two successive catalog expansion passes covering auth through main app surfaces.
manueljpconde drags the rest of Mike into five languages
The earlier translation pass missed the screens lawyers actually live in; this one closes the gap.
i18n second pass covers assistant chrome, projects, tabular reviews, and workflows
After the initial i18n rollout left high-traffic lawyer-facing screens partly in English, manueljpconde pushed a second pass that expands translation coverage across account settings, the chat assistant surface, tabular reviews, project modals, and workflow lists - all five supported locales updated.
manueljpconde lets you bring your own AI model - and locks the keys away
This fork opens the door to private and self-hosted AI engines, so a firm's data and credentials never have to leave the building.
Docker Compose stack and admin-managed model endpoints land together
manueljpconde shipped a self-contained local deployment stack alongside a new `managedModels` subsystem that lets admins configure OpenAI-compatible model endpoints stored in the database with AES-256-GCM-encrypted API keys. These two changes arrived in the same PR and a three-day hardening follow-up.
manueljpconde hardens the one-click self-hosting build
A cleanup pass on the local install pulls a powerful secret key out of the browser and makes the private-model setup actually work on the servers teams deploy on.
Docker quickstart hardened: secret leak fixed, JWTs refreshed, images pinned
manueljpconde tightened four loose ends in the Docker setup that had shipped with the initial compose stack: a server-only credential was leaking into the Next.js build context, development JWTs were due to expire in 2027, image tags were floating on `latest`, and the Linux Docker networking story was undocumented.
manueljpconde teaches Mike to speak five languages
The mikeEU fork gets end-to-end localisation in English, Portuguese, Spanish, French, and German, with English as the safe fallback everywhere.
Five-locale UI ships with custom i18n runtime and profile-persisted locale
manueljpconde built end-to-end localization for en, pt, es, fr, and de from scratch - no third-party library, just a thin layer over native `Intl`. Locale is stored on the user profile, validated at every layer, and resolved server-side on the initial request.
manueljpconde makes Mike run on your own machine, with your own model
A one-command local install plus bring-your-own AI provider - Mike no longer assumes you're comfortable handing everything to someone else's cloud.
Self-contained Docker stack and per-user managed model endpoints
manueljpconde landed the two biggest infrastructure changes in the mikeEU fork at once: a Docker Compose setup that boots the entire stack locally without hosted Supabase or R2, and a redesigned model settings flow that lets each admin configure their own Azure Foundry or local OpenAI-compatible endpoint with a per-record encrypted key.
manueljpconde lets firms keep Mike's brain in-house
The mikeEU fork can now point the assistant at a self-hosted AI model instead of a cloud provider.
Self-hosted local LLM provider added as a fourth inference path
manueljpconde added a `local:server` provider to mikeEU that routes inference to any OpenAI-compatible `/v1/chat/completions` endpoint - Ollama, LM Studio, vLLM, and similar runtimes. Configuration is entirely server-side; the browser only sees a selectable model name.
manueljpconde teaches mikeEU to run on your own AI model
A new setting lets whoever runs the deployment point Mike at a self-hosted language model instead of a third-party cloud.
Local LLM provider added via server-configured OpenAI-compatible endpoint
manueljpconde wired a fourth inference path into mikeEU: a backend-only `local:server` provider that routes to any OpenAI-compatible `/v1/chat/completions` endpoint. Ollama, LM Studio, and similar runtimes work out of the box. The browser never sees the URL or credentials.
Cross-tenant document read closed on tabular review routes
manueljpconde patched a confirmed authorization gap in the tabular review feature: authenticated users could submit another user's document IDs and the backend would read and forward that content to the LLM. A new helper now validates document ownership on every affected call site before anything is read.
Pull requests (detailed view)
✅ Merged (7)
manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde manueljpconde · opened 2mo ago · merged 2mo ago by manueljpconde