DocuBrowse 0.9.1: Local AI-Powered Document Search Engine
DocuBrowse 0.9.1 provides a fully local, AI-powered solution for transforming unstructured collections of documents into a searchable knowledge base. By combining traditional keyword search with semantic AI embeddings, it allows users to find documents based on meaning rather than just exact text matches, all while keeping data on the local machine to ensure privacy and eliminate API costs.
Hybrid Search Architecture
DocuBrowse employs a dual-search mechanism to maximize retrieval accuracy. By default, it uses a Hybrid Mode that merges results from two distinct scoring systems:
- Keyword Search: Utilizes SQLite FTS5 (Full-Text Search) with BM25 scoring. It performs fast prefix-matching across titles, authors, subjects, tags, and content snippets.
- Semantic Search: Uses the
nomic-embed-text:latestmodel via Ollama to generate 768-dimensional vectors. It calculates cosine similarity between the query embedding and a cached, L2-normalized embedding matrix in-process using NumPy for low-latency retrieval.
In Hybrid Mode, the final relevance score is calculated as 0.3 × keyword_score + 0.7 × semantic_score, ensuring that conceptually relevant documents are prioritized while still rewarding exact keyword matches.
AI-Powered Document Synopses
To accelerate document review, DocuBrowse generates "Kindle-style" book-jacket synopses on demand. When a user clicks a document title, the system uses the dolphin3:latest model via Ollama to create a concise summary of the content. To optimize performance, these synopses are cached in the SQLite database after the first generation, preventing redundant AI processing for the same file.
Broad Document Format Support
Version 0.9.1 expands indexing capabilities to include a wide array of file types, ensuring most common office and e-book formats are covered:
- Office Documents: PDF (via
pdfplumberandpypdf), DOCX (python-docx), PPTX (python-pptx), and XLSX (openpyxl). - OpenDocument Format (ODF): Added in v0.9.1, the system now indexes
.odt,.ods, and.odpfiles using Python's standard library (zipfileandxml.etree.ElementTree) without requiring external dependencies. - E-books: EPUB, MOBI, AZW3, and AZW (via
ebookliband Calibre). Note that DRM-encrypted AZW files are indexed by metadata only. - Plain Text: HTML, TXT, and Markdown.
Privacy and Security Hardening
Because DocuBrowse is designed for local personal use, it implements several security layers to prevent unauthorized access and data leaks:
- PII Protection: A post-ingest scanner detects patterns for Social Security Numbers (SSNs), credit cards, bank routing/account numbers, dates of birth, and passports. Matching documents are removed from the index and permanently blacklisted to prevent accidental exposure.
- Local-Only Binding: The server binds exclusively to the loopback subnet (
localhost/127.0.0.1), rejecting all non-loopback connections at the socket level. - Web Hardening: To prevent DNS-rebinding and Cross-Site Request Forgery (CSRF), the system uses a host-header allow-list and requires a per-process
X-CSRF-Tokenfor all state-changing API mutations (such as deleting files or changing settings).
System Requirements and Deployment
DocuBrowse is distributed as native packages for Linux (RPM, DEB, tarball), Windows (zip), and macOS (dmg).
Hardware Requirements:
- Minimum: 8 GB RAM, x86_64 or ARM64 CPU, and 2 GB free disk space. It can run without a GPU, though synopsis generation will be slower.
- Recommended: 16 GB RAM and 4 GB+ vRAM (NVIDIA or Apple Silicon) for GPU-accelerated embeddings and synopses.
Software Prerequisites:
- Python 3.9+
- Ollama (automatically installed by
docubrowser startif missing) - Calibre (required for MOBI/AZW3/AZW indexing)
Community Insights and Use Cases
Users and developers on Hacker News highlighted the value of a "local-first" approach to document management, contrasting it with cloud-based RAG (Retrieval-Augmented Generation) tools.
"Not a fan of pushing every personal document to someone else's cloud. Nice to see a tool that keeps everything on disk instead."
Some users suggested potential integrations with tools like Paperless-NGX or expanding support to S3-compatible targets and cloud drives like Google Drive or Dropbox to bridge the gap between local indexing and cloud storage.
Sources
Related
- Project
- Project
- Project
- Project
- Project