Obsidian Index Service

Obsidian Index Service

🚀 Obsidian索引服务

Obsidian索引服务可监控Obsidian保险库目录,将Markdown文件的元数据和全文内容索引至SQLite数据库。此服务最初为mcp-server项目构建,之后虽转向使用Obsidian插件API实现,但作为通用的无主见索引工具或同步工具仍颇具价值,故在此发布。

🚀 快速开始

该服务能够跟踪Obsidian保险库中的文件更改(创建、修改、删除),并将所有内容存储在SQLite中,可通过Docker卷进行访问。

✨ 主要特性

  • 全面的数据捕获:捕获文件的路径、标题、父文件夹、标签、创建日期、修改日期、内容、状态以及错误信息等多维度数据。
  • 灵活的安装方式:支持使用uvpython两种方式创建虚拟环境,以及使用uvpip两种方式安装依赖项。
  • 可扩展性强:具备作为同步工具的潜力,可通过重构添加对远程后端的支持、同步逻辑、数据库调整等功能。

📦 安装指南

先决条件

  • Python 3.12或更高版本
  • Docker和Docker Compose(用于容器化使用)
  • uv(可选,但推荐)

安装步骤

  1. 克隆仓库

     git clone https://github.com/pmmvr/obsidian-index-service.git
    cd obsidian-index-service
    
  2. 设置虚拟环境

    • 使用uv(推荐)

      uv venv
      source .venv/bin/activate # Linux/macOS
      .venv\Scripts\activate # Windows
      
    • 使用python(标准方法)

      python -m venv .venv
      source .venv/bin/activate  # Linux/macOS
      .venv\Scripts\activate     # Windows
      
  3. 安装依赖项

    • 使用uv(推荐)
      uv sync  # 从uv.lock安装
      uv pip install pytest pytest-bdd pytest-mock  # 用于测试
      
    • 使用pip
      pip install -e .
      pip install pytest pytest-bdd pytest-mock  # 用于测试
      

本地运行

pytest

📚 详细文档

项目状态

  • 完成:核心索引(元数据+内容)、Docker设置、文件监视、数据库CRUD。
  • 下一步:计划创建API,但转而使用插件方法。

未来步骤(作为同步工具的潜力)

通过一些重构,可将其视为一个同步工具:

  • 远程后端:添加对云存储(例如Dropbox)或服务器的支持。
  • 同步逻辑:推送本地更改(内容+元数据)到远程,拉取远程更新,处理冲突(例如最后写入者获胜)。
  • 数据库调整:添加sync_statusremote_id列。
  • 文件监视器更新:排队更改以进行同步,而不仅仅是索引。
  • CLI选项:添加--sync以手动触发或持续运行。
  • 错误处理:重试网络失败,记录问题。
  • 0 关注
  • 0 收藏,27 浏览
  • system 提出于 2025-09-19 06:51

相似服务问题

相关AI产品