음악 스트리밍 서비스에서 자체 호스팅 음악 스택으로 전환하기

음악 스트리밍 서비스에서 자체 호스팅 음악 스택으로 전환하기

TV와 영화 스트리밍 플랫폼은 무료 서비스가 많아 쉽게 전환할 수 있지만, 음악 스트리밍 서비스는 그렇지 않습니다.음악 서비스는 새로운 트랙 검색, 메타데이터 관리, 재생 목록 생성, 기기 간 동기화 등 복잡한 요소들을 포함하고 있습니다.또한, 하드 드라이브에 음악 라이브러리를 관리하는 데에는 상당한 시간과 노력이 필요합니다.하지만 저는 제 음악 스트리밍 요구 사항에 매우 잘 맞는 도구들을 조합해서 사용해 보았습니다.아래에서는 여러분이 자신만의 음악 스트리밍 서비스를 설정하는 데 도움이 될 자세한 안내를 제공합니다.

모든 음악 스트리밍 서비스는 견고한 백엔드 아키텍처에 의존합니다. Spotify, Apple Music, YouTube Music과 같은 플랫폼은 사용자 라이브러리 관리, 메타데이터 관리, 원활한 오디오 스트리밍을 지원하기 위해 광범위한 인프라를 활용합니다.자체 음악 스트리밍 스택을 구축할 때 Navidrome은 이러한 필수적인 백엔드 구성 요소 역할을 합니다.

Navidrome은 자체 호스팅 음악 서버로서, 사용자의 음악 라이브러리를 체계적으로 스캔하고 정리하는 동시에 웹, 데스크톱 및 모바일 애플리케이션과 호환되는 스트리밍 인터페이스를 제공합니다. Subsonic API 지원 덕분에 Spotify와 유사한 사용자 경험을 제공하는 혁신적인 플레이어에 연결할 수 있습니다.

나비드롬 로그인 페이지

최적의 사용을 위해서는 Docker Compose를 활용하는 것이 좋습니다.특히 향후 Lidarr와 같은 자동화 도구 및 다양한 다운로드 클라이언트를 추가하여 스택을 확장할 계획이라면 더욱 그렇습니다.

이 가이드에서는 Mac 환경을 예시로 사용하지만, Linux 사용자에게도 동일한 단계가 적용되며 Windows에서도 쉽게 따라할 수 있습니다.

Navidrome을 설치하기 전에 음악 파일, 다운로드 및 서비스 데이터를 효율적으로 관리할 수 있도록 잘 정리된 폴더 구조를 구축하는 것이 중요합니다.터미널을 열고 다음 명령어를 입력하여 이 작업을 시작할 수 있습니다.

mkdir -p ~/docker/music-servercd ~/docker/music-servermkdir -p musicmkdir -p downloadsmkdir -p compose

음악 폴더에는 실제 오디오 파일이 저장되고, 다운로드 폴더는 향후 자동화 작업을 위해 사용됩니다.이제 다음 명령어를 입력하여 작곡 폴더로 이동하세요 .

cd ~/docker/music-server/compose

다음 명령을 실행하여 Docker Compose 파일을 생성하세요.

nano docker-compose.yml

다음 구성을 파일에 삽입하십시오.

services: navidrome: image: deluan/navidrome:latest container_name: navidrome ports: - "4533:4533" volumes: - navidrome_data:/data -../music:/music restart: unless-stoppedvolumes: navidrome_data:

파일을 저장한 후 다음 명령을 실행하여 Navidrome을 시작하십시오.

docker compose up -d

이 명령은 Navidrome 이미지를 다운로드하고 컨테이너를 자동으로 시작합니다.접속하려면 웹 브라우저를 열고 http://localhost:4533 으로 이동하세요.

관리자 계정을 생성하라는 메시지가 표시됩니다.로그인하면 Navidrome이 자동으로 음악 폴더를 스캔합니다.기존에 음악 파일이 있는 경우 즉시 라이브러리에 통합됩니다.

나비드롬 홈페이지

축하합니다! 이제 로컬 컴퓨터에서 완벽하게 작동하는 음악 스트리밍 백엔드를 구축했습니다. FLAC 또는 MP3와 같은 형식의 음악 파일을 업로드하시면 Navidrome에서 요청 시 스트리밍해 드립니다.

하지만 Navidrome은 백엔드 역할을 하지만 Spotify와 같은 플랫폼과 경쟁할 만한 매력적인 사용자 인터페이스가 부족합니다.스트리밍 경험을 향상시키려면 더 나은 프런트엔드 솔루션을 통합해야 합니다.

Feishin을 통합하여 사용자 경험을 향상시키다

Navidrome은 내장 웹 인터페이스를 제공하지만, 미적인 측면보다는 기능성을 우선시합니다.목적에는 부합하지만, 최신 스트리밍 서비스에 대한 사용자들의 기대에는 미치지 못합니다.

바로 이 지점에서 Feishin이 등장합니다. Feishin은 Subsonic과 호환되는 세련된 전용 플레이어로, 부드러운 애니메이션과 강력한 재생 목록 관리 기능을 갖춘 현대적인 인터페이스를 제공합니다. Feishin은 Spotify와 매우 유사하며 앨범, 아티스트, 재생 목록, 직관적인 재생 제어 기능 등을 지원합니다.

중요한 점은 Feishin이 Navidrome과 완벽하게 연결되어 즉시 음악 스트리밍이 가능하다는 것입니다. Feishin을 설치하려면 Docker Compose 파일을 다시 열고 Feishin을 포함하도록 수정하세요.

services: navidrome: image: deluan/navidrome:latest container_name: navidrome ports: - "4533:4533" volumes: - navidrome_data:/data -../music:/music restart: unless-stopped feishin: image: ghcr.io/jeffvli/feishin:latest container_name: feishin ports: - "9180:9180" restart: unless-stoppedvolumes: navidrome_data:

Feishin을 추가했으면 다음 명령을 실행하여 시작하세요.

docker compose up -d

Feishin을 실행한 후 브라우저를 열고 http://localhost:9180 으로 이동합니다.서버 유형으로 Subsonic을 선택하고 Navidrome 주소(로컬 호스팅 시 http://localhost:4533) 를 입력하여 Navidrome에 연결하도록 설정합니다. Navidrome 설정 시 생성한 자격 증명을 사용하여 로그인합니다.

페이신 홈페이지

연결이 설정되면 Feishin은 아티스트, 앨범, 재생 목록을 포함한 전체 음악 라이브러리를 자동으로 불러옵니다.

Lidarr로 라이브러리 관리를 간소화하세요

음악 라이브러리를 수동으로 관리하는 것은 금방 지루해질 수 있는데, Lidarr를 통합하면 이 작업을 크게 간소화할 수 있습니다. Lidarr는 사용자가 팔로우하는 아티스트를 모니터링하여 앨범을 자동으로 검색하고 다운로드한 후 음악 라이브러리에 정리해 줍니다.새로운 트랙이 추가되면 Navidrome이 즉시 감지하여 Feishin에 자연스럽게 표시됩니다.

Lidarr 홈페이지 옵션

Lidarr를 포함하도록 Docker Compose 파일을 마지막으로 한 번 더 수정하세요.

services: navidrome: image: deluan/navidrome:latest container_name: navidrome ports: - "4533:4533" volumes: - navidrome_data:/data -../music:/music restart: unless-stopped feishin: image: ghcr.io/jeffvli/feishin:latest container_name: feishin ports: - "9180:9180" restart: unless-stopped lidarr: image: linuxserver/lidarr:latest container_name: lidarr ports: - "8686:8686" volumes: - lidarr_config:/config -../music:/music -../downloads:/downloads restart: unless-stoppedvolumes: navidrome_data: lidarr_config:

Lidarr를 실행하려면 다음 명령어를 입력하세요:

docker compose up -d

다음으로 브라우저에서 http://localhost:8686 으로 이동하세요.인터페이스를 사용하여 좋아하는 아티스트를 추가하면 Lidarr가 별도의 입력 없이 라이브러리를 관리해 줍니다. Lidarr는 다운로드 클라이언트와 통합되어 트랙 검색부터 정리까지 전체 과정을 처리합니다.

음악 스택을 지속적으로 향상시키세요

이 시점에서 여러분은 완벽하게 작동하는 자체 호스팅 음악 스트리밍 시스템을 갖추게 되었습니다. Navidrome은 라이브러리의 백엔드를 관리하고, Feishin은 사용자 인터페이스를 개선하며, Lidarr는 라이브러리 유지 관리를 자동화합니다.특히 기존에 음악 컬렉션을 보유하고 있는 사용자에게는 이 구성만으로도 Spotify에 충분히 필적할 만합니다.

저는 의도적으로 핵심 구성 요소에 집중하여 단순함과 안정성을 목표로 시스템을 구성했습니다.하지만 청취 경험을 더욱 향상시키고 싶다면 몇 가지 업그레이드를 통해 본격적인 스트리밍 서비스에 가까운 환경을 구축할 수 있습니다.

현재 서버는 홈 네트워크 내에서만 접속 가능합니다.원격 접속을 활성화하면 어디서든 라이브러리를 스트리밍할 수 있습니다. Tailscale이나 WireGuard와 같은 솔루션은 홈 서버에 안전한 연결을 제공하여 휴대폰, 노트북 또는 회사 컴퓨터를 통해 접속할 수 있도록 해줍니다.이러한 업그레이드는 사용 편의성을 크게 향상시킬 수 있지만, 외부에서 서버에 접속할 때 발생할 수 있는 보안 위험을 최소화하기 위해 세심한 설정이 필요합니다.

조직을 더욱 정교하게 다듬으면 상용 스트리밍 서비스와 같은 수준의 사용자 경험을 제공할 수 있습니다.beets 와 같은 도구를 사용하면 앨범 아트 자동 검색, 일관된 아티스트 이름 지정, 잘 구성된 라이브러리 구축이 가능합니다.이 명령줄 메타데이터 관리자는 MusicBrainz와 통합되어 트랙 태그 지정, 이름 불일치 해결, 앨범 아트 검색, 일관된 폴더 레이아웃 적용 등의 기능을 제공합니다.

Spotify와 같은 플랫폼의 음악 추천 기능을 재현하는 것은 어렵지만 불가능한 것은 아닙니다. Spotify의 강력한 추천 기능은 수년간의 청취 패턴 분석과 독자적인 알고리즘을 기반으로 합니다.하지만 ListenBrainz 와 같은 오픈 소스 도구도 사용자의 청취 습관을 추적하여 맞춤형 추천을 제공할 수 있습니다.또한 Explo 와 같은 도구는 이러한 분석 정보를 바탕으로 Navidrome에서 플레이리스트를 생성할 수 있습니다.

자체 호스팅이 다소 부담스러워 보일 수 있지만, 구독료를 절약하면서 미디어를 더욱 효과적으로 관리할 수 있는 기회를 제공합니다.예를 들어, Immich와 같은 솔루션을 사용하면 Google 포토와 별개로 사진을 관리할 수 있고, Papra와 같은 도구를 사용하여 문서 관리 시스템을 구축할 수도 있습니다.

출처 및 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다