Obsidian 실시간 동기화 적용하기 (Self-hosted LiveSync)
개요
시놀로지 나스를 사용하거나 fly.io를 사용해서 Obsidian(옵시디언)의 Self-hosted LiveSync 플러그인을 사용하여 여러 기기에 실시간으로 동기화하는 방법은 구글링하면 나오지만, 일반 PC나 서버에서 Obsidian을 동기화하는 글은 없는것 같아 작성합니다.
사용하려는 환경에 Obsidian, Docker, Docker Compose가 설치되어 있다고 가정하고 진행됩니다.
서버 PC 설정하기
couchdb ini 설정하기
여러 기기에서 노트 데이터를 저장하고 공유하기 위해 couchdb 컨테이너를 사용합니다. 컨테이너를 실행하기 전, 간단한 ini 파일을 작성합니다.
저는 맥미니에 서버를 구성할 예정이라 /Users/{USER_NAME}/service/obsidian-db
디렉토리에 couchdb.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
docker-compose로 couchdb 컨테이너 실행하기
couchdb 컨테이너를 실행하기 위해 docker-compose.yml
파일을 같은 경로에 생성합니다.
version: "3.9"
services:
couchdb:
image: couchdb
container_name: obsidian-livesync
environment:
- COUCHDB_USER={DB 유저 명} # enter the desired CouchDB admin username
- COUCHDB_PASSWORD={DB 패스워드} # enter the desired CouchDB admin password
volumes:
- /Users/{USER_NAME}/obsidian-db/data:/opt/couchdb/data
- /Users/{USER_NAME}/obsidian-db/local.ini:/opt/couchdb/etc/local.ini
ports:
- 5984:5984
restart: unless-stopped
couchdb.ini
파일과 docker-compose.yml
파일을 생성했다면, 해당 경로에서 명령어를 사용하여 백그라운드로 컨테이너를 실행시켜줍니다.
$ docker-compose up -d
couchdb 접근 확인하기
컨테이너를 실행하고, 웹페이지에서 localhost:5984로 접근하면 다음과 같이 ID,PW를 물어보는 창이 나타나는데, docker-compose.yml
파일에서 작성했던 COUCHDB_USER, COUCHDB_PASSWORD 값을 통해서 로그인이 가능합니다.
정상적으로 로그인이 되면 아래와 같은 JSON 형태의 데이터가 나타납니다.
이때 어디서든지 접근이 가능하도록 5984포트를 사전에 포트포워딩 합니다.