시놀로지 NAS에 나만의 만화 서버 'Mango' 구축하기: Portainer Stack 완벽 가이드

Portainer Stack을 활용해 가벼우면서도 강력한 만화 관리 서버 Mango를 설치합니다. Docker 볼륨 매핑의 핵심과 외부 접속 시 필수 보안 사항을 정리했습니다.

시놀로지 NAS에 나만의 만화 서버 'Mango' 구축하기: Portainer Stack 완벽 가이드

⚠️ 시작 전 필수 배경지식 및 경고

설정을 시작하기 전, 아래 두 가지 개념을 반드시 숙지하십시오.

  1. Portainer Stack (Docker Compose): 여러 개의 컨테이너 설정을 하나의 코드(YAML)로 관리하는 방식입니다. 설정 변경과 관리가 용이하여 시놀로지 사용자에게 추천되는 방식입니다.
  2. Docker Volume 매핑: 컨테이너 내부의 데이터가 NAS의 실제 하드디스크에 저장되도록 연결하는 작업입니다. 이 설정이 올바르지 않으면 컨테이너 업데이트나 삭제 시 모든 설정과 라이브러리가 초기화됩니다.
[!CAUTION]
보안 경고: Docker 컨테이너의 포트를 외부에 개방하는 것은 잠재적인 보안 위협이 될 수 있습니다. 반드시 강력한 비밀번호를 사용하고, 가능한 경우 VPN이나 신뢰할 수 있는 역방향 프록시를 통해서만 접근하십시오.

1. 문제 제기: 파편화된 만화 파일 관리의 한계

NAS에 수집한 만화나 잡지 파일을 단순히 파일 스테이션(File Station)으로 열어보는 것은 사용자 경험 측면에서 매우 불편합니다.

  • 어디까지 읽었는지 기억되지 않음 (이어보기 불가)
  • 표지(Thumbnail)가 보이지 않아 직관적인 선택이 어려움
  • 다양한 기기(태블릿, 스마트폰)에서 최적화된 뷰어 부재

이러한 문제를 해결하기 위해 가볍고 빠른 만화 관리 서버인 Mango를 구축하여 웹 브라우저만으로 쾌적한 독서 환경을 만들어보겠습니다.


2. 해결 과정: Portainer Stack 배포

Portainer 웹 UI에 접속한 후 [Stacks] -> [Add stack] 메뉴에서 아래의 YAML 코드를 복사하여 배포합니다.

services:
  mango:
    image: hkalexling/mango:latest          # Mango의 최신 공식 이미지를 사용합니다.
    container_name: mango                  # 컨테이너 이름을 mango로 지정합니다.
    restart: unless-stopped                # 예기치 않게 중지될 경우 자동으로 재시작합니다.
    user: "1026:100"                       # 중요: SSH에서 'id' 명령어로 확인한 UID:GID를 입력하세요.
    ports:
      - "3123:9000"                        # NAS의 3123 포트를 컨테이너의 9000 포트와 연결합니다.
    volumes:
      - /volume1/docker/mango/config:/config # 설정값 및 데이터베이스가 저장될 경로입니다.
      - /volume1/manga_library:/config/mango/library # 실제 만화 파일이 위치한 NAS 경로를 입력하세요.
    environment:
      - TZ=Asia/Seoul                      # 컨테이너의 시간대를 서울로 설정합니다.
      - HOME=/config                       # 홈 디렉토리를 config 폴더로 지정합니다.

💡 설정 핵심 포인트

  • user: 시놀로지 권한 오류를 방지하기 위해 반드시 본인 계정의 ID 값을 넣어야 합니다. (관리자 권한 필수)
  • volumes: 콜론(:)의 왼쪽은 NAS의 실제 경로, 오른쪽은 컨테이너 내부 경로입니다. 왼쪽 경로가 실제로 NAS에 존재하는지 확인하십시오.
  • ports: 만약 3123 포트가 이미 사용 중이라면, 왼쪽 숫자를 다른 숫자로 변경하여 충돌을 피하십시오.

3. 심화: 외부 접속과 보안 (Nginx Proxy Manager)

내부망이 아닌 외부(LTE/외부 Wi-Fi)에서 접속하고 싶다면 Nginx Proxy Manager(NPM) 와 같은 역방향 프록시 도구 사용을 권장합니다.

  1. SSL 인증서 적용: http 대신 https를 통해 데이터를 암호화하여 전송합니다.
  2. 도메인 연결: IP 주소 대신 manga.yourdomain.com과 같은 주소로 접근할 수 있습니다.
  3. WAF 설정: 기본적인 웹 공격을 차단하는 보안 레이어를 추가할 수 있습니다.

4. 보안 수칙 및 결론

Mango 서버 구축을 마쳤다면 마지막으로 다음 사항을 체크하십시오.

  • 관리자 계정: 첫 접속 시 생성하는 관리자 계정의 비밀번호를 영문, 숫자, 특수문자를 조합하여 길게 설정하십시오.
  • 정기 업데이트: Portainer에서 Stack을 다시 'Pull'하여 최신 보안 패치가 적용된 이미지를 주기적으로 업데이트하십시오.
  • 방화벽: 시놀로지 제어판의 방화벽 설정에서 불필요한 국가의 IP 접속을 차단하십시오.

요약: Portainer Stack을 이용하면 복잡한 명령어 없이도 나만의 만화 도서관을 NAS에 구축할 수 있습니다. 위 가이드의 볼륨 경로와 권한 설정만 주의한다면 누구나 쉽게 운영이 가능합니다.