リファレンス
v1.5.2 の CLI、設定、セキュリティの詳細。インストール済みのシステムでは docubrowser を、クローンしたリポジトリでは ./docubrowser.py を使います。
コマンドラインインターフェース
docubrowser <command> [options]
| コマンド | 説明 |
|---|---|
start / stop / restart | 検索サーバーの制御(start は先に Ollama チェックを実行) |
status | サーバーの状態、文書数、埋め込み数、タグ数 |
scan [TYPE ...] | 文書のスキャン・インデックス化・埋め込み。--no-embed で埋め込みを省略 |
rescan [TYPE ...] | scan のエイリアス |
scan-file --file PATH | 単一ファイルをインデックス化して埋め込み |
embed | 未埋め込みの文書の埋め込みを生成 |
open | 既定のブラウザで UI を開く |
purge | インデックスの PII をスキャンして該当文書を削除 |
ignore add|remove|list DIR | 除外ディレクトリの管理(追加時に自動削除) |
report | ファイル種別の内訳。DB は変更しない |
scan-missing [--dry-run] | 本当に存在しないファイルの行を削除。アンマウントされたパスはそのまま |
stopall | すべてのスキャン・埋め込み・サーバーを停止 |
duplist / dupclean | 重複の一覧 / 対話的に確認して削除 |
グローバルオプション
--db PATH SQLite データベースのパス(設定を上書き)
--port PORT サーバーのポート(設定を上書き)
--config FILE 設定ファイルのパス
例
docubrowser start --port 9000
docubrowser scan pdf txt # PDF とプレーンテキストのみ
docubrowser scan --limit 100 # 未インデックスの最初の 100 件
docubrowser scan --workers 4 # 抽出ワーカー 4 つ
docubrowser scan-file --file /path/to/document.pdf
docubrowser purge --dry-run # PII 一致をプレビュー(安全)
docubrowser ignore add ~/Documents/myWorkDocs
docubrowser duplist --near-dups --threshold 0.95
docubrowser scan-missing --dry-run
scan の種別フィルター:pdf、txt、md、html。既定は対応するすべての種別です。
scan-file は問題のあるファイルの再試行用です:scan_blacklist.txt から削除し、pii_blacklist.txt のファイルは拒否し、スキャンされた PDF を ocr_list_pdfs.txt に振り分けます。
設定
DocuBrowse は最初に見つかった設定ファイルを読み込みます:/etc/docubrowse.config、次に docubrowser.py と同じ場所の ./docubrowse.config。
# docubrowse.config
doc_dir = ~/Documents
db_path = /home/user/DocuBrowse/du-docs.db
port = 8643
work_dir = /home/user/DocuBrowse
lang = en
| キー | 既定 |
|---|---|
doc_dir | なし。Settings または設定ファイルで設定する必要があります |
db_path | <script dir>/du-docs.db |
port | 8643 |
work_dir | <script dir> |
lang | en(ja、ko、zh、zh-hant も可) |
環境変数
環境変数は対応する設定キーを上書きします。CLI フラグが優先されます。
| 変数 | 説明 |
|---|---|
DOCUBROWSE_DOC_DIR | 主要な文書ディレクトリ |
DOCUBROWSE_DB / DOCUBROWSE_DB_PATH | du-docs.db へのパス |
DOCUBROWSE_PORT | HTTP ポート(既定 8643) |
DOCUBROWSE_WORK_DIR | ランタイムデータの作業ディレクトリ |
OLLAMA_HOST | Ollama のベース URL(既定 http://localhost:11434);DOCUBROWSE_OLLAMA_HOST も可 |
アーキテクチャ
docubrowser.py (CLI) ──► scan_docs.py (ProcessPoolExecutor, extractors, embed_docs.py)
ensure_ollama.py doc_search.py (HTTP :8643)
│ │
└────────┬──────────┘
▼
du-docs.db (SQLite FTS5) + Ollama
(nomic-embed-text, dolphin3)
キーワードのスコアリングは FTS5 BM25 を使い、タイトルと著者を本文やタグより重視します。意味のスコアリングはクエリの埋め込みと各文書の埋め込みを比較します。ハイブリッドは文書ごとに 2 つのスコアのうち強い方を採ります。完全なアルゴリズムは README を参照。
セキュリティ
DocuBrowse は 127.0.0.1 にバインドし、単一ユーザーのローカル利用を想定しています。訪れた悪意ある Web ページが到達できないよう堅牢化されています:
- Host ヘッダ許可リストが DNS リバインディングを防ぎます。
- 状態を変えるすべての操作への CSRF トークンと、ループバックの Origin/Referer チェック。
- 保存データインジェクションなし:文書フィールドは HTML エスケープされ、カード操作はインラインハンドラーではなく委譲リスナーを使います。
- 検証付きの PII パージ:SSN は SSA の割り当て規則、カードは桁数・発行者接頭辞・Luhn、ルーティング番号は ABA チェックサムで検証。
ユーザーログインはありません。あなた自身が自分のマシンでのみサーバーに到達できるためです。