services: couchdb: image: couchdb:latest container_name: obsidian-livesync restart: unless-stopped environment: - COUCHDB_USER=${COUCHDB_USER} - COUCHDB_PASSWORD=${COUCHDB_PASSWORD} volumes: - ${STORAGE_PATH}/obsidian-livesync/data:/opt/couchdb/data - ${STORAGE_PATH}/obsidian-livesync/local.ini:/opt/couchdb/etc/local.d ports: - 5984:5984 labels: - "traefik.enable=true" # The Traefik Network - "traefik.docker.network=web" # Don't forget to replace 'obsidian-livesync.example.org' with your own domain - "traefik.http.routers.obsidian-livesync.rule=Host(`obsidian-livesync.${DOMAIN}`)" # The 'websecure' entryPoint is basically your HTTPS entrypoint. Check the next code snippet if you are encountering problems only; you probably have a working traefik configuration if this is not your first container you are reverse proxying. - "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" # Replace the string 'letsencrypt' with your own certificate resolver - "traefik.http.routers.obsidian-livesync.tls.certresolver=letsencrypt" - "traefik.http.middlewares.obsidiancors.headers.accessControlAllowOriginList=app://obsidian.md,capacitor://localhost,http://localhost" - "traefik.http.middlewares.obsidiancors.headers.accessControlAllowMethods=GET,POST,PUT,DELETE,OPTIONS,HEAD" - "traefik.http.middlewares.obsidiancors.headers.accessControlAllowHeaders=Authorization,Content-Type,Accept,Origin,X-Requested-With" - "traefik.http.middlewares.obsidiancors.headers.accessControlAllowCredentials=true" - "traefik.http.middlewares.obsidiancors.headers.accessControlMaxAge=86400" - "traefik.http.middlewares.obsidiancors.headers.addVaryHeader=true" - "traefik.http.routers.obsidian-livesync.middlewares=obsidiancors" networks: - web networks: web: external: true