From 4b0f042b9a9a5f44281677cb028171485789dcba Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Sun, 23 Mar 2025 20:15:17 +0000 Subject: [PATCH] add Obsidian-Live-Sync container --- obisidian/.env-example | 9 +++++++++ obisidian/data/local.ini | 0 obisidian/docker-compose.yml | 37 ++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 obisidian/.env-example create mode 100644 obisidian/data/local.ini create mode 100644 obisidian/docker-compose.yml diff --git a/obisidian/.env-example b/obisidian/.env-example new file mode 100644 index 0000000..c328495 --- /dev/null +++ b/obisidian/.env-example @@ -0,0 +1,9 @@ +# OBSIDIAN Version (Standard: latest) +OBSIDIAN_VERSION=latest + +# OBSIDIAN Domain +OBSIDIAN_DOMAIN=obsidian.example.com + +# OBSIDIAN CouchDB Config +OBSIDIAN_COUCHDB_USER=couchdb_user +OBSIDIAN_COUCHDB_PASSWORD=couchdb_password \ No newline at end of file diff --git a/obisidian/data/local.ini b/obisidian/data/local.ini new file mode 100644 index 0000000..e69de29 diff --git a/obisidian/docker-compose.yml b/obisidian/docker-compose.yml new file mode 100644 index 0000000..b0c0ce0 --- /dev/null +++ b/obisidian/docker-compose.yml @@ -0,0 +1,37 @@ +--- +services: + couchdb: + image: couchdb:${OBSIDIAN_COUCHDB_VERSION:-latest} + container_name: obsidian-livesync + environment: + - COUCHDB_USER=${OBSIDIAN_COUCHDB_USER:?error} + - COUCHDB_PASSWORD=${OBSIDIAN_COUCHDB_PASSWORD:?error} + volumes: + - couchdb-data:/opt/couchdb/data + - ./data/local.ini:/opt/couchdb/etc/local.ini + restart: unless-stopped + networks: + - traefik + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.obsidian-livesync.rule=Host(`${OBSIDIAN_DOMAIN}`)" + - "traefik.http.routers.obsidian-livesync.entrypoints=websecure" + - "traefik.http.routers.obsidian-livesync.service=obsidian-livesync" + - "traefik.http.services.obsidian-livesync.loadbalancer.server.port=5984" + - "traefik.http.routers.obsidian-livesync.tls=true" + - "traefik.http.routers.obsidian-livesync.middlewares=obsidiancors" + # The part needed for CORS to work on Traefik 2.x starts here + - "traefik.http.middlewares.obsidiancors.headers.accesscontrolallowmethods=GET,PUT,POST,HEAD,DELETE" + - "traefik.http.middlewares.obsidiancors.headers.accesscontrolallowheaders=accept,authorization,content-type,origin,referer" + - "traefik.http.middlewares.obsidiancors.headers.accesscontrolalloworiginlist=app://obsidian.md,capacitor://localhost,http://localhost" + - "traefik.http.middlewares.obsidiancors.headers.accesscontrolmaxage=3600" + - "traefik.http.middlewares.obsidiancors.headers.addvaryheader=true" + - "traefik.http.middlewares.obsidiancors.headers.accessControlAllowCredentials=true" + +networks: + traefik: + external: true + +volumes: + couchdb-data: \ No newline at end of file