여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. 노트앱 결정장애 해결 | Synology Joplin으로 안전한 데이터 관리법

노트앱 결정장애 해결 | Synology Joplin으로 안전한 데이터 관리법

3주전 작성

Synology Joplin 구축

Synology Joplin 구축시, 개인 노트와 메모를 안전하게 관리하고 동기화하려는 사용자들에게 최적의 솔루션이다.

클라우드 서비스에 의존하지 않고 자신의 NAS에서 데이터를 완벽하게 제어하면서도 다양한 기기에서 접근할 수 있는 환경을 만들 수 있다.

이 글에서는 Synology NAS에 Joplin을 설치하고 구성하는 두 가지 방법을 자세히 알아보자.

목차

기본 개념

Joplin은 마크다운 기반의 오픈소스 노트 관리 애플리케이션으로, 에버노트나 원노트의 강력한 대안이다.

다양한 플랫폼(Windows, macOS, Linux, iOS, Android)에서 사용할 수 있으며, 여러 기기 간 동기화를 지원한다.

 

Synology NAS와 Joplin 사용시 장점
이점 설명
데이터 소유권 확보 모든 노트와 첨부 파일이 자신의 NAS에 저장되어 개인 정보 보호가 강화된다
무료 사용 Joplin Cloud와 같은 유료 서비스 없이도 모든 기능을 이용할 수 있다
높은 안정성 인터넷 연결이 불안정해도 로컬 네트워크에서 동기화 가능하며, 클라우드 서비스 중단 위험이 없다
다양한 기기 지원 PC, 모바일, 태블릿 등 어디서나 동일한 노트에 접근할 수 있다

Synology Joplin 구축을 위해서는 기본적으로 Synology NAS와 Joplin 애플리케이션이 필요하다.

구축 방법 선택

Synology NAS에 Joplin을 구축하는 방법은 크게 두 가지가 있다.
각 방법에는 장단점이 있으므로 자신의 필요에 맞는 방법을 선택하자.

 

구축 방법
구축 방법 난이도 주요 특징
Docker 방식 중상 Joplin Server 설치, 웹 인터페이스 제공, 높은 동기화 속도
WebDAV 방식 간단한 설정, 낮은 리소스 사용, 기본 동기화만 지원

Docker 방식의 특징

Docker를 사용하여 Joplin Server를 설치하는 방식은 보다 전문적인 사용자에게 적합하다.

구분 세부 내용
장점 클라우드 서비스와 유사한 완전한 기능 제공, 웹 인터페이스로 브라우저에서 노트 접근 가능, 동기화 속도가 빠르고 안정적, 사용자 계정 관리 기능 제공
단점 설정이 복잡하고 기술적 지식 필요, 리소스 사용량이 상대적으로 높음, 외부 접속을 위한 추가 설정(도메인, SSL 등) 필요

WebDAV 방식의 특징

WebDAV를 사용하여 Synology NAS와 Joplin을 연동하는 방식은 간단하게 시작하려는 사용자에게 적합하다.

 

WebDav 특징
구분 세부 내용
장점 설정이 간단하고 직관적, NAS의 리소스를 적게 사용, Synology의 기본 패키지만으로 구현 가능
단점 동기화 기능만 제공(웹 인터페이스 없음), WebDAV 프로토콜의 특성상 동기화 속도가 상대적으로 느림, 서버에서 직접 노트 관리 불가능

Docker로 설치

Docker를 사용하여 Joplin Server를 설치하는 방법을 단계별로 알아보자.

 

준비 사항
항목 설명
Synology NAS Docker 패키지 반드시 설치되어 있어야 함
Portainer (선택 사항) Docker 관리를 더 편리하게 해주는 도구
외부 접속용 도메인 및 SSL 인증서 원격 접속 시 필요

설치 단계

  1. 파일 구조 생성

    먼저 Joplin Server를 위한 폴더 구조를 생성한다.

     /volume1/docker/joplin-server/joplin-data 
  2. Docker 이미지 다운로드

    Synology의 Docker 패키지를 열고 레지스트리에서 Joplin Server 이미지를 검색하여 다운로드한다.

     joplin/server 
  3. 컨테이너 생성 및 설정

    다운로드한 이미지에서 컨테이너를 생성하고, 고급 설정에서 항목을 구성한다.

    1. 볼륨 설정
      로컬 폴더 경로 마운트 경로 설명
      /volume1/docker/joplin-server/joplin-data /srv/joplin-data Joplin 데이터 저장 위치
    2. 포트 설정
      로컬 포트 컨테이너 포트 설명
      22300 22300 Joplin Server 접속 포트
    3. 환경 변수 설정

      Docker 컨테이너 실행을 위한 환경 변수를 설정한다.

       APP_PORT=22300 APP_BASE_URL=https://joplin.yourdomain.com DB_CLIENT=sqlite3 
      사용된 코드 설명
      APP_PORT=22300
      :
      Joplin Server가 사용할 포트 번호를 지정한다.
      APP_BASE_URL=https://joplin.yourdomain.com
      :
      외부에서 접속할 URL을 지정한다. 자신의 도메인으로 변경해야 한다.
      DB_CLIENT=sqlite3
      :
      데이터베이스로 SQLite를 사용하도록 설정한다. 더 큰 규모의 설치에는 PostgreSQL을 권장한다.
    4. PostgreSQL 사용 (선택사항)

      대규모 설치나 더 나은 성능을 원한다면 SQLite 대신 PostgreSQL을 사용할 수 있다.

      Docker Compose를 사용한 설치 예시
      version: '3'
      volumes: postgres-data: joplin-data:
      services: db: image: postgres:13 volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped environment: - POSTGRES_PASSWORD=joplin - POSTGRES_USER=joplin - POSTGRES_DB=joplin
      app: image: joplin/server:latest depends_on: - db ports: - "22300:22300" volumes: - joplin-data:/srv/joplin-data restart: unless-stopped environment: - APP_PORT=22300 - APP_BASE_URL=https://joplin.yourdomain.com - DB_CLIENT=pg - POSTGRES_PASSWORD=joplin - POSTGRES_DATABASE=joplin - POSTGRES_USER=joplin - POSTGRES_PORT=5432 - POSTGRES_HOST=db
      사용된 코드 설명
      version: ‘3’
      :
      Docker Compose 파일 버전을 지정한다.
      volumes:
      :
      데이터 저장을 위한 볼륨을 정의한다.
      services:
      :
      실행할 서비스(컨테이너)를 정의한다.
      db:
      :
      PostgreSQL 데이터베이스 서비스를 설정한다.
      app:
      :
      Joplin Server 서비스를 설정한다.
      depends_on:
      :
      서비스 간의 의존성을 설정한다(데이터베이스가 먼저 시작되도록).
      restart: unless-stopped
      :
      컨테이너가 비정상 종료되면 자동으로 재시작한다.
  4. 도메인 및 SSL 설정

    외부에서 Joplin Server에 접속하려면 도메인 설정과 SSL 인증서가 필요하다.

    1. Synology DSM의 제어판 → 응용 프로그램 포털 → 역방향 프록시에서 새 규칙을 생성한다.
      소스 대상 설명
      HTTPS, 호스트이름: joplin.yourdomain.com, 포트: 443 HTTP, 호스트이름: localhost, 포트: 22300 Joplin Server로의 역방향 프록시 규칙
    2. SSL 인증서 설정

      Synology DSM의 제어판 → 보안 → 인증서에서 Let’s Encrypt를 통해 무료 SSL 인증서를 발급받거나 자체 인증서를 업로드한다.

  5. Joplin 클라이언트 설정

    각 기기에 Joplin 앱을 설치하고 동기화를 설정한다.

    1. 설정 → 동기화로 이동
    2. 동기화 대상으로 ‘Joplin Server’ 선택
    3. 정보 입력
      • Joplin Server URL: https://joplin.yourdomain.com
      • 이메일: 설정한 사용자 이메일
      • 비밀번호: 설정한 비밀번호
    4. 동기화 테스트 후 저장
    초기 로그인 정보

    첫 로그인 후 반드시 변경해야 한다.

    항목 설명
    이메일 admin@localhost 기본 관리자 계정
    비밀번호 admin 기본 관리자 비밀번호

    WebDAV로 연동

    WebDAV를 사용하여 Synology NAS와 Joplin을 연동하는 방법을 알아보자.

    준비 사항

    Synology NAS에 WebDAV Server 패키지가 설치되어 있어야 한다.

    설정 단계

    1. WebDAV 서버 설정

      Synology Package Center에서 WebDAV Server를 설치하고 실행한다.

      • Package Center 열기
      • WebDAV Server 검색 및 설치
      • WebDAV Server 실행
      • HTTP/HTTPS 활성화 (보안을 위해 가능한 HTTPS 사용)

       

      WebDAV Server의 기본 포트
      프로토콜 포트 설명
      HTTP 5005 암호화되지 않은 연결 (로컬 네트워크에서만 권장)
      HTTPS 5006 암호화된 연결 (외부 접속 시 필수)
    2. Joplin 폴더 생성

      Synology File Station에서 Joplin 데이터를 저장할 폴더를 생성한다.

       /volume1/[공유폴더]/joplin 
    3. WebDAV 액세스 설정

      WebDAV Server 설정에서 Joplin 폴더에 대한 액세스 권한을 설정한다.

      • WebDAV Server 앱 실행
      • 권한 설정으로 이동
      • Joplin 폴더에 대한 액세스 권한 설정
      • 사용자 계정 및 권한 지정
    4. Joplin 클라이언트 설정

      각 기기에 Joplin 앱을 설치하고 동기화를 설정한다.

      1. 설정 → 동기화로 이동
      2. 동기화 대상으로 ‘WebDAV’ 선택
      3. 정보 입력
        • WebDAV URL:
          • 로컬 네트워크: http://[NAS_IP]:5005/[공유폴더]/joplin
          • 외부 접속: https://[도메인주소]:5006/[공유폴더]/joplin
        • 사용자 이름: Synology 계정 사용자 이름
        • 비밀번호: Synology 계정 비밀번호
      4. 동기화 테스트 후 저장
    5. 외부 접속을 위한 DDNS 및 포트 포워딩 설정 (선택사항)

      외부에서 WebDAV에 접속하려면 설정이 필요하다.

      • Synology DSM 제어판 → 외부 액세스 → DDNS에서 호스트 이름 추가
      • 라우터에서 WebDAV 포트(5005, 5006)에 대한 포트 포워딩 설정
      • HTTPS 사용 시 유효한 SSL 인증서 설정

    보안 및 데이터 백업

    Joplin 데이터를 안전하게 보호하고 백업하는 방법을 알아보자.

    보안 설정

    Joplin과 Synology NAS 연동 시 중요한 보안 설정
    보안 설정 설명
    HTTPS 사용 데이터 전송 시 암호화를 위해 필수적임
    강력한 비밀번호 사용 최소 12자 이상, 특수문자, 대소문자, 숫자 조합 권장
    Joplin E2EE 활성화 민감한 노트의 추가 보안을 위해 엔드 투 엔드 암호화 사용
    WebDAV 접근 제한 특정 IP에서만 접근 가능하도록 설정
    정기적인 업데이트 Synology DSM 및 패키지 최신 버전 유지

    데이터 백업 전략

    Joplin 데이터 백업을 위한 방법
    백업 방법 설명
    Synology Hyper Backup Joplin 데이터 폴더를 정기적으로 외부 저장소에 백업
    Joplin 내보내기 주기적으로 JEX 또는 MD 형식으로 노트 내보내기 후 별도 보관
    Docker 컨테이너 백업 데이터베이스 덤프 자동화 및 Docker 볼륨 정기 백업

     

    백업 자동화 스크립트 예시 (PostgreSQL 사용 시)
     #!/bin/bash
    BACKUP_DIR="/volume1/backup/joplin" CONTAINER_NAME="joplin-db" DATE=$(date +%Y%m%d_%H%M%S) FILENAME="joplin_db_backup_$DATE.sql"
    mkdir -p $BACKUP_DIR
    docker exec CONTAINER_NAME pg_dump -U joplin -d joplin > $BACKUP_DIR/FILENAME
    find $BACKUP_DIR -type f -name "joplin_db_backup_*.sql" -mtime +30 -delete
    사용된 코드 설명
    BACKUP_DIR=”/volume1/backup/joplin”
    :
    백업 파일이 저장될 디렉토리를 지정한다.
    CONTAINER_NAME=”joplin-db”
    :
    PostgreSQL 데이터베이스 컨테이너 이름을 지정한다.
    DATE=$(date +%Y%m%d_%H%M%S)
    :
    백업 파일 이름에 사용할 현재 날짜와 시간을 저장한다.
    docker exec $CONTAINER_NAME pg_dump
    :
    컨테이너 내에서 pg_dump 명령을 실행하여 데이터베이스를 백업한다.
    find $BACKUP_DIR -type f … -delete
    :
    30일 이상 된 백업 파일을 자동으로 삭제한다.

    문제 해결 및 팁

    Synology Joplin 구축 과정에서 발생할 수 있는 일반적인 문제와 해결 방법을 알아보자.

    Docker 방식 문제 해결

    문제 해결 방법
    컨테이너 시작 실패 Docker 로그 확인, 환경 변수 설정 확인, 볼륨 마운트 권한 확인
    웹 인터페이스 접속 불가 포트 설정 확인, 역방향 프록시 설정 확인, 방화벽 허용 여부 확인
    동기화 문제 APP_BASE_URL 환경 변수 확인, SSL 인증서 유효성 확인

    WebDAV 방식 문제 해결

    문제 해결 방법
    연결 오류 WebDAV URL 형식 확인, 사용자 이름과 비밀번호 확인, WebDAV Server 활성화 여부 확인
    동기화 오류 WebDAV 폴더 권한 확인, Synology 사용자 계정 권한 확인
    HTTPS 연결 문제 SSL 인증서 유효성 확인, 클라이언트 기기에 인증서 신뢰 설정

    유용한 팁

    설명
    Docker Compose 활용 여러 컨테이너를 함께 관리하고 설정을 코드로 유지하여 관리가 용이하다.
    보안 강화 Joplin Server 전용 사용자 계정 생성, 모든 연결에 HTTPS 사용한다.
    성능 최적화 대규모 사용 시 SQLite 대신 PostgreSQL 사용, 정기적인 데이터베이스 유지보수
    다중 사용자 지원 Docker 방식에서는 여러 사용자 계정 생성 및 사용자별 권한 설정 가능

     

    지금까지 Synology NAS에서 Joplin을 구축하는 두 가지 방법과 각각의 장단점, 설치 과정, 그리고 유용한 팁들을 살펴보았다.

    자신의 필요와 기술적 숙련도에 맞는 방법을 선택하여 개인 노트와 자료를 안전하게 관리하고 동기화할 수 있는 환경을 구축해보자.

    어떤 방식을 선택하든, Synology Joplin 구축을 통해 클라우드 서비스 의존도를 줄이고 자신의 데이터를 완전히 제어하는 자유를 경험할 수 있다.

    참고
Mingg`s Diary
밍구
공부 목적 블로그