Files
ObsidianAI/FIX_SUMMARY.md

3.6 KiB

Obsidian CouchDB Sync - Problem & Solution

What Was Wrong

Your setup had three separate pieces that don't work together:

  1. CouchDB - Storing files (WORKING)
  2. Obsidian Self-Hosted Sync Plugin - Reading from CouchDB (WORKING)
  3. Filesystem Sync - Writing files to disk (MISSING!)

Why Files Weren't Showing

The Obsidian plugin can READ files from CouchDB through its API, but:

  • Files weren't being written to the filesystem
  • Your watch_changes.py only printed changes, didn't save files
  • Your couch_sync.py CAN sync, but it's not running continuously

The Fix

I created sync_daemon.py which:

  1. Connects to CouchDB
  2. Does initial full sync (downloads all files)
  3. Watches for changes in real-time
  4. Writes updated files to disk immediately
  5. Reconstructs files from LiveSync's chunk format
  6. Skips encrypted files automatically

Quick Start

Step 1: Test Connection

cd obsidian_automator
python3 test_connection.py

This verifies CouchDB is accessible and shows your files.

Step 2: Configure Target Folder

Edit sync_daemon.py, line 16:

TARGET_FOLDER = "/path/to/your/obsidian/vault"

Or keep it syncing to current directory:

TARGET_FOLDER = "/home/diego/Scratchpad/obsidian-magic/obsidian_automator"

Step 3: Run Sync Daemon

python3 sync_daemon.py

You should see:

  • Initial sync downloading all files
  • Real-time updates as you edit in Obsidian

Step 4 (Optional): Run as Background Service

See SYNC_SETUP.md for systemd service setup.

How It Works

┌─────────────┐
│  Obsidian   │ ← Edit files
└──────┬──────┘
       │
       ↓
┌─────────────────┐
│  Self-Hosted    │ ← Uploads to CouchDB
│  Sync Plugin    │
└──────┬──────────┘
       │
       ↓
┌──────────────┐
│   CouchDB    │ ← Stores in chunks
└──────┬───────┘
       │
       ↓ _changes feed
┌──────────────┐
│ sync_daemon  │ ← NEW! Watches & writes files
└──────┬───────┘
       │
       ↓
┌──────────────┐
│  Filesystem  │ ← Files appear here!
└──────────────┘

Files Changed/Created

  • sync_daemon.py (NEW) - Main sync daemon
  • test_connection.py (NEW) - Connection tester
  • SYNC_SETUP.md (NEW) - Detailed setup guide
  • FIX_SUMMARY.md (NEW) - This file

Existing files (not modified):

  • couch_sync.py - Still used by web UI
  • couch_manager.py - Still used for operations
  • watch_changes.py - Keep for debugging

Next Steps

  1. Run test_connection.py to verify setup
  2. Edit TARGET_FOLDER in sync_daemon.py
  3. Run sync_daemon.py
  4. Check that files appear in target folder
  5. Make changes in Obsidian and watch them sync
  6. (Optional) Set up as systemd service for auto-start

Troubleshooting

No files appearing?

  • Check TARGET_FOLDER path is correct and writable
  • Verify CouchDB connection with test_connection.py
  • Check daemon output for errors

Connection refused?

  • Verify CouchDB is running: curl http://100.100.112.48:5984/
  • Check credentials in sync_daemon.py
  • Check firewall/network settings

Files are encrypted?

  • Daemon skips encrypted files by default
  • To sync encrypted files, need to add passphrase decryption

Need help? Check SYNC_SETUP.md for more details!