DocuBrowse

참조

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
port8643
work_dir<script dir>
langen(ja, ko, zh, zh-hant 도 가능)

환경 변수

환경 변수는 대응하는 설정 키를 재정의합니다. CLI 플래그가 우선합니다.

변수설명
DOCUBROWSE_DOC_DIR기본 문서 디렉터리
DOCUBROWSE_DB / DOCUBROWSE_DB_PATHdu-docs.db 경로
DOCUBROWSE_PORTHTTP 포트(기본 8643)
DOCUBROWSE_WORK_DIR런타임 데이터 작업 디렉터리
OLLAMA_HOSTOllama 기본 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 를 사용하며 제목과 저자를 본문과 태그보다 높게 가중합니다. 의미 점수는 쿼리 임베딩과 각 문서 임베딩을 비교합니다. 하이브리드는 문서마다 두 점수 중 더 강한 쪽을 취합니다. 전체 알고리즘은 README 를 참고하세요.

보안

DocuBrowse 는 127.0.0.1 에 바인딩하며 단일 사용자 로컬 용도로 설계되었습니다. 방문한 악의적인 웹 페이지가 도달하지 못하도록 강화되어 있습니다:

사용자 로그인은 없습니다. 오직 당신만, 자신의 컴퓨터에서만 서버에 도달할 수 있기 때문입니다.