---
tags:
- Documentation
- Bookstack
- Notes
---
# Obsidian
# Setup
Here is a clean, professional, and well-structured Markdown guide for your Obsidian Self-Hosted LiveSync documentation.
I have organized the configuration into logical, step-by-step technical phases, cleaned up syntax formatting (such as fixing case sensitivity in commands like `docker exec`), and added visual callouts for important warnings and credentials.
# Obsidian Self-Hosted LiveSync Configuration Guide
This guide details the deployment of a self-hosted CouchDB instance using Docker Compose and the generation of configuration URIs to enable cross-device synchronization for Obsidian.
## 1. Prerequisites
- A reverse proxy (e.g., Nginx Proxy Manager, Cloudflare Tunnels, or Caddy) configured to route external traffic to your container.
- SSL/TLS certificate configured for your sync domain: `https://obsidian.mikemcfetridge.com`
## 2. Database Deployment (Docker Compose)
Deploy the specialized CouchDB image tailored for Obsidian LiveSync. Create a `docker-compose.yml` file in your directory and add the service definition below:
```
services:
couchdb-obsidian-livesync:
image: 'docker.io/oleduc/docker-obsidian-livesync-couchdb:master'
container_name: couchdb-obsidian-livesync
restart: always
ports:
- '5984:5984'
environment:
- COUCHDB_DATABASE=obsidian
- COUCHDB_USER=miker
- COUCHDB_PASSWORD=tw9222dvO91ZHb
- SERVER_DOMAIN=https://obsidian.mikemcfetridge.com
volumes:
- ./data:/opt/couchdb/data
```
### Deployment Verification
1. Launch the container stack in detached mode:
```
docker compose up -d
```
2. Validate that the CouchDB instance is active and accessible via the web administration console by navigating to: `https://obsidian.mikemcfetridge.com/_utils`
## 3. Generate the Client Setup URI
To easily provision your desktop and mobile clients, log into the running container environment to generate an encrypted initialization URI using Deno.
### Step 1: Open an Interactive Terminal in the Container
```
docker exec -it couchdb-obsidian-livesync /bin/bash
```
### Step 2: Configure Environment Variables & Run the Generator Script
Paste the following block into the container terminal to set up the runtime environment and execute the configuration tool:
```
export hostname=https://obsidian.mikemcfetridge.com
export database=obsidian
export username=miker
export password=tw9222dvO91ZHb
export passphrase=7ixpCPi5OEDF6J
# Execute the setup URI generator script
deno run -A https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/flyio/generate_setupuri.ts
```
### Step 3: Capture the Output
The script will output your specific **Setup-URI Passphrase** and the **Obsidian configuration string**.
> ⚠️ **Important:** The text passphrase generated by the script will **never** be shown again. Save it immediately in a secure location.
*Example Output:*
```
Your passphrase of Setup-URI is: little-shadow
obsidian://setuplivesync?settings=%25dcc45454e4eda1f3feb43f050100000041732c3c957c9bac41a96df3040ab6b5uEIf1EWiXa%2BgGabAhHBCF9wkHfvj%2BwSfHlZOctmyUYdDfqwkIfbibE4yge9uNaARqtixj4OZH9XZs3S4cjRclUNvpZiqsq46SOniGB9X2Svk58HFcwfNaW67mNQLQn2cSWRwvN9SudeqVWiLjWKczz6DWBcYGwwsyO%2BLxnw86txKZBC6yE2AaY%2B2dz%2F0qWQBZaxh%2FCJWjxPyRGewUhfUbZnuLQmtu0RY%2FfYgVQQZ%2FNvzmmUpSrpFeJq%2BYP%2F3V1w9PmVNSiDo62a9rnWjjBpk0ffQGxuNEb36Tu9i%2BrRKROnz4T3nsOX6IWZJd4WhuljboUsz9dKHwcNSsDFyNDFx3XMPcjaFO1%2BcMulxP8zJh%2BS3p%2BNrvg5kdsM0%2BGsg%2F29mMUnbFXXETdIAX62Jb%2FhuuRaOy0Cwjccpg02tpXc6HGj7tZCXh1fh4EPNUK09QmkzDOtIcb33yva%2FMNCzY9cVr0TCLr2MVLlnRR9P1sQkGCDTqI0NJvG1B0FvGE3XASBQpCKQH1XnED0z5IFsTH4m8gjHbR2XtDaTbFqNA%2BL9cGjztPXKa0g8xD0mruF5uH1zCp0sELD%2Fghw%2FsXUYcCPt7gmVryU9ioFzjRVt7UTexFpr50ZPOfOfVwfy3FCHk4lCNDREeHdstj2EI19lyBL4NyVuIt5%2FqE%2FaOib04ZefjsTETB%2F7rdbblwebgD1Il%2FWPjtL3uKyxiM11W6pUQtXiT7CvoXfu3rf9K5%2FihFjiomY08xYb60Q1LyIjhG1SIB%2BsvS7Vc9qzyGFW1JdQUEWz3IFpX7QVuk1ZX2uovJiAqwD4eTp0xIUXPNLmeTbQ0rFeKd8yYR6DpMLejkWedW9x%2FxL0q62yvlXsOuAKhQLOgPRQ3A%3D%3D
```
## 4. Client Plugin Provisioning
Repeat these final configuration steps across each device (Desktop, Mobile, or Tablet) you intend to synchronize.
1. **Install Plugin:** Ensure the community plugin **Self-hosted LiveSync** is installed and enabled inside your Obsidian client.
2. **Import Settings:** Open the Obsidian Command Palette (`Ctrl+P` or `Cmd+P`), choose **Self-hosted LiveSync: Use the copied setup URI**, and paste your full `obsidian://setuplivesync?settings=...` string.
3. **Authenticate:** Provide the setup-uri text passphrase generated in Section 3 when prompted.
4. **Initialize:** Click **Yes** when prompted to initiate the storage sync configuration sequence. Select **Keep them disabled** during the initial sync dialogue if you wish to configure sync intervals manually later.
5. **Finalize:** Reload the Obsidian application to apply and activate the synchronization backend.