Despliega Obsidian LiveSync en Pethost con un clic
Un servidor CouchDB que sincroniza tus bóvedas de Obsidian con Self-hosted LiveSync
Qué pasa
- Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
- ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
- Nuevo proyecto se abre en la app. Rellenas lo que pide y haces clic en Crear proyecto: Contraseña de administrador.
- En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.
Primeros pasos
En Obsidian, instala el plugin Self-hosted LiveSync e indícale https://obsidian-livesync.sam.pethost.app como servidor, admin como usuario y la contraseña que indicaste. El plugin crea su base de datos por sí mismo.
Qué ejecuta
La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal como está escrito.
services:
couchdb:
image: couchdb:3
restart: unless-stopped
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: ${ADMIN_PASSWORD}
COUCHDB_SECRET: ${COUCHDB_SECRET}
configs:
- source: livesync
target: /opt/couchdb/etc/local.d/livesync.ini
volumes:
# The image declares /opt/couchdb/data a volume: the vaults are in it.
- data:/opt/couchdb/data
configs:
# What Self-hosted LiveSync's own setup script sets (utils/couchdb/provision.ts): one node,
# nothing answered without a sign-in, room for big notes, and Obsidian's apps let in by CORS.
livesync:
content: |
[couchdb]
single_node = true
max_document_size = 50000000
[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
enable_cors = true
[chttpd_auth]
require_valid_user = true
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost
credentials = true
volumes:
data: