Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To self-host Obsidian LiveSync, run CouchDB on an always-on VPS, keep its data on persistent storage, place a reverse proxy with HTTPS in front of it, initialize the database with the project’s provisioning script, and then enroll Obsidian devices with an encrypted Setup URI. Back up every vault first and disable Obsidian Sync, iCloud, and any other writer touching the same vault; combining synchronization products on one vault can produce conflicts or data loss.

What you are building

Self-hosted LiveSync is a community Obsidian plugin that uses CouchDB replication. Each Obsidian installation is a client. The VPS runs CouchDB as the synchronization server, while a reverse proxy or tunnel accepts HTTPS connections from those clients. A persistent Docker volume holds the CouchDB data so that replacing a container does not erase the database.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The normal Internet-facing path looks like this:

  • Obsidian desktop or mobile: the vault and the Self-hosted LiveSync plugin.
  • HTTPS endpoint: a hostname that devices can resolve and a certificate they trust.
  • Reverse proxy or tunnel: Caddy, Nginx, Traefik, Tailscale, or a Cloudflare Tunnel profile can provide the public entry point.
  • CouchDB container: the only required server service in the project’s Docker stack.
  • Persistent storage: a named Docker volume or a durable host directory containing the database.

For desktop devices that remain on a private network, you can keep the service intranet-only. Mobile access over the public Internet generally needs a publicly trusted HTTPS certificate. Do not expose CouchDB’s administration interface broadly when a firewall can restrict access to the proxy.

Prerequisites and decisions

Server and software

  • An always-on VPS reachable by every device that must synchronize.
  • Docker Engine and the Docker Compose plugin.
  • Enough disk space for the vault database, CouchDB metadata, logs, and backups.
  • A strong CouchDB administrator username and password.
  • A DNS name if you plan to use public HTTPS.

The project documentation does not publish an authoritative VPS CPU, memory, or throughput benchmark. Start with a conservative general-purpose VPS, monitor actual CPU, memory, disk, and network use, and resize when your vault count, attachment volume, or concurrent devices justify it. Avoid presenting a fixed “minimum” as a guarantee.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Choose the network model

Model When it fits Important condition
Public hostname with Caddy You want a conventional Internet endpoint with automated certificate management. Point the domain’s A record to the VPS and keep the proxy reachable on the required HTTPS port.
Nginx or Traefik You already operate one of these proxies or need its routing and policy controls. Use the CouchDB-specific proxy settings, including CORS, body-size, buffering, and root-path handling.
Private tunnel or mesh Your devices can join the same private network and you do not need a public endpoint. Every device must be able to reach the tunnel or mesh, and mobile certificate behavior still needs to be tested.

Prepare the vaults before installing anything

LiveSync should be the single synchronization writer for a vault. Before migration, make a separate backup of every vault on every device. A file-level copy is useful even if you also use a dedicated Obsidian vault backup tool.

  1. Close Obsidian or otherwise stop editing the vault while making the backup.
  2. Copy the complete vault, including the hidden .obsidian directory, to storage that is not the VPS database.
  3. Confirm that the backup opens as a readable vault on a separate device or in a separate directory.
  4. Disable Obsidian Sync, iCloud, and any other service that writes to this vault.
  5. Decide which device contains the authoritative version. That device will perform first-time server initialization.

Do not let two synchronization products continue writing to the same vault during setup. A successful connection does not merge incompatible writers safely.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create persistent CouchDB storage

Use the project’s Docker Compose files where possible. The essential property is persistence: vault data must live in a named volume or a host directory, not only in the writable layer of a temporary container.

On a new VPS, create a working directory and restrict its permissions:

mkdir -p ~/obsidian-livesync
cd ~/obsidian-livesync
mkdir -p data config
chmod 700 data config

If the repository’s Compose configuration defines a named volume, keep that volume across upgrades and container recreation. If you bind-mount a host directory, include it in your backup plan and ensure the Docker daemon can read and write it. Never treat a container deletion as a data-deletion method unless you have already verified a separate backup.

Set the CouchDB administrator values

Set the administrator username, administrator password, and database name in the Compose environment expected by the project. The documented default database name is obsidiannotes; change it only if you have a reason and use the same value during provisioning.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
export COUCHDB_USER='choose-a-unique-admin-name'
export COUCHDB_PASSWORD='use-a-long-random-password'
export COUCHDB_DATABASE='obsidiannotes'

Do not place these values in a public repository, a shell history shared with other users, or a chat message. A password manager or a root-readable environment file is safer than copying credentials through multiple systems.

Start the stack

From the directory containing the project Compose file, start CouchDB in detached mode:

docker compose up -d

Confirm that the container is running before attempting initialization:

docker compose ps
docker compose logs --tail=100 couchdb

The service name may differ in a customized Compose file. Use the name shown by docker compose ps rather than assuming that every deployment calls it couchdb.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify CouchDB before exposing it

The project README uses CouchDB’s /_up endpoint as the basic health test. Run an authenticated request against the local service or its protected proxy endpoint:

curl -u "$COUCHDB_USER:$COUCHDB_PASSWORD" 
  http://127.0.0.1:5984/_up

A healthy response is:

{"status":"ok"}

If the request fails, do not continue to client enrollment. Check the container logs, the mapped port, the administrator variables, and the VPS firewall. A connection refusal usually means the service is not listening or the port is not mapped. A 401 response indicates incorrect credentials. A 404 at /_up often means the request reached another service or the proxy path is wrong.

Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Run the project provisioning script

After CouchDB starts and the health check succeeds, run the repository’s couchdb-init.sh provisioning wrapper. Supply the hostname, administrator username, password, and database variables required by the script. Run it from the project directory or pass the script’s documented path explicitly.

./couchdb-init.sh 
  --hostname "$COUCHDB_HOSTNAME" 
  --username "$COUCHDB_USER" 
  --password "$COUCHDB_PASSWORD" 
  --database "$COUCHDB_DATABASE"

The exact option spelling can follow the version of the repository files you installed; use the script’s built-in help if your copy names the variables differently. Successful initialization is reported as “CouchDB provisioning completed.”

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The first-device setup can overwrite or reinitialize server state. Run it only when the selected vault is intentionally the source of truth for a new or rebuilt server. If an existing server already contains the authoritative data, do not initialize it from an unrelated or older vault.

Put a reverse proxy and HTTPS in front

DNS and certificate

Create an A record for the chosen hostname pointing to the VPS’s public address. Wait for DNS propagation, then configure the proxy to forward the hostname to CouchDB. Caddy can obtain and renew a public certificate automatically when DNS and firewall access are correct. Nginx and Traefik require you to configure certificate issuance or install certificates through your existing process.

For mobile clients, use a certificate issued by a publicly trusted authority. A self-signed certificate that works on one desktop can fail on a phone because the mobile operating system does not trust your private certificate authority. Intranet-only desktop use can avoid Internet exposure, but every desktop still needs a route to the private endpoint.

Nginx settings that prevent common failures

The project’s server guide calls out three Nginx problems:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  • Fast-fetch progress stalls: disable response buffering with proxy_buffering off; for the CouchDB location.
  • Large requests return 413: raise client_max_body_size to a value appropriate for your largest attachment or batch.
  • Database requests return 404: mount CouchDB at the root location rather than adding an extra path segment that changes the database URL.

Also pass the CORS and proxy headers required by your LiveSync configuration, preserve the HTTP method and request body, and allow long-running requests to complete. A proxy that silently rewrites paths can make CouchDB appear healthy while breaking replication.

Firewall and administrative exposure

Allow public traffic only to the proxy’s HTTPS port, plus SSH from an administration network if possible. Keep CouchDB’s native port bound to localhost or a private interface instead of opening it to the entire Internet. If a tunnel terminates outside the VPS, allow only the tunnel’s required ingress.

Test the public endpoint from a network that is not the VPS itself. Confirm that the certificate hostname matches, that an authenticated health request reaches CouchDB, and that an unauthenticated request cannot administer the database. Never paste administrator credentials into a browser URL or log file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install and enroll LiveSync on the first device

Use the source-of-truth path once

  1. Install and enable Self-hosted LiveSync in the vault you selected as authoritative.
  2. Open the plugin’s quick-setup workflow and generate or receive a Setup URI.
  3. Choose the first-time setup or server-initialization path on this device.
  4. Enter or confirm the CouchDB endpoint, database, and encryption settings supplied by your server setup.
  5. Use the plugin’s test-settings action and wait for confirmation that the server is initialized.
  6. Allow the initial synchronization to finish before editing the vault on another device.

A Setup URI begins with obsidian://setuplivesync?settings= and contains encrypted connection settings, including credentials. Treat the complete URI as a secret even though it is convenient to copy between devices.

Add additional devices

  1. Install Self-hosted LiveSync in the intended vault on the second device.
  2. Open the same quick-setup workflow.
  3. Choose the existing-synchronization path, not first-time initialization.
  4. Import the Setup URI using a secure transfer method.
  5. Enter the Setup URI passphrase when prompted and run the connection test.
  6. Wait for the device to complete its first pull before making substantial edits.

The Setup URI passphrase decrypts the URI. It is different from the vault encryption passphrase. Store the two values separately, and do not transmit both through the same channel. For example, send the URI through an encrypted password-sharing mechanism and provide its passphrase by a separate channel.

Validate synchronization safely

Use a small, reversible test before trusting the deployment with a large edit:

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
  1. Create a uniquely named test note on the source device.
  2. Wait for the LiveSync status to show that the change has been sent.
  3. Open the vault on a second device and verify the note and its contents.
  4. Edit a different line on the second device and confirm that the source device receives it.
  5. Inspect attachments and nested folders, not only a single Markdown file.

Do not resolve a conflict by deleting one side until you know which copy is authoritative. Preserve the pre-resolution vault backup if an unexpected merge appears.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Backups, upgrades, and recovery

Back up more than the running container

Back up the vaults independently of CouchDB. Also back up the persistent CouchDB volume and retain the administrator credentials, database name, proxy configuration, and Setup URI material in secure storage. A VPS snapshot alone is not a substitute for a restorable vault copy because snapshots can be unavailable during an account or disk failure.

Schedule backups during periods of low editing activity, verify that the files can be read, and periodically perform a test restore to a separate directory or disposable server. Keep at least one copy outside the VPS provider.

Upgrade without destroying state

  1. Confirm a recent vault backup and a backup of the persistent CouchDB data.
  2. Record the current Compose configuration and image versions.
  3. Stop or pause synchronization during maintenance so clients do not queue confusing changes.
  4. Pull the intended image update and recreate the container while retaining the same volume.
  5. Run the /_up health check and verify the expected database before reconnecting clients.
  6. Resume synchronization on one device, then check the remaining devices.

Do not run a database reinitialization script as a routine upgrade step. Initialization is for a new or deliberately rebuilt server and can change server state.

Recovering from a bad initialization

Stop client edits, preserve the current server data, and identify which backup is authoritative. Restore the chosen vault or database copy to a separate recovery location first. Only after you have verified it should you rebuild the production server and perform first-time initialization from that source-of-truth device.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Security checklist

  • Use a long, unique CouchDB administrator password and rotate it if it has been exposed.
  • Keep the VPS operating system, Docker Engine, Compose plugin, proxy, and CouchDB image updated through a controlled maintenance process.
  • Expose only the proxy’s public port; restrict the native CouchDB port with binding and firewall rules.
  • Use a publicly trusted certificate for Internet-connected mobile devices.
  • Keep Setup URI material, its passphrase, the vault encryption passphrase, and administrator credentials in separate secure locations.
  • Review proxy access logs for unexpected requests and avoid logging authorization headers.
  • Back up before plugin, proxy, database, or operating-system changes.

Troubleshooting by symptom

Symptom Likely cause Action
/_up does not return {"status":"ok"} CouchDB is stopped, the port is wrong, or credentials are invalid. Check docker compose ps, container logs, the local binding, and the administrator variables.
Public hostname works on the VPS but not on a phone Certificate trust, DNS, firewall, or mobile routing problem. Test from a separate network, verify the certificate hostname and chain, and confirm that the proxy port is reachable.
Replication returns 404 for a database The proxy mounted CouchDB below an extra path segment. Mount CouchDB at the root location and preserve the original request path.
Large attachment or batch returns 413 Nginx or another proxy limits request size. Increase the proxy’s client body-size limit and reload it, then retry with one device first.
Fast-fetch appears to stop making progress Proxy response buffering interferes with streaming progress. Disable proxy buffering for the CouchDB location and reload the proxy.
Setup URI will not import The URI was truncated, altered by a messaging app, or the passphrase is wrong. Copy the complete URI beginning with obsidian://setuplivesync?settings=, transfer it as one item, and verify the separate URI passphrase.
Two devices show divergent edits Another sync service is still writing, or both devices were initialized as sources. Stop all writers, preserve backups, identify the authoritative copy, and enroll other devices through existing synchronization.
Data disappears after recreating the container The database was stored only in an ephemeral container layer. Restore from backup, then recreate the stack with a named volume or durable host mount.

How this compares with other synchronization approaches

A VPS gives you control, but you operate the server, certificates, updates, backups, firewall, and recovery process. Evaluate alternatives using the same questions rather than comparing only a monthly price.

Question Self-hosted CouchDB on a VPS Managed synchronization Other self-hosted backends or peer-to-peer options
Who operates infrastructure? You operate the VPS, proxy, database, and backups. The provider operates the service; you follow its availability and recovery policies. You operate the infrastructure required by the selected backend or peers.
Where do data and backups reside? On your VPS and the backup locations you choose. According to the provider’s storage and retention terms. Across the object storage, servers, or devices that you configure.
Mobile HTTPS Available when your proxy has a publicly trusted certificate and reachable hostname. Usually included as part of the managed endpoint. Depends on the backend and network design.
Customization High control over proxy, storage, and operational policy. Constrained by the service’s supported settings. Varies; object-storage backends such as MinIO, S3, and R2 and WebRTC peer-to-peer designs have different assumptions.
Recovery responsibility You must test backups, restores, and migration procedures. Read the provider’s export and recovery guarantees. You must understand each component’s backup and availability behavior.
Operational effort Higher: updates, security, monitoring, and troubleshooting are yours. Lower server administration, but less infrastructure control. Ranges from moderate to high depending on the topology.

Choose the VPS route when control over data location, proxy policy, and storage matters enough to justify ongoing administration. Choose a managed route when you do not want to maintain a public database endpoint. Whichever model you use, keep an independent vault backup and avoid running two synchronization writers against one vault.

Operational checklist

  • VPS is always on and reachable from every intended device.
  • Docker Compose starts CouchDB with a persistent volume.
  • /_up returns {"status":"ok"} with authentication.
  • The provisioning wrapper completed against the intended hostname and database.
  • DNS points to the VPS and the proxy presents a trusted certificate where required.
  • Native CouchDB administration is not unnecessarily exposed to the Internet.
  • Only one device performed first-time initialization.
  • Additional devices used existing synchronization.
  • Setup URI and both passphrases are stored separately and securely.
  • Vault and CouchDB backups have been tested by restoring a copy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.