refactor: remove legacy Obsidian connector support

This commit is contained in:
Anish Sarkar 2026-04-22 00:10:24 +05:30
parent 16ea8e2401
commit 99623a85d5
10 changed files with 44 additions and 1046 deletions

View file

@ -1,143 +1,60 @@
---
title: Obsidian
description: Connect your Obsidian vault to SurfSense
description: Sync your Obsidian vault with the SurfSense plugin
---
# Obsidian Integration Setup Guide
# Obsidian Plugin Setup Guide
This guide walks you through connecting your Obsidian vault to SurfSense for note search and AI-powered insights.
<Callout type="warn">
This connector requires direct file system access and only works with self-hosted SurfSense installations.
</Callout>
SurfSense integrates with Obsidian through the SurfSense Obsidian plugin.
The old server-side vault path scanner is no longer supported.
## How it works
The Obsidian connector scans your local Obsidian vault directory and indexes all Markdown files. It preserves your note structure and extracts metadata from YAML frontmatter.
The plugin runs inside your Obsidian app and pushes note updates to SurfSense over HTTPS.
This works for cloud and self-hosted deployments, including desktop and mobile clients.
- For follow-up indexing runs, the connector uses content hashing to skip unchanged files for faster sync.
- Indexing should be configured to run periodically, so updates should appear in your search results within minutes.
---
## What Gets Indexed
## What gets indexed
| Content Type | Description |
|--------------|-------------|
| Markdown Files | All `.md` files in your vault |
| Frontmatter | YAML metadata (title, tags, aliases, dates) |
| Wiki Links | Links between notes (`[[note]]`) |
| Inline Tags | Tags throughout your notes (`#tag`) |
| Note Content | Full content with intelligent chunking |
| Markdown files | Note content (`.md`) |
| Frontmatter | YAML metadata like title, tags, aliases, dates |
| Wiki links | Linked notes (`[[note]]`) |
| Tags | Inline and frontmatter tags |
| Vault metadata | Vault and path metadata used for deep links and sync state |
<Callout type="warn">
Binary files and attachments are not indexed by default. Enable "Include Attachments" to index embedded files.
</Callout>
## Quick start
---
## Quick Start (Local Installation)
1. Navigate to **Connectors** → **Add Connector** → **Obsidian**
2. Enter your vault path: `/Users/yourname/Documents/MyVault`
3. Enter a vault name (e.g., `Personal Notes`)
4. Click **Connect Obsidian**
1. Open **Connectors** in SurfSense and choose **Obsidian**.
2. Click **Open plugin releases** and install the latest SurfSense Obsidian plugin.
3. In Obsidian, open **Settings → SurfSense**.
4. Paste your SurfSense API token from the connector setup panel.
5. Paste your SurfSense backend URL in the plugin's **Server URL** setting.
6. Choose the Search Space in the plugin, then run the first sync.
7. Confirm the connector appears as **Obsidian — <vault>** in SurfSense.
<Callout type="info">
Find your vault path: In Obsidian, right-click any note → "Reveal in Finder" (macOS) or "Show in Explorer" (Windows).
You do not create or configure a vault path in the web UI. The connector row is created automatically when the plugin calls `/api/v1/obsidian/connect`.
</Callout>
<Callout type="info" title="Periodic Sync">
Enable periodic sync to automatically re-index notes when content changes. Available frequencies: Every 5 minutes, 15 minutes, hourly, every 6 hours, daily, or weekly.
</Callout>
## Self-hosted notes
---
## Docker Setup
For Docker deployments, you need to mount your Obsidian vault as a volume.
### Step 1: Update docker-compose.yml
Add your vault as a volume mount to the SurfSense backend service:
```yaml
services:
surfsense:
# ... other config
volumes:
- /path/to/your/obsidian/vault:/app/obsidian_vaults/my-vault:ro
```
<Callout type="info">
The `:ro` flag mounts the vault as read-only, which is recommended for security.
</Callout>
### Step 2: Configure the Connector
Use the **container path** (not your local path) when setting up the connector:
| Your Local Path | Container Path (use this) |
|-----------------|---------------------------|
| `/Users/john/Documents/MyVault` | `/app/obsidian_vaults/my-vault` |
| `C:\Users\john\Documents\MyVault` | `/app/obsidian_vaults/my-vault` |
### Example: Multiple Vaults
```yaml
volumes:
- /Users/john/Documents/PersonalNotes:/app/obsidian_vaults/personal:ro
- /Users/john/Documents/WorkNotes:/app/obsidian_vaults/work:ro
```
Then create separate connectors for each vault using `/app/obsidian_vaults/personal` and `/app/obsidian_vaults/work`.
---
## Connector Configuration
| Field | Description | Required |
|-------|-------------|----------|
| **Connector Name** | A friendly name to identify this connector | Yes |
| **Vault Path** | Absolute path to your vault (container path for Docker) | Yes |
| **Vault Name** | Display name for your vault in search results | Yes |
| **Exclude Folders** | Comma-separated folder names to skip | No |
| **Include Attachments** | Index embedded files (images, PDFs) | No |
---
## Recommended Exclusions
Common folders to exclude from indexing:
| Folder | Reason |
|--------|--------|
| `.obsidian` | Obsidian config files (always exclude) |
| `.trash` | Obsidian's trash folder |
| `templates` | Template files you don't want searchable |
| `daily-notes` | If you want to exclude daily notes |
| `attachments` | If not using "Include Attachments" |
Default exclusions: `.obsidian,.trash`
---
- Use your public or LAN backend URL that your Obsidian device can reach.
- No Docker bind mount for the vault is required.
- If your instance is behind TLS, ensure the URL/certificate is valid for the device running Obsidian.
## Troubleshooting
**Vault not found / Permission denied**
- Verify the path exists and is accessible
- For Docker: ensure the volume is mounted correctly in `docker-compose.yml`
- Check file permissions: SurfSense needs read access to the vault directory
**Plugin connects but no files appear**
- Verify the plugin is pointed to the correct Search Space.
- Trigger a manual sync from the plugin settings.
- Confirm your API token is valid and not expired.
**No notes indexed**
- Ensure your vault contains `.md` files
- Check that notes aren't in excluded folders
- Verify the path points to the vault root (contains `.obsidian` folder)
**Unauthorized / 401 errors**
- Regenerate and paste a fresh API token from SurfSense.
- Ensure the token belongs to the same account and workspace you are syncing into.
**Changes not appearing**
- Wait for the next sync cycle, or manually trigger re-indexing
- For Docker: restart the container if you modified volume mounts
**Docker: "path not found" error**
- Use the container path (`/app/obsidian_vaults/...`), not your local path
- Verify the volume mount in `docker-compose.yml` matches
**Cannot reach server URL**
- Check that the backend URL is reachable from the Obsidian device.
- For self-hosted setups, verify firewall and reverse proxy rules.
- Avoid using localhost unless SurfSense and Obsidian run on the same machine.