$git clone https://github.com/dmayboroda/minimaMinima is an open source RAG on-premises containers, with ability to integrate with ChatGPT and MCP. Minima can also be used as a fully local RAG or with your own deployed LLM.
| 1 | <p align="center"> |
| 2 | <a href="https://mnma.ai/" target="blank"><img src="assets/logo-full.svg" width="300" alt="MNMA Logo" /></a> |
| 3 | </p> |
| 4 | |
| 5 | **Minima** is an open source RAG on-premises containers, with ability to integrate with ChatGPT and MCP. |
| 6 | Minima can also be used as a fully local RAG or with your own deployed LLM. |
| 7 | |
| 8 | Minima currently supports four modes: |
| 9 | 1. **Isolated installation (Ollama)** – Operate fully on-premises with containers, free from external dependencies such as ChatGPT or Claude. All neural networks (LLM, reranker, embedding) run on your cloud or PC, ensuring your data remains secure. |
| 10 | |
| 11 | 2. **Custom LLM (OpenAI-compatible API)** – Use your own deployed LLM with OpenAI-compatible API (vLLM, Ollama server, TGI, etc.). The indexer runs locally while the LLM can be on your server, cloud, or local machine. No Ollama deployment needed, lighter resource usage, and full control over your LLM infrastructure. |
| 12 | |
| 13 | 3. **Custom GPT** – Query your local documents using ChatGPT app or web with custom GPTs. The indexer runs on your cloud or local PC, while the primary LLM remains ChatGPT. |
| 14 | |
| 15 | 4. **Anthropic Claude** – Use Anthropic Claude app to query your local documents. The indexer operates on your local PC, while Anthropic Claude serves as the primary LLM. |
| 16 | |
| 17 | --- |
| 18 | |
| 19 | ## Running as Containers |
| 20 | |
| 21 | ### Quick Start with run.sh |
| 22 | |
| 23 | The easiest way to start Minima is using the `run.sh` script: |
| 24 | |
| 25 | ```bash |
| 26 | ./run.sh |
| 27 | ``` |
| 28 | |
| 29 | You'll see the following options: |
| 30 | ``` |
| 31 | Select an option: |
| 32 | 1) Fully Local Setup (Ollama) |
| 33 | 2) Custom LLM (OpenAI-compatible API) |
| 34 | 3) ChatGPT Integration |
| 35 | 4) MCP usage |
| 36 | 5) Quit |
| 37 | ``` |
| 38 | |
| 39 | ### Manual Docker Compose Commands |
| 40 | |
| 41 | 1. Create a .env file in the project's root directory (where you'll find .env.sample). Place .env in the same folder and copy all environment variables from .env.sample to .env. |
| 42 | |
| 43 | 2. Ensure your .env file includes the following variables: |
| 44 | <ul> |
| 45 | <li> LOCAL_FILES_PATH </li> |
| 46 | <li> EMBEDDING_MODEL_ID </li> |
| 47 | <li> EMBEDDING_SIZE </li> |
| 48 | <li> OLLAMA_MODEL (only for Ollama mode) </li> |
| 49 | <li> RERANKER_MODEL (only for Ollama mode) </li> |
| 50 | <li> LLM_BASE_URL (only for Custom LLM mode) </li> |
| 51 | <li> LLM_MODEL (only for Custom LLM mode) </li> |
| 52 | <li> LLM_API_KEY (optional for Custom LLM mode) </li> |
| 53 | <li> USER_ID </li> - required for ChatGPT integration, just use your email |
| 54 | <li> PASSWORD </li> - required for ChatGPT integration, just use any password |
| 55 | </ul> |
| 56 | |
| 57 | 3. For fully local installation use: **docker compose -f docker-compose-ollama.yml --env-file .env up --build**. |
| 58 | |
| 59 | 4. For custom LLM deployment (OpenAI-compatible API) use: **docker compose -f docker-compose-custom-llm.yml --env-file .env up --build**. |
| 60 | |
| 61 | 5. For ChatGPT enabled installation use: **docker compose -f docker-compose-chatgpt.yml --env-file .env up --build**. |
| 62 | |
| 63 | 6. For MCP integration (Anthropic Desktop app usage): **docker compose -f docker-compose-mcp.yml --env-file .env up --build**. |
| 64 | |
| 65 | 6. In case of ChatGPT enabled installation copy OTP from terminal where you launched docker and use [Minima GPT](https://chatgpt.com/g/g-r1MNTSb0Q-minima-local-computer-search) |
| 66 | |
| 67 | 7. If you use Anthropic Claude, just add folliwing to **/Library/Application\ Support/Claude/claude_desktop_config.json** |
| 68 | |
| 69 | ``` |
| 70 | { |
| 71 | "mcpServers": { |
| 72 | "minima": { |
| 73 | "command": "uv", |
| 74 | "args": [ |
| 75 | "--directory", |
| 76 | "/path_to_cloned_minima_project/mcp-server", |
| 77 | "run", |
| 78 | "minima" |
| 79 | ] |
| 80 | } |
| 81 | } |
| 82 | } |
| 83 | ``` |
| 84 | |
| 85 | 8. To use fully local installation go to `cd electron`, then run `npm install` and `npm start` which will launch Minima electron app. |
| 86 | |
| 87 | 9. Ask anything, and you'll get answers based on local files in {LOCAL_FILES_PATH} folder. |
| 88 | --- |
| 89 | |
| 90 | ## Variables Explained |
| 91 | |
| 92 | **LOCAL_FILES_PATH**: Specify the root folder for indexing (on your cloud or local pc). Indexing is a recursive process, meaning all documents within subfolders of this root folder will also be indexed. Supported file types: .pdf, .xls, .docx, .txt, .md, .csv. |
| 93 | |
| 94 | **EMBEDDING_MODEL_ID**: Specify the embedding mode |