{ "stable": true, "versions": { "1.0.0": { "manifest": { "id": "com.github.fengchang.couchdb-cloudron", "manifestVersion": 2, "minBoxVersion": "9.1.0", "version": "1.0.0", "upstreamVersion": "3.5.2", "title": "CouchDB for Obsidian LiveSync", "author": "fengchang", "tagline": "CouchDB preconfigured as the sync backend for Obsidian Self-hosted LiveSync", "description": "# CouchDB for Obsidian LiveSync — Cloudron community package\n\nA [Cloudron](https://cloudron.io) community package that runs\n[Apache CouchDB](https://couchdb.apache.org/) **3.5.2**, preconfigured out-of-the-box as the\nsync backend for the [Obsidian Self-hosted LiveSync](https://github.com/vrtmrz/obsidian-livesync)\nplugin.\n\nUnlike a bare CouchDB, after install you do **not** run single-node setup, create an admin,\nfix CORS, or tweak config. The container comes up already valid for LiveSync. You just read the\ngenerated credentials and paste them into the plugin on each device.\n\n## What it configures for you\n\n- Single-node setup completed (`[couchdb] single_node = true`) → system DBs created on boot.\n- Strong admin password generated on first run (never hardcoded).\n- `require_valid_user = true`, with `require_valid_user_except_for_up = true` so the `/_up`\n health check stays reachable.\n- CORS for Obsidian desktop **and** mobile: `app://obsidian.md`, `capacitor://localhost`,\n `http://localhost`.\n- `max_http_request_size` / `max_document_size` tuned for notes + attachments.\n- Default `obsidian` database auto-created.\n- Data + mutable config under `/app/data` (Cloudron-backed up).\n\nSingle-user by design: secured by the CouchDB admin password, not Cloudron SSO — LiveSync is\npersonal single-user sync, not multi-user collaboration.\n\n## Install\n\nCloudron dashboard → App Store → **Add custom app → Community app**, then paste the raw URL:\n\n```\nhttps://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/CloudronVersions.json\n```\n\nOnly this file needs to be public to install the app.\n\n## After install: connect Obsidian LiveSync\n\n1. **Get your credentials.** They're generated on first run and written to\n `/app/data/credentials.txt` (and printed once to the app log). Retrieve via the app's\n Terminal (`cat /app/data/credentials.txt`), the File Manager, or the log view. The file\n contains the full HTTPS endpoint URL, username (`admin`), password, and the `obsidian`\n database name.\n2. **Enter them in the plugin** under *Self-hosted LiveSync → Remote Database configuration*,\n then run *Check database configuration*.\n\n[POSTINSTALL.md](./POSTINSTALL.md) has the full step-by-step, including the two mobile\ngotchas (CORS and \"On events\" sync mode) and the back-up-first warning. It's also shown to you\nautomatically right after install.\n\n## Security note\n\nThe endpoint is internet-reachable and `require_valid_user` is on — keep the admin password\nsafe. Anyone with it can read/write your synced vaults.\n\n## License\n\nThis packaging (Dockerfile, scripts, config, docs) is licensed under the [MIT License](./LICENSE).\nIt installs and redistributes [Apache CouchDB](https://couchdb.apache.org/), which is licensed\nseparately under Apache-2.0. The CouchDB name and logo are trademarks of the Apache Software\nFoundation.\n\n---\n\nPackaging internals, the build/test loop, and how to publish this package are in\n**[DEVELOPER.md](./DEVELOPER.md)**.\n", "changelog": "- Initial release.\n- CouchDB 3.5.2 on cloudron/base:5.0.0, preconfigured for Obsidian Self-hosted LiveSync.\n- Single-node setup auto-completed; admin user + password generated on first run.\n- require_valid_user enforced; /_up kept open for health checks.\n- CORS configured for Obsidian desktop and mobile (including capacitor://localhost).\n- Default \"obsidian\" database auto-created; credentials written to /app/data/credentials.txt.\n", "postInstallMessage": "## CouchDB is ready for Obsidian LiveSync 🎉\n\nYour CouchDB is already configured for the Self-hosted LiveSync plugin. There is **no setup\nscreen** to complete — just copy your credentials into the plugin.\n\n### 1. Get your credentials\n\nA strong admin password was generated on **first run**. Find it either way:\n\n- **File Manager / Terminal:** open this app's Terminal (the `>_` button) and run\n `cat /app/data/credentials.txt`\n- **Logs:** they were also printed once to the app log on first start.\n\nThe file contains:\n\n```\nEndpoint URI : https://\nUsername : admin\nPassword : \nDatabase name : obsidian\n```\n\n### 2. Enter them in the LiveSync plugin\n\nIn Obsidian → **Self-hosted LiveSync → Setup → Remote Database configuration**:\n\n| Field | Value |\n|----------------------|-----------------------------------------|\n| URI | the **Endpoint URI** above (`https://…`)|\n| Username | `admin` |\n| Password | the generated password |\n| Database name | `obsidian` (already created for you) |\n\nThen run **\"Check database configuration\"** — it should pass with no red items (CORS,\n`require_valid_user`, and single-node setup are all preconfigured here).\n\n### 3. Mobile (iOS / Android) — the two things to know\n\n- **CORS is already handled.** `capacitor://localhost` — the origin whose absence normally\n makes mobile silently fail while desktop works — is preconfigured. If mobile still won't\n connect, this is *not* the usual suspect; double-check the URI/password.\n- **Set sync mode to \"On events\", not real-time.** Phones suspend background apps, so a\n persistent socket is wasted battery. Desktop can use LiveSync/real-time.\n\n### 4. ⚠️ Before you enable LiveSync\n\n- **Back up your vault**, and **disable any other sync** (iCloud, Obsidian Sync, Syncthing,\n Dropbox) for that vault first. One vault = one sync engine. Running two corrupts notes.\n\n### 5. Security note\n\nThis endpoint is internet-reachable and `require_valid_user` is on — keep the admin password\nsafe. Anyone with it can read/write your synced vaults.\n", "icon": "file://logo.png", "iconUrl": "https://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/logo.png", "healthCheckPath": "/_up", "httpPort": 5984, "addons": { "localstorage": {} }, "memoryLimit": 536870912, "tags": [ "couchdb", "obsidian", "livesync", "sync", "database", "notes" ], "mediaLinks": [ "https://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/logo.png" ], "website": "https://github.com/fengchang/couchdb-cloudron", "documentationUrl": "https://github.com/fengchang/couchdb-cloudron", "contactEmail": "fengchang08@gmail.com", "packagerName": "fengchang", "packagerUrl": "https://github.com/fengchang/couchdb-cloudron", "forumUrl": "https://forum.cloudron.io/", "dockerImage": "ghcr.io/fengchang/couchdb-cloudron:20260710-053725-254352fbc" }, "creationDate": "Fri, 10 Jul 2026 05:42:17 GMT", "ts": "Fri, 10 Jul 2026 05:42:17 GMT", "publishState": "published" }, "1.0.1": { "manifest": { "id": "com.github.fengchang.couchdb-cloudron", "manifestVersion": 2, "minBoxVersion": "9.1.0", "version": "1.0.1", "upstreamVersion": "3.5.2", "title": "CouchDB for Obsidian LiveSync", "author": "fengchang", "tagline": "CouchDB preconfigured as the sync backend for Obsidian Self-hosted LiveSync", "description": "# CouchDB for Obsidian LiveSync — Cloudron community package\n\nA [Cloudron](https://cloudron.io) community package that runs\n[Apache CouchDB](https://couchdb.apache.org/) **3.5.2**, preconfigured out-of-the-box as the\nsync backend for the [Obsidian Self-hosted LiveSync](https://github.com/vrtmrz/obsidian-livesync)\nplugin.\n\nUnlike a bare CouchDB, after install you do **not** run single-node setup, create an admin,\nfix CORS, or tweak config. The container comes up already valid for LiveSync. You just read the\ngenerated credentials and paste them into the plugin on each device.\n\n## What it configures for you\n\n- Single-node setup completed (`[couchdb] single_node = true`) → system DBs created on boot.\n- Strong admin password generated on first run (never hardcoded).\n- `require_valid_user = true`, with `require_valid_user_except_for_up = true` so the `/_up`\n health check stays reachable.\n- CORS for Obsidian desktop **and** mobile: `app://obsidian.md`, `capacitor://localhost`,\n `http://localhost`.\n- `max_http_request_size` / `max_document_size` tuned for notes + attachments.\n- Default `obsidian` database auto-created.\n- Data + mutable config under `/app/data` (Cloudron-backed up).\n\nSingle-user by design: secured by the CouchDB admin password, not Cloudron SSO — LiveSync is\npersonal single-user sync, not multi-user collaboration.\n\n## Install\n\nCloudron dashboard → App Store → **Add custom app → Community app**, then paste the raw URL:\n\n```\nhttps://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/CloudronVersions.json\n```\n\nOnly this file needs to be public to install the app.\n\n## After install: connect Obsidian LiveSync\n\n1. **Get your credentials.** They're generated on first run and written to\n `/app/data/credentials.txt` (and printed once to the app log). Retrieve via the app's\n Terminal (`cat /app/data/credentials.txt`), the File Manager, or the log view. The file\n contains the full HTTPS endpoint URL, username (`admin`), password, and the `obsidian`\n database name.\n2. **Enter them in the plugin** under *Self-hosted LiveSync → Remote Database configuration*,\n then run *Check database configuration*.\n\n[POSTINSTALL.md](./POSTINSTALL.md) has the full step-by-step, including the two mobile\ngotchas (CORS and \"On events\" sync mode) and the back-up-first warning. It's also shown to you\nautomatically right after install.\n\n## Security note\n\nThe endpoint is internet-reachable and `require_valid_user` is on — keep the admin password\nsafe. Anyone with it can read/write your synced vaults.\n\n## License\n\nThis packaging (Dockerfile, scripts, config, docs) is licensed under the [MIT License](./LICENSE).\nIt installs and redistributes [Apache CouchDB](https://couchdb.apache.org/), which is licensed\nseparately under Apache-2.0. The CouchDB name and logo are trademarks of the Apache Software\nFoundation.\n\n---\n\nPackaging internals, the build/test loop, and how to publish this package are in\n**[DEVELOPER.md](./DEVELOPER.md)**.\n", "changelog": "- Set [httpd] enable_cors=true so LiveSync's \"Check database configuration\" passes with no items to fix (matches upstream couchdb-init.sh).\n", "postInstallMessage": "## CouchDB is ready for Obsidian LiveSync 🎉\n\nYour CouchDB is already configured for the Self-hosted LiveSync plugin. There is **no setup\nscreen** to complete — just copy your credentials into the plugin.\n\n### 1. Get your credentials\n\nA strong admin password was generated on **first run**. Find it either way:\n\n- **File Manager / Terminal:** open this app's Terminal (the `>_` button) and run\n `cat /app/data/credentials.txt`\n- **Logs:** they were also printed once to the app log on first start.\n\nThe file contains:\n\n```\nEndpoint URI : https://\nUsername : admin\nPassword : \nDatabase name : obsidian\n```\n\n### 2. Enter them in the LiveSync plugin\n\nIn Obsidian → **Self-hosted LiveSync → Setup → Remote Database configuration**:\n\n| Field | Value |\n|----------------------|-----------------------------------------|\n| URI | the **Endpoint URI** above (`https://…`)|\n| Username | `admin` |\n| Password | the generated password |\n| Database name | `obsidian` (already created for you) |\n\nThen run **\"Check database configuration\"** — it should pass with no red items (CORS,\n`require_valid_user`, and single-node setup are all preconfigured here).\n\n### 3. Mobile (iOS / Android) — the two things to know\n\n- **CORS is already handled.** `capacitor://localhost` — the origin whose absence normally\n makes mobile silently fail while desktop works — is preconfigured. If mobile still won't\n connect, this is *not* the usual suspect; double-check the URI/password.\n- **Set sync mode to \"On events\", not real-time.** Phones suspend background apps, so a\n persistent socket is wasted battery. Desktop can use LiveSync/real-time.\n\n### 4. ⚠️ Before you enable LiveSync\n\n- **Back up your vault**, and **disable any other sync** (iCloud, Obsidian Sync, Syncthing,\n Dropbox) for that vault first. One vault = one sync engine. Running two corrupts notes.\n\n### 5. Security note\n\nThis endpoint is internet-reachable and `require_valid_user` is on — keep the admin password\nsafe. Anyone with it can read/write your synced vaults.\n", "icon": "file://logo.png", "iconUrl": "https://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/logo.png", "healthCheckPath": "/_up", "httpPort": 5984, "addons": { "localstorage": {} }, "memoryLimit": 536870912, "tags": [ "couchdb", "obsidian", "livesync", "sync", "database", "notes" ], "mediaLinks": [ "https://raw.githubusercontent.com/fengchang/couchdb-cloudron/main/logo.png" ], "website": "https://github.com/fengchang/couchdb-cloudron", "documentationUrl": "https://github.com/fengchang/couchdb-cloudron", "contactEmail": "fengchang08@gmail.com", "packagerName": "fengchang", "packagerUrl": "https://github.com/fengchang/couchdb-cloudron", "forumUrl": "https://forum.cloudron.io/", "dockerImage": "ghcr.io/fengchang/couchdb-cloudron:20260710-060448-47082580d" }, "creationDate": "Fri, 10 Jul 2026 06:06:13 GMT", "ts": "Fri, 10 Jul 2026 06:06:13 GMT", "publishState": "published" } } }