DocuMind is a high-performance, self-hosted, privacy-first personal document vault. It combines automated OCR, local AI field extraction, hybrid full-text/vector search, a visual page manipulation studio, and conversational Q&A with citations—all running locally in a single Go binary backed by SQLite.
FTS5), and dense vector embeddings (sqlite-vec) reside inside SQLite with zero external database servers required.queued $\to$ rendering $\to$ ocr $\to$ extracting $\to$ indexing $\to$ ready) stream live to the browser over Server-Sent Events (SSE)./data/consume; the vault automatically watches, ingests, and processes them in the background via filesystem notifications (fsnotify).Host, User, Password, Folder) with a dedicated rule that imports email attachments automatically every minute and marks messages read.application/pdf)PNG, JPEG/JPG, WebP).docx converted to rendered PDF text).txt, .md, .csv automatically converted to PDF){Category}/{Year}/{Merchant}_{Date}_{ID}.pdf).Estimated (Local rule-based heuristic)Read by <model> (Ollama LLM extraction)Edited by you (User modification)FTS5 lexical BM25 matching and sqlite-vec semantic vector search using Reciprocal Rank Fusion (RRF).Cmd+K / Ctrl+K):
VIN, Account Number, Project) to any document..zip containing all original files, generated PDFs, and a comprehensive JSON metadata manifest..zip to rebuild database records, OCR data, and page renderings./data for standard volume backup solutions.Create a docker-compose.yml file or clone the repository:
services:
documind:
image: documind:latest
build: .
ports:
- "8080:8080"
volumes:
- documind-data:/data
environment:
- DATA_DIR=/data
- ADDR=:8080
- OCR_LANGS=eng
- OLLAMA_URL=http://ollama:11434
- OLLAMA_CHAT_MODEL=llama3.2
- OLLAMA_EMBED_MODEL=nomic-embed-text
ollama:
image: ollama/ollama
profiles: ["ai"]
volumes:
- ollama-models:/root/.ollama
volumes:
documind-data:
ollama-models:
Start the core service:
docker compose up -d
Enable local AI models:
docker compose --profile ai up -d
docker compose exec ollama ollama pull llama3.2
docker compose exec ollama ollama pull nomic-embed-text
Open your browser at http://localhost:8080.
You have three ways to import documents into DocuMind:
Web Drag-and-Drop:
.docx), .txt, .md, .csv.Watched Consume Folder:
/data/consume folder on your host or container mount.Email Import (IMAP):
Policy Number: 98124) in the Fields section.If a scan is upside down, missing pages, or needs to be combined with another file:
⟳) on any thumbnail to rotate it by 90°.↑) or Down (↓) arrows to change page order.Cmd+K / Ctrl+K)Cmd+K (macOS) or Ctrl+K (Linux/Windows) anywhere in the application..zip containing all originals, processed PDFs, page images, and metadata.You can configure DocuMind via environment variables:
| Variable | Default | Description |
|---|---|---|
DATA_DIR | data | Root path for SQLite database, originals, page renders, thumbnails, and the consume folder. |
ADDR | :8080 | HTTP listen address. |
OLLAMA_URL | "" (empty) | Ollama base URL (e.g. http://localhost:11434). If omitted, AI extraction is disabled and local heuristics are used. |
OLLAMA_CHAT_MODEL | llama3.2 | Ollama model used for field extraction, summarization, and chat. |
OLLAMA_VISION_MODEL | "" (empty) | Vision model (e.g., llama3.2-vision) used to analyze images directly when GPU memory allows. |
OLLAMA_EMBED_MODEL | nomic-embed-text | Model used for semantic vector embeddings. |
EMBED_DIM | 768 | Embedding vector dimension for sqlite-vec. |
OCR_LANGS | eng | Default Tesseract language codes separated by + (e.g., eng+fra+deu). |
MAX_OCR_PAGES | 15 | Maximum number of pages rasterized and OCR'd per document. |
WORKERS | 2 | Number of concurrent background worker ingestion jobs. |
| Shortcut / Action | Scope | Description |
|---|---|---|
Cmd + K / Ctrl + K | Global | Open the AI Command Bar and conversational search assistant. |
Esc | Global | Close open drawers, modals, settings panels, or the Command Bar. |
/ | Dashboard | Focus the header search input. |
| Drag & Drop | Main Window | Drop files anywhere to initiate upload. |
| Select Checkboxes | Table/Rows | Select multiple documents to reveal bulk action buttons (Review, Read Again, Trash). |
| Click Search Hit | Search Results | Jumps directly to the matching page in the document preview. |
| Theme Toggle | Settings | Switch between Dark and Light mode. |
| Language Toggle | Settings | Switch interface between English and Persian (فارسی). |
Content type
Image
Digest
sha256:3aa99b1bb…
Size
111.6 MB
Last updated
14 days ago
docker pull sinarah/documind