시놀로지 Navidrome 설치: 나만의 음악 스트리밍 서버 구축 가이드

시놀로지 NAS와 Docker를 활용해 나만의 음악 서버 Navidrome을 구축하는 완벽 가이드를 확인하세요. Portainer Stack 코드를 통해 누구나 쉽게 설치할 수 있습니다.

시놀로지 Navidrome 설치: 나만의 음악 스트리밍 서버 구축 가이드
💡 면책 고지: 본 가이드는 정보 제공을 목적으로 작성되었으며, 개인 서버 설정 및 보안에 대한 책임은 사용자 본인에게 있습니다. 특히 외부 접속 설정 시에는 충분한 보안 지식을 바탕으로 진행하시기 바랍니다.

시놀로지 NAS에 잠자고 있는 수많은 MP3, FLAC 음원 파일을 어떻게 활용하고 계신가요? 단순히 파일 저장소로만 사용하기에는 아쉬움이 많습니다.

  • 언제 어디서든 스마트폰으로 내 음악을 스트리밍하고 싶을 때
  • 앨범 아트와 아티스트 정보가 자동으로 정리된 라이브러리를 원할 때
  • Plex나 Jellyfin보다 가볍고 빠른 전용 음악 서버가 필요할 때

이 모든 요구를 완벽하게 충족하는 최고의 오픈소스 솔루션이 바로 Navidrome입니다. Plex나 Jellyfin 같은 종합 미디어 서버도 음악 관리 기능을 제공하지만, 오직 '음악'만을 위한 가볍고 빠른 반응 속도를 원한다면 Navidrome이 월등한 선택지입니다. 시스템 자원을 적게 차지하여 저사양 NAS에서도 쾌적하게 동작하는 것이 큰 장점입니다.

이 글에서는 Portainer Stack을 이용해 가장 안정적이고 최적화된 방법으로 Navidrome 서버를 구축하는 전 과정을 안내합니다.

1. 시작 전 필수 확인사항 (PUID/PGID)

Docker 컨테이너가 시놀로지 NAS의 파일에 정상적으로 접근하려면, 컨테이너를 실행하는 사용자의 권한 정보(ID)를 정확히 지정해야 합니다.

  1. PUID (사용자 ID) 및 PGID (그룹 ID) 확인: 시놀로지 DSM에 SSH로 접속한 후, 터미널에 id 명령어를 입력하여 본인 계정의 uidgid 값을 확인합니다. 일반적으로 uid는 1026, gid는 100입니다.
  2. 데이터 무결성: 음악 라이브러리 폴더 경로가 잘못 매핑되면 음악 파일이 스캔되지 않거나, 최악의 경우 권한 충돌로 파일 관리에 문제가 발생할 수 있습니다. 경로를 여러 번 확인하세요.
[!CAUTION]
보안 경고: Navidrome 서버를 역방향 프록시 등을 이용해 외부 인터넷에 노출할 경우, 반드시 추측하기 어려운 복잡한 비밀번호를 사용해야 합니다. 또한, 최신 보안 패치를 위해 주기적으로 Docker 이미지를 업데이트(docker pull deluan/navidrome:latest)하는 것을 권장합니다.

2. Navidrome 설치: Portainer Stack 배포

가장 안정적인 방법은 Portainer의 Stack 기능을 이용하는 것입니다. [Stacks] -> [Add stack] 메뉴로 이동하여 아래 docker-compose 코드를 복사하여 붙여넣고 배포(Deploy the stack) 하십시오.

services:
  navidrome:
    container_name: Navidrome
    image: deluan/navidrome:latest         # Navidrome 최신 이미지를 사용합니다.
    mem_limit: 6g                          # 메모리 사용량을 최대 6GB로 제한합니다.
    cpu_shares: 1024                       # CPU 우선순위를 기본값으로 설정합니다.
    security_opt:
      - no-new-privileges:true             # 컨테이너 내 프로세스의 권한 상승을 방지합니다.
    restart: on-failure:5                  # 오류 발생 시 최대 5번 재시작을 시도합니다.
    ports:
      - 8834:4533                          # NAS의 8834 포트를 통해 서버에 접속합니다.
    volumes:
      - /volume1/docker/navidrome:/data:rw # 설정값 및 DB 저장 경로
      - /volume1/docker/navidrome/music:/music:rw # 실제 음악 파일이 저장된 NAS 경로
    environment:
      PUID: 1026                           # 1단계에서 확인한 본인 PUID로 수정
      PGID: 100                            # 1단계에서 확인한 본인 PGID로 수정
      ND_ENABLEINSIGHTSCOLLECTOR: false    # 익명 통계 수집 비활성화

배포가 완료되면 잠시 후 http://NAS-IP주소:8834 로 접속하여 Navidrome 초기 설정 화면을 확인할 수 있습니다.


3. Docker Stack 코드 상세 분석

위 코드의 각 항목은 안정적인 서버 운영을 위해 최적화되었습니다.

  • mem_limit: Navidrome은 매우 가볍지만, 수만 곡 이상의 대규모 라이브러리를 처음 스캔할 때 메모리 점유율이 일시적으로 상승할 수 있습니다. 6GB는 대부분의 환경에서 충분히 여유 있는 설정입니다.
  • ports: 외부포트:내부포트 형식입니다. 8834는 사용자가 원하는 다른 포트로 변경할 수 있습니다. 단, 다른 서비스와 충돌하지 않는지 확인하고 시놀로지 제어판의 방화벽에서 해당 포트를 허용해야 합니다.
  • volumes: 가장 중요한 설정입니다. 두 번째 줄의 /volume1/docker/navidrome/music 부분을 실제 음원 파일이 저장된 NAS 폴더 경로로 정확하게 수정해야 합니다. (예: /volume1/music)

4. Navidrome 초기 설정 및 관리자 생성

Stack 배포 후 http://NAS-IP주소:8834에 접속하면 Navidrome 초기 설정 화면이 나타납니다. 이 단계는 최초 한 번만 진행합니다.

  1. 사용자 이름(Username): 사용할 관리자 아이디를 입력합니다.
  2. 비밀번호(Password): 강력한 비밀번호를 입력하고 확인란에 한 번 더 입력합니다.
  3. [Create Admin] 버튼을 클릭하여 계정 생성을 완료합니다.

이제 생성한 계정으로 로그인하면 자동으로 라이브러리 스캔이 시작되며, 잠시 후 음악 파일들이 화면에 나타납니다.


5. 모바일 앱 연동 및 외부 접속 설정

Navidrome의 가장 큰 장점은 Subsonic API와 완벽하게 호환된다는 점입니다. 이를 통해 다양한 고품질 서드파티 앱과 연동하여 모바일 환경에서도 쾌적한 스트리밍을 즐길 수 있습니다.

플랫폼 추천 앱 특징
Android Symfonium, DSub 강력한 캐싱, 오프라인 재생, UI 커스터마이징
iOS Ample, play:Sub 깔끔한 UI와 빠른 반응 속도, CarPlay 지원
Web 자체 웹 인터페이스 별도 설치 없이 모든 브라우저에서 바로 사용 가능

외부 접속을 위해서는 Nginx Proxy Manager나 시놀로지의 역방향 프록시 기능을 이용해 https://music.yourdomain.com과 같은 개인 도메인과 연결하고, Let's Encrypt SSL 인증서를 적용하는 것을 강력히 권장합니다.

⚠️ 주의: 위에 언급된 기관명·전화번호·인터넷 주소 등은 변경되었을 수 있습니다. 반드시 해당 기관의 공식 웹사이트에서 최신 정보를 직접 확인하시기 바랍니다.
본 글은 정보 제공 목적이며, 법률적 조언이 아닙니다.

관련 글: Nginx Proxy Manager로 안전한 외부 접속 환경 구축하기


6. 보안 강화 수칙 및 마무리

개인 음악 서버도 인터넷에 연결된 하나의 웹 서비스이므로, 기본적인 보안 수칙을 지키는 것이 중요합니다.

  • 강력한 관리자 계정: Navidrome 초기 설정 시 생성하는 관리자 계정의 비밀번호는 반드시 복잡하게 설정하십시오.
  • 최소 권한 원칙: PUID/PGID를 정확히 설정하여 Navidrome 컨테이너가 음악 폴더 외에 불필요한 시스템 폴더에 접근하지 못하도록 격리합니다.
  • 방화벽 설정: 외부 접속이 필요 없다면, 시놀로지 방화벽에서 내부망 IP 대역만 8834 포트에 접근하도록 허용하여 외부로부터의 접근을 원천 차단하십시오.

결론적으로, Navidrome은 시놀로지 NAS의 시스템 자원을 최소한으로 사용하면서도 가장 만족도 높은 개인 음악 스트리밍 환경을 제공하는 최고의 솔루션 중 하나입니다. 위 가이드를 통해 흩어져 있던 음원 파일을 하나의 멋진 라이브러리로 통합하고, 나만의 전용 스트리밍 서비스를 즐겨보시기 바랍니다.


7. 자주 묻는 질문 (FAQ)

Q1: PUID와 PGID는 왜 정확히 입력해야 하나요?
A: Docker 컨테이너가 NAS의 파일 시스템에 접근할 때, PUID/PGID를 통해 파일 읽기/쓰기 권한을 획득합니다. 이 값이 틀리면 Navidrome이 음악 폴더를 읽지 못해 라이브러리에 노래가 추가되지 않거나, 앨범 아트 저장 등에 실패할 수 있습니다.

Q2: 음악 폴더 경로는 어떻게 수정해야 하나요?
A: Stack 코드의 volumes 섹션에서 - /volume1/docker/navidrome/music:/music:rw 부분의 콜론(:) 앞쪽 경로를 실제 음악이 저장된 폴더로 변경하면 됩니다. 예를 들어, 시놀로지 music 공유 폴더에 음원이 있다면 /volume1/music:/music:rw 로 수정합니다.

Q3: 외부 접속 설정은 필수인가요?
A: 아닙니다. 집 안의 Wi-Fi 환경, 즉 내부 네트워크에서만 사용한다면 외부 접속 설정은 필요 없습니다. 이 경우 보안을 위해 방화벽에서 내부 IP만 허용하는 것이 더 안전합니다. 외부(LTE/5G 등)에서도 접속하려면 역방향 프록시 설정이 필요합니다.

Q4: 컨테이너가 실행되지 않거나 음악이 스캔되지 않아요.
A: 몇 가지 일반적인 원인이 있습니다. 아래 사항을 순서대로 점검해 보세요.

  • 포트 충돌: Stack 코드에 사용한 8834 포트를 다른 서비스가 이미 사용 중인지 확인하세요.
  • 볼륨 경로 오류: volumes에 입력한 음악 폴더 경로가 실제 NAS 경로와 일치하는지 다시 확인하세요. 오타가 가장 흔한 원인입니다.
  • 권한 문제: PUID/PGID 값이 정확한지, 그리고 해당 계정이 음악 폴더에 대한 읽기/쓰기 권한을 가지고 있는지 시놀로지 'File Station'에서 확인하세요.