{"data":{"slug":"dmayboroda-minima","name":"minima","tagline":"On-premises conversational RAG with configurable containers","github_url":"https://github.com/dmayboroda/minima","owner":"dmayboroda","repo":"minima","owner_avatar_url":"https://avatars.githubusercontent.com/u/2357342?v=4","primary_language":"Python","stars":1049,"forks":103,"topics":["ai","claude","custom-gpts","docker","docker-compose","huggingface","langchain","mcp","model-context-protocol","ollama","qdrant","sentence-transformers"],"archived":false,"github_pushed_at":"2026-01-22T09:22:09+00:00","maintenance_label":"Slowing","url":"https://www.graphcanon.com/tools/dmayboroda-minima","markdown_url":"https://www.graphcanon.com/tools/dmayboroda-minima.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/dmayboroda-minima","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=dmayboroda-minima","description":"On-premises conversational RAG with configurable containers","homepage_url":null,"license":"MPL-2.0","open_issues":14,"watchers":18,"ai_summary":"Minima provides a local setup for conversational retrieval-augmented generation (RAG) using various LLM modes such as Ollama, Custom LLM, ChatGPT, and MCP.","readme_excerpt":"### Quick Start with run.sh\n\nThe easiest way to start Minima is using the `run.sh` script:\n\n```bash\n./run.sh\n```\n\nYou'll see the following options:\n```\nSelect an option:\n1) Fully Local Setup (Ollama)\n2) Custom LLM (OpenAI-compatible API)\n3) ChatGPT Integration\n4) MCP usage\n5) Quit\n```\n\n---\n\n### Manual Docker Compose Commands\n\n1. 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.\n\n2. Ensure your .env file includes the following variables:\n<ul>\n   <li> LOCAL_FILES_PATH </li>\n   <li> EMBEDDING_MODEL_ID </li>\n   <li> EMBEDDING_SIZE </li>\n   <li> OLLAMA_MODEL (only for Ollama mode) </li>\n   <li> RERANKER_MODEL (only for Ollama mode) </li>\n   <li> LLM_BASE_URL (only for Custom LLM mode) </li>\n   <li> LLM_MODEL (only for Custom LLM mode) </li>\n   <li> LLM_API_KEY (optional for Custom LLM mode) </li>\n   <li> USER_ID </li> - required for ChatGPT integration, just use your email\n   <li> PASSWORD </li> - required for ChatGPT integration, just use any password\n</ul>\n\n3. For fully local installation use: **docker compose -f docker-compose-ollama.yml --env-file .env up --build**.\n\n4. For custom LLM deployment (OpenAI-compatible API) use: **docker compose -f docker-compose-custom-llm.yml --env-file .env up --build**.\n\n5. For ChatGPT enabled installation use: **docker compose -f docker-compose-chatgpt.yml --env-file .env up --build**.\n\n6. For MCP integration (Anthropic Desktop app usage): **docker compose -f docker-compose-mcp.yml --env-file .env up --build**.\n\n6. 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)  \n\n7. If you use Anthropic Claude, just add folliwing to **/Library/Application\\ Support/Claude/claude_desktop_config.json**\n\n```\n{\n    \"mcpServers\": {\n      \"minima\": {\n        \"command\": \"uv\",\n        \"args\": [\n          \"--directory\",\n          \"/path_to_cloned_minima_project/mcp-server\",\n          \"run\",\n          \"minima\"\n        ]\n      }\n    }\n  }\n```\n   \n8. To use fully local installation go to `cd electron`, then run `npm install` and `npm start` which will launch Minima electron app.\n\n9. Ask anything, and you'll get answers based on local files in {LOCAL_FILES_PATH} folder.\n---\n\n---\n\n# The Docker build will skip reranker download automatically\n```\n\n**Important:** When using custom LLM mode, you do NOT need to set `OLLAMA_MODEL` or `RERANKER_MODEL` variables. The custom LLM workflow uses direct retrieval without reranking for better performance. The Dockerfile will automatically skip downloading the reranker model during build.\n\nTo use a chat ui, please navigate to **http://localhost:3000**\n\nThe custom LLM mode uses a different workflow compared to Ollama:\n\n**Ollama Workflow:**\n1. User query → Query enhancement (LLM call)\n2. Document retrieval with reranking (HuggingFace CrossEncoder)\n3. Answer generation (LLM call)\n\n**Custom LLM Workflow:**\n1. User query → LLM decides if document search is needed (function calling)\n2. If needed: Direct vector search (no reranking)\n3. LLM generates answer with or without retrieved context\n\n**Compatible LLM Servers:**\n- **vLLM** - High-performance inference server (`http://your-server:8000/v1`)\n- **Text Generation Inference (TGI)** - Hugging Face's inference server\n- **Ollama Server** - Ollama running in API mode\n- **LiteLLM** - Proxy for multiple LLM providers\n- **LocalAI** - OpenAI-compatible local inference\n- **OpenAI API** - Directly use OpenAI's API\n- **Any OpenAI-compatible endpoint**\n\nThis will automatically use `docker-compose-custom-llm.yml` which deploys only the necessary services (no Ollama container).\n\n**Example of .env file for Claude app:**\n```\nLOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/\nEMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2\nEMBEDDING_SIZE=768\n```\nFor the Claude app, please apply the changes to the clau","github_created_at":"2024-11-02T22:44:56+00:00","created_at":"2026-07-11T10:49:21.553178+00:00","updated_at":"2026-07-12T04:32:00.455889+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"claude","name":"claude"},{"slug":"custom-gpts","name":"custom-gpts"},{"slug":"docker","name":"docker"},{"slug":"docker-compose","name":"docker-compose"},{"slug":"huggingface","name":"huggingface"},{"slug":"langchain","name":"langchain"},{"slug":"mcp","name":"mcp"}],"trust":{"provenance":{"is_fork":false,"github_id":882486617,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T10:49:22.368Z","maintenance":{"label":"Slowing","score":36,"methodology":"github_public_v1","releases_90d":0,"days_since_push":170,"last_release_at":"2025-01-22T03:37:22Z"},"security_summary":{"status":"no_manifest","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T10:49:23.298Z","medium_count":0,"scan_profile":"mcp_manifest","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-12T04:32:00.403Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-07-12T04:32:00.403Z"},"license_spdx":{"value":"MPL-2.0","source":"github.license","observed_at":"2026-07-12T04:32:00.403Z"}}}}