Skip to content
demigodmodePublic

Latest commit

 

History

886 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OneSearch logo

Logo by Briefreelancing.

OneSearch

Search your homelab like you search the web.

Latest release Docker pulls CLI on PyPI Backend tests Frontend tests Documentation License

OneSearch indexes your local directories, NAS shares, and external drives and gives you instant full-text search from a browser. No cloud, no telemetry, runs in Docker.

OneSearch search results


Quick Start

mkdir onesearch && cd onesearch
curl -O https://raw.githubusercontent.com/demigodmode/OneSearch/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/demigodmode/OneSearch/main/.env.example
cp .env.example .env

Edit .env and set MEILI_MASTER_KEY and SESSION_SECRET to two different random strings (openssl rand -base64 32 works).

docker compose up -d

Open http://localhost:8000, run through the setup wizard, add a directory as a source, and start searching.

Existing installs: the default Docker setup now runs OneSearch and managed Meilisearch in a single container. Existing two-container installs do not need to switch immediately. If you do switch, keep your /app/data volume and run a full reindex after moving to managed mode. The old two-container external Meilisearch setup is still supported in docker-compose.legacy.yml.

Full setup guide: onesearch.readthedocs.io


What it indexes

Type Formats
Documents PDF, Word (.docx), Excel (.xlsx), PowerPoint (.pptx), RTF
Ebooks & comics EPUB, CBZ comic archives
Images & RAW photos JPG, PNG, WebP, GIF, TIFF, CR2, CR3, NEF, ARW, RAF, ORF, RW2, DNG
Media metadata MP4, MKV, MOV, AVI, MP3, FLAC, M4A, OGG, WAV
Subtitles SRT, WebVTT, ASS/SSA
Markdown .md, .markdown
Code .py, .js, .ts, .go, .rs, .java, .c, .cpp, .sh, .sql, and more
Config .yaml, .toml, .json, .xml, .ini, .env, and more
Text .txt, .log

Incremental indexing so only changed files get reindexed. Each source can scan on its own interval or cron schedule, or follow one global default, so your NAS gets scanned daily without thinking about it.

Remote sources

Optional remote agents can index files on another machine without mounting its directories on the OneSearch server. Local read-only NFS, SMB, bind, and ZFS mounts remain the default and need no agent. See the remote-agent guide.


Screenshots

Preview extracted text with highlighted matches:

Document preview

Search image and RAW photo metadata:

Photo metadata

Track source health and indexing status:

Admin status


Documentation

onesearch.readthedocs.io


Development

git clone https://github.com/demigodmode/OneSearch.git
cd OneSearch

See the Development Guide for setup instructions.


License

AGPL-3.0. Free to use, modify, and distribute. If you deploy a modified version as a network service, source must be made available.


Support

Releases

Packages

Used by

Contributors

Languages