Project Overview
Lumora is a production-ready RAG (Retrieval-Augmented Generation) web application that lets users chat with their own documents using a locally-hosted LLM. Upload PDFs, DOCX, TXT, CSV, or Markdown files, the system ingests them, generates semantic embeddings, and stores them in a persistent ChromaDB vector store. Every user query retrieves the most relevant document chunks and passes them to Ollama llama3.2 for a grounded, source-attributed answer.
Built with a FastAPI async backend and a clean vanilla HTML/CSS/JS frontend, Lumora runs entirely on-premises with no data leaving the server, making it suitable for organisations with strict data privacy requirements. Docker support enables one-command deployment, and WebSocket-based streaming delivers real-time chat responses.
Built with a FastAPI async backend and a clean vanilla HTML/CSS/JS frontend, Lumora runs entirely on-premises with no data leaving the server, making it suitable for organisations with strict data privacy requirements. Docker support enables one-command deployment, and WebSocket-based streaming delivers real-time chat responses.
The Challenge
Organisations accumulate large volumes of internal documents, policies, manuals, reports, knowledge bases, that are difficult to search and navigate. Generic AI chatbots lack access to this private knowledge, while uploading sensitive documents to public AI services raises serious data privacy and compliance concerns. Teams waste hours manually searching through documents for answers that should be instantly accessible.
The Solution
Built a fully self-hosted RAG pipeline where documents are ingested, chunked, and embedded using HuggingFace all-MiniLM-L6-v2. ChromaDB stores the persistent vector index for semantic retrieval. At query time, the top-k most relevant chunks are retrieved and injected into a prompt for Ollama llama3.2 running locally, producing accurate, source-grounded answers with no data leaving the server.
The admin panel provides JWT-authenticated access to document management: drag-and-drop batch upload, document preview, bulk delete, manual re-index, stats dashboard, and user activity log. Docker and docker-compose enable reproducible deployment across environments.
The admin panel provides JWT-authenticated access to document management: drag-and-drop batch upload, document preview, bulk delete, manual re-index, stats dashboard, and user activity log. Docker and docker-compose enable reproducible deployment across environments.
Key Features
- Streaming RAG chat with real-time WebSocket status updates and source attribution
- ChromaDB persistent vector store with adjustable temperature and top_k retrieval
- HuggingFace all-MiniLM-L6-v2 semantic embeddings for accurate document search
- Ollama llama3.2 local LLM, no data sent to external APIs
- Drag-and-drop batch document upload: PDF, DOCX, TXT, CSV, Markdown
- Admin JWT login with document list, search, preview, bulk delete, and re-index
- Multiple local chat sessions persisted in localStorage
- Copy answers and export chats as text or PDF
- Stats dashboard and user activity log in admin panel
- Docker and docker-compose for one-command production deployment
- FastAPI async backend with interactive API docs at /docs
- CORS configuration and HTTPS-ready for production deployment
Results & Impact
Delivers accurate, source-grounded answers from private document collections without any data leaving the server. Streaming responses provide a responsive chat experience even on modest hardware. The admin panel enables non-technical users to manage the document knowledge base without developer intervention.
The fully self-hosted architecture makes Lumora viable for regulated industries (healthcare, legal, finance) where data privacy is non-negotiable. Docker deployment reduces setup time to minutes, and the modular backend allows swapping embedding models or LLMs as better options become available.
The fully self-hosted architecture makes Lumora viable for regulated industries (healthcare, legal, finance) where data privacy is non-negotiable. Docker deployment reduces setup time to minutes, and the modular backend allows swapping embedding models or LLMs as better options become available.