메뉴 닫기

[Synology NAS] 시놀로지 NAS에서 Obsidian LiveSync 설정하기 : 나만의 사설 저장소 구축

 

시놀로지 NAS에서 Obsidian LiveSync 설정하기 - 나만의 사설 저장소 구축

시놀로지 NAS에서 Obsidian LiveSync 설정하기 – 나만의 사설 저장소 구축

안녕하세요, MSP 사업부 김병학입니다! 오늘은 예전에 소개드렸던 Obsidian 을 여러 기기에서 동기화할 수 있도록, Obsidian LiveSync 서비스를 시놀로지 NAS에 Container 로 배포하여 사설 저장소를 구축하는 방법을 소개하고자 합니다. 기존에 사설 Synology 를 사용하시거나, CloudV 에서 제공하는 Synology NAS 를 활용하시는분들은 참고하시면 좋을듯합니다.

CloudV NAS 호스팅 서비스 소개  : https://www.cloudv.kr/colocation/nas/synology.html

이전글…

[Obsidian] 아직도 Typora, Sublime 쓰세요? 요즘 노트 대세는 옵시디언!


왜 Obsidian LiveSync와 시놀로지 NAS인가?

Obsidian은 강력한 마크다운 기반 노트 관리 도구로, 로컬 파일 시스템을 활용해 데이터를 관리합니다. 하지만 기본적으로 기기 간 동기화 기능은 유료 서비스인 Obsidian Sync(월 4달러)를 통해 제공됩니다. 개인 서버를 선호하거나 비용을 절감하고 싶다면, Self-hosted LiveSync 플러그인을 사용해 직접 동기화 서버를 구축할 수 있습니다.

시놀로지 NAS는 Docker를 지원하기 때문에, CouchDB(Obsidian LiveSync의 백엔드 데이터베이스)를 컨테이너로 쉽게 실행할 수 있는 이상적인 환경입니다. 이 글에서는 Docker Compose를 활용해 설정을 간소화하고, 사설 저장소를 통해 데이터를 완전히 통제하는 방법을 알아보겠습니다.


👍 사전 준비

설정을 시작하기 전에 다음을 정보를 습득하시면 보다 쉽게 진행하실 수 있습니다.

1. 시놀로지 NAS : Docker(컨테이너 매니저)가 설치 가능한 모델이어야 합니다. (저는 DS223j 모델을 사용중인데 충분히 가능합니다.)
2. Obsidian : PC, 모바일 등 사용하려는 기기에 사전 설치가 필요합니다.
3. 네트워크 기본 지식 : 포트 포워딩, 도메인 설정(선택 사항)이 필요할 수 있습니다.
4. 리눅스 및 컨테이너 기본 지식 : 시놀로지 NAS 는 Ubuntu 기반의 OS 임으로 기본적인 명령어와 컨테이너의 사전지식이 필요합니다.


1️⃣ 1단계: 시놀로지 NAS에서 Docker 환경 설정

1. Docker 설치
– 시놀로지 DSM에 로그인한 후, 패키지 센터에서 컨테이너 매니저를 검색해 설치합니다.
– 설치가 완료되면 DSM 메뉴에서 컨테이너 매니저를 실행할 수 있습니다.

2. Docker 폴더 생성
File Station을 열고 `/volume1/docker` 경로로 이동합니다.
– `obsidian-livesync`라는 새 폴더를 생성한 뒤, 그 안에 `data`와 `config` 하위 폴더를 만듭니다.
– `/volume1/docker/obsidian-couchdb/data`: CouchDB 데이터 저장
– `/volume1/docker/obsidian-couchdb/config`: 설정 파일 저장

 

 

3. 사용자 권한 확인
– Docker가 실행될 사용자(예: admin)의 UID와 GID를 확인합니다.
– DSM 터미널에서 `id [사용자이름]` 명령어를 실행하면 UID와 GID를 알 수 있습니다.


2️⃣ 2단계: Docker Compose 파일 작성

Docker Compose를 사용하면 복잡한 명령어 대신 설정 파일로 컨테이너를 쉽게 관리할 수 있습니다. 아래는 CouchDB를 실행하기 위한 기본 `docker-compose.yml` 예시입니다.

version: "3.9"
services:
  couchdb:
    image: couchdb
    container_name: obsidian-livesync
    user: 1026:100
    environment:
      - COUCHDB_USER=admin # 사용하고자하는 ID 로 변경
      - COUCHDB_PASSWORD=changeme # 사용하고자하는 Password 로 변경
      - PUID=1026 # 본인의 UID로 변경
      - PGID=100 # 본인의 GID로 변경
    volumes:
      - /volume1/docker/obsidian_livesync/data:/opt/couchdb/data
      - /volume1/docker/obsidian_livesync/config/local.ini:/opt/couchdb/etc/local.ini
    ports:
      - 5984:5984
    restart: unless-stopped

✅ 설정 설명
– image : 최신 CouchDB 이미지를 사용합니다.
– ports : NAS의 5984 포트를 CouchDB의 기본 포트와 연결합니다.
– volumes : 데이터와 설정 파일을 NAS에 저장합니다.
– environment : CouchDB 관리자 계정과 사용자 권한을 설정합니다

1. 위 내용을 텍스트 편집기에 붙여넣고, `COUCHDB_USER`, `COUCHDB_PASSWORD`, `PUID`, `PGID`를 본인의 환경에 맞게 수정합니다.
2. 파일을 `docker-compose.yml`로 저장한 뒤, `/volume1/docker/obsidian-livesync` 폴더에 업로드합니다.


3️⃣ 3단계: CouchDB 설정 파일 준비

CouchDB가 Obsidian LiveSync와 잘 작동하려면 CORS 설정이 필요합니다. `/volume1/docker/obsidian-livesync/config` 폴더에 `local.ini` 파일을 생성하고 아래 내용을 추가합니다.

[couchdb]
single_node=true
max_document_size=50000000

[chttpd]
require_valid_user=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

– 이 설정은 Obsidian 모바일 앱과의 호환성을위해 필요로 합니다.


4️⃣ 4단계: 컨테이너 실행

1. DSM에서 컨테이너 매니저를 열고, 프로젝트 탭으로 이동하여 프로젝트를 생성합니다.


2. 일반 설정에서 이름을 `obsidian-livesync`로 지정합니다.

3. 경로를 /volume1/docker/obsidian-livesync 로 지정합니다.

4. 기존 docker-compose.yml을 사용하여 프로젝트 만들기를 선택합니다.


※ docker-compose.yml 이 로드된 모습

4. 다음, 완료 버튼을 클릭하면 아래와같이 정상적으로 실행되는 모습을 확인할 수 있습니다.


※ Exit Code : 0 이 뜨면 정상

 


5️⃣ 5단계: Obsidian LiveSync 플러그인 설정

1. Obsidian에서 설정 > 커뮤니티 플러그인으로 이동해 Self-hosted LiveSync를 설치하고 활성화합니다.
2. 플러그인 설정에서 다음을 입력합니다:

– URI : `http://[NAS_IP]:5984`
– Username : `admin`
– Password : `your_secure_password`
– Database : 원하는 데이터베이스 이름(예: `myvault`)
3. Test Connection 버튼으로 연결을 확인한 뒤, 동기화를 시작합니다.


6️⃣ 6단계: HTTPS 설정 (선택 사항)

네트워크를 통해 파일의 동기화를 진행하다보니, 안전하게 동기화를하려면 HTTPS(인증서)를 설정하는 것이 좋습니다. 컨테이너에서 설정도 가능하지만, 시놀로지 DSM의 역방향 프록시Let’s Encrypt(무료인증서) 인증서를 활용하면 보다 편하게 설정 가능합니다.

1. DSM 제어판 > 애플리케이션 포털 > 역방향 프록시에서 새 규칙을 추가합니다.
2. 도메인(예: `obsidian.mydomain.com`)과 443 포트를 설정하고, 대상으로 `[NAS_IP]:5984`를 지정합니다.
3. 인증서를 적용한 뒤, LiveSync URI를 `https://obsidian.mydomain.com`으로 업데이트합니다.


✨마무리

이제 시놀로지 NAS에서 실행 중인 CouchDB를 통해 Obsidian 노트가 모든 기기에서 실시간으로 동기화됩니다. 외부 서비스에 의존하지 않고 데이터를 안전하게 관리할 수 있는 점이 가장 큰 장점이에요. 사실 글로 작성하다보니 빠진 부분이 좀 있습니다. 설정 중 문제가 생기면 댓글로 질문 주세요. 다음 글에서는 LiveSync로 동기화된 노트를 SynologyNAS 의 워드프레스 플러그인과 결합하여, 자동 포스팅 파이프라인을 구축하는 글로 찾아오겠습니다.

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x