Henrique Manduca222 downloadsSync notes to your home CouchDB database with MySync.
MySync is an Obsidian plugin for syncing vault files through your own CouchDB server.
It keeps a local PouchDB index of files in your vault, then lets you push that local state to CouchDB or pull remote state back into Obsidian. It is intended for users who want to run their own sync backend instead of relying on a hosted sync provider.
[!WARNING] Back up your vault before using it with important notes. Pulling from CouchDB can restore, overwrite, or delete local files based on the remote database state.
1.12.7 or newer.22.22.0 or newer for development builds.MySync does not create the remote CouchDB database for you. Create the database first, then configure its URL, database name, username, and password in the plugin settings.
Download the release files and place them in your vault plugin folder:
VaultFolder/.obsidian/plugins/mysync/
The folder must contain:
main.js
manifest.json
styles.css
Reload Obsidian, open Settings -> Community plugins, and enable MySync.
Open Settings -> MySync in Obsidian.
https://couchdb.example.com.mysync.Use HTTPS for remote servers whenever possible. A dedicated CouchDB user with access only to the MySync database is recommended.
MySync adds these command palette commands:
The Reset local databases action is available in MySync settings. It removes local file records, revision trees, conflicts, baselines, and replication checkpoints, then recreates both databases with the same vault-specific names. It does not delete or modify files in the vault and does not make requests that change the remote CouchDB database.
After a reset, pull before pushing when the configured remote database already contains MySync records. The regular push safety check blocks a full push to a non-empty remote database until a new remote baseline has been established.
The ribbon icon runs Push to remote.
The status bar shows queued local changes, sync progress, push or pull progress, operation results, and errors. When idle, it shows the last successful push time when available.
.md, .pdf, and image files so far.
Other file types may not sync or restore correctly yet..env, vault content, or secrets.This repository includes .env.sample and setup_couchdb.sh as optional
helpers for preparing a CouchDB user and database security settings.
Copy .env.sample to .env, adjust the values, make sure the database already
exists, then run:
./setup_couchdb.sh
The script uses an admin account to create a plugin user and assign a role to the configured database. Review the script before running it against a real server.
Clone this repository into your vault plugin folder:
VaultFolder/.obsidian/plugins/mysync
Install dependencies:
npm install
Run the development watcher:
npm run dev
Create a production build:
npm run build
npm run build runs TypeScript checks and produces the bundled plugin files in
dist/.
Run the unit tests:
npm test
Use npm run test:watch while developing, npm run test:coverage to generate
the coverage report, or npm run check to run the production build, test type
checks, and unit tests together. See TESTING.md for the incremental
testing roadmap and mock boundaries.
For local Obsidian testing, reload Obsidian after starting the development build, then enable the plugin from community plugin settings.
To bump the plugin version, use:
npm version patch
You can also use minor or major. The version hook updates
manifest.json and versions.json. Release tags are generated without a
v prefix so they match the manifest version.
MIT. See LICENSE.