Modow 3.0 / Sync Onboarding

Sync yourknowledge base from scratch.

Understand four roles, then fill in four fields. This guide explains how Obsidian, Self-hosted LiveSync, CouchDB, and Modow fit together before walking you through installation, configuration, and your first sync.

00 / How It Connects

Two devices.
One database.

On your computer, Obsidian keeps notes as ordinary local files inside a vault. The Self-hosted LiveSync plugin replicates changes to your CouchDB. On HarmonyOS, Modow connects to that same CouchDB. Each side keeps a local copy; CouchDB relays changes between them. No network? Keep writing. Back online? Sync resumes.

LiveSync topology / How data moves● Local-first nodes online
OBS Desktop · primary workspace

Obsidian

A desktop knowledge-management app. Notes are ordinary local files inside a vault folder. Obsidian itself is not a server.

LS Obsidian community plugin

Self-hosted LiveSync

A plugin inside Obsidian that sends and receives vault changes. It is the protocol adapter, not the server and not the database.

DB Remote · sync relay

CouchDB database

The remote database on your NAS, home server, or cloud host. Desktop and mobile use it to exchange changes. It is not either device's local folder.

HM HarmonyOS · local knowledge base

Modow

An independent local-first HarmonyOS app. It is not “Obsidian for HarmonyOS.” It speaks the same LiveSync protocol and connects to the same CouchDB.

THE ONE RULEObsidian LiveSync and Modow must use the same CouchDB root URL, database name, username, and password. Connect to the same database, and the two local libraries can exchange changes.
01 / NAME

Database name ≠ vault folder name

The CouchDB database name identifies the remote sync database. It may match the vault folder name or not; both clients must use the same database name.

02 / APP

Modow is not Obsidian for HarmonyOS

Modow is an independent HarmonyOS app with no affiliation to Obsidian. Compatibility comes from speaking the same sync protocol.

03 / ROLE

The LiveSync plugin is not the server

The plugin moves changes in and out of Obsidian. Your CouchDB is the server and remote sync database.

01 / Before You Start

Prepare before
you connect.

Make sure your devices and data are ready. Never use your only copy of an important vault for a first-sync experiment.

APP INSTALL

Install or update Modow 3.0

Requires HarmonyOS NEXT and supports API 14+, phones, tablets, and foldables. Install only through an official Modow release channel.

SAFE START

Make a backup first

Copy your desktop vault or remote directory. Verify upload, download, rename, and delete using a small test library before connecting real data.

  • Modow 3.0 is installed and Settings → Sync shows LiveSync and WebDAV.
  • Desktop Obsidian and mobile Modow will use the same database or remote directory.
  • You have a small test Markdown file for checking first-sync direction.
  • Public access uses HTTPS, a VPN, or a secure tunnel. CouchDB port 5984 is never exposed directly.
02 / Choose Your Route

Choose one
sync route.

Both routes bring files to your phone; they connect to different backends. Use one route per vault and never let multiple sync tools write the same vault at once.

RECOMMENDED FOR OBSIDIAN

Choose LiveSync

You already use Obsidian Self-hosted LiveSync, or you are willing to deploy CouchDB. Desktop and mobile use the same four database fields.

RECOMMENDED FOR NAS

Choose WebDAV

You have Jianguoyun, Synology, UGREEN, QNAP, Nextcloud, AList, or another standard WebDAV service. Both ends point to one remote directory.

Do not let iCloud, Syncthing, Obsidian Sync, LiveSync, and WebDAV write the same vault at the same time. Disable the old sync method before enabling the new one.
03 / Install CouchDB

No CouchDB?
One command.

The installer creates an isolated CouchDB, a lower-privilege daily sync account, and a LiveSync database. Run it on an always-on NAS, home server, or cloud host.

Install and start Docker first. If the host is off, your phone cannot sync. If you configure only a LAN address, sync will work only while you are on that network.

Open Terminal, download the installer and checksum list, verify the file, then run it:

curl -fsSL https://modow.vip/couchdb/install.sh -o install.sh curl -fsSL https://modow.vip/couchdb/checksums.txt -o checksums.txt grep ' install.sh$' checksums.txt | shasum -a 256 -c - bash install.sh

Check the environment without installing: bash install.sh --doctor

Start Docker Desktop, then run the following in PowerShell:

Invoke-WebRequest https://modow.vip/couchdb/install.ps1 -OutFile install.ps1 Invoke-WebRequest https://modow.vip/couchdb/checksums.txt -OutFile checksums.txt (Get-FileHash .\install.ps1 -Algorithm SHA256).Hash Get-Content .\checksums.txt Set-ExecutionPolicy -Scope Process Bypass .\install.ps1

Confirm the SHA256 matches checksums.txt. Environment check only: .\install.ps1 -Doctor

What the installer asks

  1. Administrator and sync accounts

    The administrator is used only for deployment and database creation. Daily sync uses a separate account with fewer permissions.

  2. Database and port

    Use one database per vault. Database names should contain lowercase letters, digits, and underscores only.

  3. Network scope

    Choose local-only or trusted-LAN access. Plain HTTP is for trusted LANs only; public access must use HTTPS.

  4. Connection details

    The installer prints the service URL, database name, and sync username. Save them for the next section.

The installer is safe to run again and does not delete or empty an existing database. Its local .env contains passwords: never upload, screenshot, or share it.
04 / Configure LiveSync

Configure LiveSync

You only need to touch two places: Self-hosted LiveSync settings in Obsidian and Sync settings in Modow. Both ends use the same four fields — CouchDB root URL, database name, daily-sync username, and password.

Already have an official sync account?
Use https://sync.modow.vip as the service URL in both Obsidian and Modow, turn off “Allow HTTP,” and enter the username, password, and database name you received. Do not add :5984. Do not add /_utils. https://sync.modow.net is a compatible alias; prefer .vip.
Modow fieldObsidian Self-hosted LiveSyncExample
Service URLURL / URIhttp://192.168.1.10:5984
DatabaseDatabase namemodow_livesync_test
UsernameUsernamemodow_sync
PasswordPasswordyour daily-sync password
Use the CouchDB root URL without /_utils. Official account: https://sync.modow.vip. Trusted LAN self-host: http://LAN-IP:5984. Public self-host: use an HTTPS reverse proxy such as https://your-domain. HTTPS uses port 443 by default, so omit it unless your port is non-standard.
Never expose CouchDB port 5984 directly to the public internet. On the official service, 5984 listens only on the server's loopback interface; public clients connect through HTTPS on 443. The admin panel is https://sync.modow.vip/_utils/ — browser management only, never a client service URL.

Step 1: create and initialize the database

Choose one method. Letting Modow create it is usually the fastest.

  1. Create it in Modow — recommended

    Go to Settings → Sync → LiveSync, enter a new database name and account, save, and tap Test connection. If the database does not exist, choose Create and initialize database.

  2. Create it with the Obsidian plugin

    Select CouchDB in Self-hosted LiveSync, fill in the same four fields, then run Create new database, Setup, or Check and fix database.

  3. Create it in CouchDB's admin panel

    For the official service, open https://sync.modow.vip/_utils/ in a browser. For a LAN server, open http://SERVER-IP:5984/_utils. Create an empty database, return to Modow, test the connection, and initialize it for LiveSync.

A daily sync account may not have permission to create databases. If creation is denied, use an administrator account temporarily or ask the administrator to create and authorize the database, then switch back to the daily account.

Step 2: configure desktop Obsidian

  1. Install Self-hosted LiveSync

    Open Obsidian's community plugins page, install Self-hosted LiveSync, and open its settings.

  2. Choose manual setup and CouchDB

    If asked for a setup method, choose manual server entry. Select CouchDB as the server type.

  3. Fill in four fields and check the database

    Use exactly the same service URL, database name, username, and password as Modow, then run Check and Fix database configuration.

  4. Sync one test file

    Confirm Obsidian has written a test Markdown file to CouchDB before configuring the phone.

Step 3: configure Modow on your phone

  1. Choose LiveSync

    Open Modow → Settings → Sync and select LiveSync.

  2. Enter and save the fields

    The service URL must start with http:// or https://. LAN HTTP normally includes :5984; standard HTTPS on 443 does not. Turn on Allow HTTP only for trusted LAN HTTP and keep it off for HTTPS.

  3. Test before syncing

    Confirm the connection works and the database has been initialized.

  4. Run Sync now

    Choose the first-sync direction based on where your data currently lives. Do not blindly merge both sides.

Modow 3.0 currently supports only unencrypted Self-hosted LiveSync databases with path obfuscation disabled (DB12 / P2). It stops safely when it encounters encryption or path obfuscation. Do not bypass that guard.
05 / Configure WebDAV

Configure WebDAV

WebDAV syncs files and folders. You need four fields: service URL, root directory, username, and password. On desktop, use an Obsidian community plugin such as Remotely Save or WebDAV Sync and point it to the same remote directory as Modow.

Modow fieldObsidian WebDAV pluginRule
Service URLURL / Server / EndpointInclude scheme and, when required, port and /dav/
Root directoryRemote base directory / pathUse the same vault directory on both ends
UsernameUsernameMust have read/write access
PasswordPasswordLogin password or app password, depending on provider
Jianguoyun
Generate an app password under Account → Security → Third-party applications. Do not use your web login password.
Service URL: https://dav.jianguoyun.com/dav/ Root directory: ModowVault Username: Jianguoyun account email Password: Jianguoyun app password Allow HTTP: Off
Synology
Install WebDAV Server and enable HTTPS. The default HTTPS port is commonly 5006.
Service URL: https://NAS-ADDRESS:5006/notes Root directory: ModowVault Username: DSM user with read/write access to notes Password: DSM user password
UGREEN NAS / QNAP
Enable WebDAV and confirm the account can read and write the shared folder.
Service URL: https://NAS-ADDRESS:PORT/SHARE Root directory: ModowVault Username: NAS username Password: NAS password
Nextcloud
The service URL usually contains the user's path. Prefer an app password.
Service URL: https://YOUR-DOMAIN/remote.php/dav/files/USERNAME/ Root directory: ModowVault Username: Nextcloud username Password: password or app password
AList / Baidu Netdisk / Quark
Do not paste a cloud-drive website URL into Modow. Expose it through AList's WebDAV endpoint and use an AList account with write permission.
Service URL: https://alist.example.com/dav/ Root directory: ModowVault or DRIVE/ModowVault Username: AList username Password: AList password
Other standard WebDAV services
The service URL and root directory are joined into the final sync path. If the service URL already points to the vault directory, leave root empty or use /; do not duplicate path segments.

Desktop and phone setup order

  1. Create a dedicated remote directory

    Use one directory per vault, such as ModowVault.

  2. Configure desktop Obsidian

    Install a WebDAV-capable community plugin and enter the service URL, remote directory, username, and password.

  3. Upload one test file

    Confirm the test Markdown file actually appears in the remote directory.

  4. Configure Modow

    Go to Settings → Sync → WebDAV, enter the same information, save, then test the connection.

  5. Keep delete propagation off at first

    Verify upload, download, and rename before deciding whether remote deletes should propagate.

If the connection test passes but no files appear, the most common cause is one missing or duplicated path segment between Service URL and Root directory. Check the test file's real server path.
06 / First Sync

First sync:
pick a direction.

The first sync decides which side is the source. Make a backup, then choose based on where your data really is.

REMOTE → PHONE

Desktop has content; phone is empty

Sync Obsidian to CouchDB or WebDAV first, then pull the remote data into Modow.

PHONE → REMOTE

Phone has content; remote is empty

Confirm the database or remote directory is new, then upload from Modow.

BACKUP → MERGE

Both sides have content

Back up both sides. Validate the merge in copies before connecting real data to one backend.

  • Start with one small Markdown test file, not the entire library.
  • Confirm the phone can open, edit, and sync the change back to desktop.
  • Test rename next; WebDAV users should test delete last.
  • Connect the real vault only after every check passes.
07 / Troubleshooting

Sync did not work?

First decide whether the failure is network, credentials, path, or database. Work through these checks in order.

LiveSync completes, but the phone is empty
Confirm Obsidian has synced successfully; database names match exactly; the target database exists; the daily account can read and write; and the database contains Self-hosted LiveSync data.
The database does not exist or cannot initialize
The daily account may be able to use existing databases but not create them. Use an administrator to create and initialize the database, then grant the daily account access.
The service URL is unreachable
Check the http:// or https:// scheme, port, LAN membership, firewall rules, and whether an internal-only service is reachable away from home.
WebDAV connects, but the directory is empty
Compare Modow's root directory with the Obsidian plugin's remote path. If the service URL already contains the share or vault, do not repeat it in Root directory.
Jianguoyun rejects the password
Generate an app password in third-party application management. Your normal web login password will not work.
Sync works at home, but not outside
This is a network reachability issue. Use home Wi-Fi only, or configure a VPN, Tailscale, ZeroTier, a secure tunnel, or a public HTTPS domain. Never expose port 5984 directly.
Configuration Ready

Test first.
Then sync everything.

Start with a backup and one test file. Confirm edits travel in both directions before connecting your real knowledge base.