couchdb를 이용한 Obsidian 실시간 동기화 기능 사용 하기

이전 글에서 Obsidian LinuxServer와 Self-hosted LiveSync를 synology docker에 설치하고 연동하는 방법에서 시놀로지 도커를 이용하여 Obsidian Web 버전과 Self-hosted LiveSync을 설치한 후 실시간 동기화를 하는 방법에 대해 소개를 하였습니다. 이번에는 Self-hosted LiveSync만 시놀로지에 설치하여 로컬 PC에 있는 Obsidian과 Mobile 혹은 다른 PC와 동기화를 하는 방법에 대해 소개 하겠습니다.

시놀로지에 폴더 및 Portainer를 이용한 Compose 실행하기

시놀로지 관리자로 접속하셔서 그림과 같이 docker 폴더 안에 obsidiandb 폴더를 만들고, 그 안에 local.ini 파일을 추가하고, data 폴더를 하나 더 만들어 줍니다.

local.ini 코드는 아래와 같습니다.

[couchdb]
single_node=true
max_document_size = 50000000

[chttpd]
require_valid_user = true
max_http_request_size = 4294967296

[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html

[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true

[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600

그리고 시놀로지의 portainer로 접속한 후 Stacks에 아래의 그림과 같이 작성 한 후 Deploy the stack을 실행하시면 됩니다.

Stacks 내용은 아래와 같습니다.

version: "3.9"
services:
  couchdb:
    image: couchdb
    container_name: obsidian-livesync
    user: 1026:100
    environment:
      - COUCHDB_USER=acessidDB # enter the desired CouchDB admin username
      - COUCHDB_PASSWORD=dbpassword # enter the desired CouchDB admin password
    volumes:
      - /volume1/docker/obsidiandb/data:/opt/couchdb/data
      - /volume1/docker/obsidiandb/local.ini:/opt/couchdb/etc/local.ini
    ports:
      - 5984:5984
    restart: unless-stopped

위의 코드에서 user: 1026:100는 자신의 시놀로지의 값에 맞게 변경하시고, COUCHDB_USER=acessidDB와 COUCHDB_PASSWORD=dbpassword에는 각각 향후 접속할 DB의 ID와 PW를 설정 해주시면 됩니다.

Self-hosted LiveSync 설정하기

주의!) Self-hosted LiveSync를 외부접속이 가능하도록 하려면, 위의 5984포트를 포트포워딩하거나, 역방향 프록시 설정을 사전에 해주셔야 됩니다.!

설치가 완료되면 Obsidian을 실행하고, Community plugins에서 Self-hosted LiveSync를 찾아 설치해준 후 Enable을 한 다음 Oepn setting dialog를 선택합니다.

그리고 아래 그림과 같이 옵션을 선택한 후 Setup Wizard에서 Minimal setup의 Start를 눌러 줍니다.

그러면 아래와 같이 입력하는 난이 나오는데 다음과 같이 입력 해줍니다.
URL : 외부접속포트:5984 혹은 역방향 프록시
Username : acessidDB (stack에 입력한 ID)
Password : dbpassword (stack에 입력한 PW)
Database name : obsidian_db (여러개를 사용할 경우를 고려한 DB 구별 이름, 아무거나 작성)

그런 다음 Check 버튼을 눌렀을 때 아래와 같이 모두 OK로 설정이되면 DB에 문제가 없이 접속되고, DB가 만들어졌다는 의미가 됩니다. 그리고 아래의 Confidentiality도 선택을 한 후 Next 버튼을 눌러줍니다.

Next 버튼을 누르게 되면 Presets 모두에서 LiveSync를 선택한 후 Apply를 누릅니다. 그럼 아래 그림과 같이 비밀번호를 입력하는 란이 나오고, 비밀번호를 입력 후 OK 를 선택합니다. 그러면 오른쪽 상단에 Setup URL copied to clipboard라는 메시지가 뜨며, 메모장을 열어서 Control-V를 하게되면 그림과 같이 “obsidian://setuplivesync?settings=%251cc0786″로 시작하는 주소가 나타납니다. 이 주소를 별도로 기록해놓도록 합니다.

휴대폰(Mobile) 혹은 Laptop 등 서브 기기에서 설정하기

휴대폰 등 동기화를 시작할 서브기기에서는 위에서 복사한 주소를 가지고 설정을 진행해야 합니다. 아래는 모바일에서 설정하는 방법을 예로 들었으며, PC도 동일한 절차로 진행 하시면 됩니다. 우선 서브 기기에서 Vault 등을 설정하고 우측 상단의 환경설정에서 Community Plugins에서 Self-hosted LiveSync를 설치 후 Enable을 활성화 합니다.

활성화를 하게되면, 위의 최초 설치시 처럼 Open setting dialog가 아닌 Use the copied setup URI를 선택한 후 메모장에 작성된 “obsidian://setuplivesync?settings=%251cc0786” 값을 입력해줍니다. 그리고 OK 버튼을 누르게 되면 위에서 설정한 비밀번호를 입력하는 란이 나오고, 비밀번호를 입력 후 OK 버튼을 누르게 되면, Importing LiveSync’s conf. OK?라는 문구가 나오게 됩니다. 이 때 yes를 선택하여 환경 설정 파일을 적용할 수 있도록 합니다. 다음은 Set it up as secondary or subsequent devices라는 문구를 선택하고(LiveSync를 설치하는 기기가 서브기기라는 뜻) 기다리고 있으면, 다음과 같이 Fetch, Custom, keep them disabled라는 문구가나옵니다. 이는 Hidden file도 함께 동기화 할꺼냐는 의미로 우리는 Keep them disabled를 선택하여 줍니다.

이렇게 하면 설정까지 모두 완료가 되었습니다. 아래 그림과 같이 메인 PC에서 글을 작성 후 Replicate 버튼을 누르면 잠시 뒤 모바일에서 글자가 자동으로 입력되는 것을 확인 할 수 있습니다. (물론 Replicate를 누르지 않아도 자동으로 입력되지만 최초 동시화 시 반영이 안될 수 도 있으니 이때 Replicate를 한 번 눌러 주시기 바랍니다.

설정 및 사용 후기

처음에 설치하고 이것 저것 설정을 하다 보니 Community Plugins까지 동기화가 가능했는데 다시 설치 후 시도해보니 동기화가 안되고 있어… 이를 해결하게 되면 다시 한 번 더 글을 작성하도록 하겠습니다. 저도 Joplin을 사용하다가 이제 막 Obsidian으로 이사 중이라 작성글에 문제가 있을 수도 있으니 이점 참고 바랍니다.~

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다