--- 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:
YAML
``` 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:
Bash
``` 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
Bash
``` 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:
Bash
``` 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:*
Plaintext
``` 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.