Obsidian Index Service logo

Obsidian Index Service

by pmmvr

This service monitors an Obsidian vault directory and indexes Markdown files (metadata and full content) into an SQLite database. It can be used as an agnostic note indexer or sync tool.

View on GitHub

Last updated: N/A

What is Obsidian Index Service?

The Obsidian Index Service is a tool that monitors an Obsidian vault and indexes its Markdown files into an SQLite database. It tracks file changes, extracts metadata (path, title, tags, dates), and stores the full content of each note.

How to use Obsidian Index Service?

To use the service, clone the repository, set up a virtual environment, install dependencies, configure environment variables for the vault and database paths, and then run the main.py script. Alternatively, you can use Docker Compose to build and run the service in a container.

Key features of Obsidian Index Service

  • Indexes Obsidian vault content into SQLite

  • Tracks file creation, modification, and deletion

  • Extracts metadata: path, title, tags, dates

  • Includes full text of notes

  • Supports Docker deployment

  • Can be used for read-only access by other services

Use cases of Obsidian Index Service

  • Creating an index of Obsidian notes for external applications

  • Providing a data source for searching and analyzing notes

  • Enabling read-only access to note metadata for other services

  • Potentially as a basis for a note synchronization tool

  • Backup and versioning of Obsidian notes metadata

FAQ from Obsidian Index Service

What is the purpose of this service?

To index Obsidian vault content into an SQLite database for easy access and integration with other applications.

What kind of data is indexed?

The service indexes file paths, titles, parent folders, tags, created/modified dates, and the full content of each note.

How does it track changes in the vault?

It uses a file watcher to monitor the vault directory for file creation, modification, deletion, and renaming events.

Can I access the database from other services?

Yes, the service can be configured to allow read-only access to the database from other services using Docker volumes.

What are the future plans for this project?

Future steps include potentially transforming it into a sync tool with support for remote backends and conflict resolution.