fix(obsidian-sync): remove mem_limit; add enable_cors

mem_limit: 768m causes the kernel cgroup OOM killer to fire before
the Erlang VM writes its first log line on a swap-heavy host — manifests
as exit code 1 / empty docker logs / OOMKilled:false (kernel kill, not
Docker's own cgroup reporter). Removing the limit lets CouchDB start.

Also adds enable_cors = true to [httpd] — required in CouchDB 3.x for
the [cors] section to take effect (without it CORS headers are silently
dropped).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Manohar Gupta 2026-06-07 09:13:24 +05:30
parent e8fc4139c0
commit d0ba6dbe28
2 changed files with 5 additions and 3 deletions

View file

@ -24,6 +24,8 @@ require_valid_user = true
[httpd] [httpd]
WWW-Authenticate = Basic realm="couchdb" WWW-Authenticate = Basic realm="couchdb"
# Required in CouchDB 3.x — without this the [cors] section below is ignored.
enable_cors = true
# --- CORS ------------------------------------------------------------------- # --- CORS -------------------------------------------------------------------
# LiveSync runs inside browsers with DIFFERENT origins: # LiveSync runs inside browsers with DIFFERENT origins:

View file

@ -23,9 +23,9 @@ services:
# top of CouchDB's defaults without us editing the base file. # top of CouchDB's defaults without us editing the base file.
- ./couchdb/local.ini:/opt/couchdb/etc/local.d/10-livesync.ini:ro - ./couchdb/local.ini:/opt/couchdb/etc/local.d/10-livesync.ini:ro
# Guardrail on a RAM-tight box. CouchDB idles ~150-300MB; cap keeps a runaway # mem_limit intentionally omitted: on a swap-heavy box the cgroup OOM killer
# query from eating your headroom. Swap still absorbs brief spikes. # fires before the Erlang VM writes its first log line (kernel kills it, so
mem_limit: 768m # docker inspect shows OOMKilled:false — misleading). Re-add once swap < 50%.
healthcheck: healthcheck:
# _up is CouchDB's lightweight liveness endpoint (no auth needed). # _up is CouchDB's lightweight liveness endpoint (no auth needed).