Fetch logo Fetch logo

Self-hosted document search and knowledge retrieval for your private infrastructure.

Upload Word files, spreadsheets, PDFs, or Markdown documents. Fetch handles format conversion, text chunking, vector embedding, and indexing automatically. Search your entire library via a browser interface or query it through a REST API.

Turn-key solution

Fetch-in-a-box

A preconfigured, dedicated server delivered ready to rack. Fetch and all required language models come preinstalled and tuned for your hardware, providing an immediate on-premises solution without manual setup.

Ask about Fetch-in-a-box

What's in the box

  • check_circle Server hardware sized specifically to your expected document volume
  • check_circle Preconfigured PostgreSQL database with pgvector, Fetch core, and background processing workers
  • check_circle Local embedding models and LLMs powered by llama.cpp matched to host hardware
  • check_circle Initial user roles, access groups, and document collections built out for your team
  • check_circle Automated backup routine, update deployment plan, and onboarding support

Features

Core capabilities for organizing and searching internal files safely on your own network.

upload_file

File Ingestion

Ingest Word documents, Excel sheets, PowerPoint decks, PDFs, CSVs, images, and Markdown via web uploads or batch processing.

auto_fix_high

Automatic Indexing

Files convert to Markdown asynchronously through a database-backed queue, splitting content into structural chunks and generating embeddings automatically.

search

Hybrid Retrieval

Combine dense vector search powered by pgvector with standard full-text matching for precise context retrieval.

smart_toy

Research Agent

Ask direct questions in plain language and receive cited answers synthesized exclusively from matching documents in your library.

collections

Collections & Projects

Group documents logically into collections and define project spaces to share relevant libraries across functional teams.

groups

Role-Based Access

Granular user roles and group permission trees ensure every search query returns only data the user is authorized to read.

dashboard_customize

Web Dashboard

A lightweight browser interface built with HTMX. Track background processing status, manage files, and search without full page reloads.

api

REST API

Full programmatic access via /api/v1 endpoints using standard JWT authentication for external app integration.

lock

Strictly On-Premises

Inference calls stay local using llama.cpp. Proprietary documents and search queries never leave your private network.

How it works

The path from raw document files to structured, queryable knowledge.

1

Upload

Files store content-addressed in the primary repository, and metadata records generate automatically from file headers.

2

Convert

Input files parse into standardized Markdown copies saved alongside the raw original uploads.

3

Index

Documents split logically along headings and paragraphs into discrete chunks before generating pgvector embeddings.

4

Search

Run hybrid queries or prompt the research agent directly through the web web interface or REST API endpoints.

Technology Stack

Fetch ships as a unified Python package containing web and background worker processes. The platform uses PostgreSQL with pgvector for relational data and vector storage, relies on llama.cpp for local inference, and includes database migrations directly in the package.

If no model host is available, Fetch uses deterministic fallback handlers so you can verify the processing pipeline before binding external models.

Python PostgreSQL + pgvector HTMX llama.cpp Docker Alembic
$ docker compose up --build

postgres + web + worker
→ http://localhost:8010

See Fetch on your own documents

Fetch can be deployed as custom software adapted to your current setup, or as a standalone Fetch-in-a-box deployment. Get in touch to schedule a demo or request a detailed proposal.