Audiobookshelf: 나만의 오디오북 및 팟캐스트 서버를 만드는 방법
컴퓨터에서 책을 듣기 시작하고, 휴대전화에서 같은 지점부터 이어 듣고, 여행 전에 다운로드하고, 기기를 바꾼 뒤에도 재생 진행률을 잃지 않는 일에 또 다른 유료 서비스가 꼭 필요한 것은 아닙니다. Audiobookshelf는 내가 보유한 오디오 파일 컬렉션을 표지, 챕터, 앱, 가족 구성원별 프로필을 갖춘 깔끔한 온라인 라이브러리로 바꿔 줍니다.
이 서비스는 서점도 아니고 무료 도서를 제공하는 곳도 아닙니다. 사용자는 합법적으로 확보했으며 호환되지 않는 DRM 보호가 없는 오디오 파일을 직접 추가해야 합니다. 대신 책, 청취 기록, 설정은 모두 자신의 서버에 남습니다.
Audiobookshelf란 무엇인가
Audiobookshelf는 오디오북과 팟캐스트를 위한 무료 오픈 소스 셀프 호스팅 서버입니다. 미디어 파일이 있는 폴더를 스캔하고, 저자와 시리즈별로 라이브러리를 정리하고, 메타데이터와 표지를 가져온 뒤 브라우저나 모바일 앱에서 컬렉션을 들을 수 있게 해 줍니다.
개념적으로는 사용자가 직접 카탈로그를 구성하는 개인 스트리밍 서비스입니다. 서버는 라이브러리와 재생 진행률을 저장하고, 휴대전화·태블릿·컴퓨터는 클라이언트로 작동합니다. 따라서 한 기기에서 책을 멈추고 다른 기기에서 저장된 위치부터 이어 들을 수 있습니다.
Audiobookshelf는 집에 있는 NAS나 미니 PC에서도 실행할 수 있습니다. 하지만 가정용 컴퓨터를 계속 켜 두거나 포트 포워딩을 설정하거나 집 인터넷에 의존하지 않고 어느 네트워크에서든 접근해야 한다면 VPS가 더 편리합니다.
Audiobookshelf의 주요 기능
기기 간 재생 진행률 동기화
사용자마다 재생 위치, 기록, 북마크가 따로 저장됩니다. 웹 인터페이스, Progressive Web App, Android 및 iOS용 공식 모바일 클라이언트를 이용할 수 있습니다. 책을 휴대전화에 미리 다운로드해 인터넷 없이 들을 수도 있습니다.
개별 계정 생성
하나의 서버에 여러 사용자를 만들면서 서로의 재생 진행률이 섞이지 않도록 할 수 있습니다. 관리자는 라이브러리 접근 권한과 각종 권한을 설정하며, 필요하면 태그를 기준으로 콘텐츠를 제한할 수 있습니다. 각 사용자에게는 듣던 책 목록, 기록, 북마크가 별도로 유지됩니다.
라이브러리 정리
서비스는 외부 소스에서 제목, 설명, 저자, 표지를 가져오고, 책을 저자와 시리즈별로 묶으며, 챕터와 트랙 순서를 수정할 수 있게 합니다. 여러 MP3 파일을 하나의 M4B 파일로 합치고 표지와 메타데이터를 파일 안에 삽입할 수도 있습니다. 원본 파일을 변경하기 전에는 라이브러리 사본을 만들어 두는 것이 좋습니다.
팟캐스트 자동 다운로드
팟캐스트는 이름, RSS 링크 또는 OPML 파일로 추가할 수 있으며, 이후 새 에피소드를 일정에 따라 다운로드하도록 설정할 수 있습니다. 서비스가 에피소드를 바로 스트리밍하는 것은 아닙니다. 먼저 파일을 서버에 저장합니다. 덕분에 사라질 수 있는 에피소드를 보관할 수 있지만 디스크 공간이 필요합니다.
오디오북과 전자책을 함께 보관
책 폴더에 EPUB, PDF, CBR, CBZ, AZW3 또는 MOBI 파일을 넣으면 같은 책 카드에서 오디오와 텍스트를 열 수 있습니다. 내장 리더는 기본적인 수준이며 Calibre-Web이나 Kavita를 대체하지는 못합니다.
Audiobookshelf가 적합한 사용자
이 서비스는 다음과 같은 상황에서 특히 유용합니다.
- MP3, M4B, M4A 또는 기타 일반적인 형식의 오디오북 컬렉션을 이미 보유하고 있다;
- 여러 기기에서 듣고 재생 위치를 동기화하고 싶다;
- 여러 가족 구성원이 같은 라이브러리를 이용한다;
- 나만의 팟캐스트 아카이브를 보관하고 싶다;
- 파일, 사용자 계정, 백업을 직접 관리하고 싶다;
- 일반 클라우드 폴더에는 표지, 챕터, 청취 기록이 없어 불편해졌다.
휴대전화 한 대에서 한두 권만 듣는다면 별도 서버는 불필요할 수 있습니다. Audiobookshelf는 컬렉션이 커지거나 상시 원격 접근이 필요할 때 진가를 발휘합니다.
Audiobookshelf에 필요한 서버 사양
프로젝트에는 모든 환경에 적용되는 공식 최소 사양이 없습니다. 부하는 라이브러리 크기, 사용자 수, 파일 스캔, 오디오 트랜스코딩 필요 여부에 따라 달라집니다. 소규모 개인 컬렉션이라면 다음 구성을 시작점으로 참고할 수 있습니다.
| 사용 시나리오 | CPU | RAM | 디스크 |
|---|---|---|---|
| 사용자 1–2명, 소규모 라이브러리 | 1 vCPU | 1 GB | 30–40 GB 이상 |
| 가족 사용 및 여러 동시 접속 | 2 vCPU | 2 GB | 60–100 GB 이상 |
| 대규모 라이브러리, 잦은 스캔과 파일 처리 | 2–4 vCPU | 4 GB | 컬렉션 용량에 맞게 |
이는 공식 최소 사양이 아니라 실용적인 기준입니다. 가장 중요한 자원은 디스크입니다. 64–128 Kbit/s 비트레이트의 10시간짜리 책은 약 0.3–0.6 GB를 차지하므로, 책 100권에는 팟캐스트와 백업을 제외하고 약 30–60 GB가 필요합니다. 나중에 확장할 수 있는 소형 VPS로 시작하는 편이 합리적입니다.
Docker Compose로 Audiobookshelf를 설치하는 방법
Docker는 개발자가 권장하는 설치 방식입니다. 아래 과정은 Ubuntu 또는 Debian에 Docker와 Compose 플러그인이 이미 설치되어 있다고 가정합니다.
프로젝트 디렉터리와 데이터 폴더를 만듭니다.
mkdir -p /opt/audiobookshelf/{config,metadata,audiobooks,podcasts}
cd /opt/audiobookshelfcompose.yml 파일을 만듭니다.
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- "13378:80"
volumes:
- ./config:/config
- ./metadata:/metadata
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
environment:
- TZ=UTC
restart: unless-stopped컨테이너를 시작합니다.
docker compose up -d시작 후 관리 패널은 임시로 다음 주소에서 열 수 있습니다.
http://SERVER_IP:13378처음 접속하면 루트 관리자 계정을 만든 뒤, Books 유형의 라이브러리를 추가하고 /audiobooks 디렉터리를 지정합니다. 팟캐스트용으로는 경로가 /podcasts인 별도 라이브러리를 만듭니다.
오디오북 폴더를 올바르게 구성하는 방법
Audiobookshelf에서는 일반적으로 책 한 권이 폴더 하나에 대응합니다. 가장 이해하기 쉬운 구조는 다음과 같습니다.
/audiobooks/
저자/
시리즈/
01 - 책 제목/
01 - 챕터.mp3
02 - 챕터.mp3
cover.jpg단독 도서라면 시리즈 단계를 생략할 수 있습니다. 하나의 M4B 파일도 해당 책 전용 폴더에 둘 수 있습니다.
폴더 구조는 중요합니다. 같은 저자의 여러 책을 하나의 공용 폴더에 넣으면 스캐너가 이를 하나의 책 카드로 합칠 수 있습니다. 첫 전체 스캔 전에 파일을 정리하는 편이 좋습니다. 책을 라이브러리 사이에서 이동하면 새 항목을 만든 것으로 처리되므로 메타데이터와 재생 진행률은 자동으로 옮겨지지 않습니다.
인터넷에서 라이브러리에 안전하게 접속하는 방법
관리 패널을 열린 HTTP 포트 13378에 그대로 두고 상시 사용하는 것은 권장되지 않습니다. 원격 접속을 위해서는 도메인, HTTPS 인증서, Nginx·Caddy·Traefik 기반의 리버스 프록시를 연결하는 것이 좋습니다.
Audiobookshelf는 WebSocket을 사용하므로 프록시에서 이를 지원하도록 설정해야 합니다. HTTPS 설정을 마친 뒤에는 컨테이너 포트를 로컬 인터페이스에만 바인딩할 수 있습니다.
ports:
- "127.0.0.1:13378:80"고유한 비밀번호를 사용하고, 청취자마다 별도 계정을 만들고, 컨테이너를 최신 상태로 유지하며, 불필요한 관리자 권한을 부여하지 마십시오.
백업에 관해 알아둘 점
Audiobookshelf의 내장 백업은 데이터베이스와 일부 메타데이터를 저장하며, 여기에는 metadata 디렉터리의 표지도 포함됩니다. 오디오북, 팟캐스트, 미디어 파일 옆에 저장된 표지는 이 백업에 포함되지 않습니다.
따라서 안정적인 백업 구성은 두 부분으로 이루어집니다.
- 데이터베이스와 메타데이터의 내장 자동 백업;
audiobooks및podcasts디렉터리를 다른 디스크나 원격 저장소에 별도로 복사.
/config 디렉터리에는 SQLite 데이터베이스가 들어 있습니다. 개발자는 네트워크로 마운트하지 말고 같은 서버의 로컬 디스크에 보관할 것을 권장합니다. 네트워크 저장소는 성능을 떨어뜨리고 데이터베이스 손상을 일으킬 수 있습니다.
tropic.host VPS에서 Audiobookshelf 사용하기
개인 라이브러리에는 최고의 연산 성능보다 지속적인 가용성, 충분한 디스크 공간, 안정적인 연결이 더 중요합니다. VPS에서는 Audiobookshelf가 24시간 작동하며, 가정 네트워크 상태와 관계없이 휴대전화, 컴퓨터, 태블릿에서 접속할 수 있습니다.
소규모 컬렉션이라면 기본 tropic.host 서버로 시작해 Docker를 설치하고 도메인과 HTTPS를 연결한 뒤 라이브러리가 커질 때 자원을 늘릴 수 있습니다. 요금제를 선택할 때는 먼저 오디오 파일의 용량을 계산하고 새 책과 팟캐스트를 위한 여유 공간을 확보하십시오.
미리 알아두면 좋은 제한 사항
Audiobookshelf는 도서 카탈로그를 제공하지 않으며 DRM 보호를 제거하지도 않습니다. 사용자가 직접 추가했고 보관할 권리가 있는 파일을 대상으로 작동합니다.
모바일 앱은 활발히 개발되고 있으며 공식적으로 여전히 베타 상태이므로 웹 인터페이스나 PWA가 유용한 대안이 됩니다. 전자책 지원은 기본적인 수준이며, 대규모 컬렉션을 깔끔하게 가져오려면 폴더 구조를 지키고 때때로 메타데이터를 직접 수정해야 합니다.
오디오북에 관해서는 일반 클라우드 폴더에 없는 기능, 즉 챕터, 시리즈, 진행률, 오프라인 다운로드, 프로필, 팟캐스트 관리를 제공합니다.
간단한 결론
Audiobookshelf는 오디오 파일을 여러 기기와 사용자가 이용할 수 있는 개인 미디어 라이브러리로 바꿉니다. Docker Compose 설치는 간단하지만 안정적으로 운영하려면 정돈된 폴더 구조, HTTPS, 미디어 파일의 별도 백업이 필요합니다.
FAQ
Audiobookshelf는 무료인가요?
네. 서버와 공식 클라이언트는 오픈 소스로 배포됩니다. 하드웨어, VPS, 도메인 또는 추가 저장소를 사용하는 경우에만 해당 비용을 지불하면 됩니다.
Audiobookshelf가 무료 오디오북을 제공하나요?
아니요. 자신의 컬렉션을 위한 서버이자 플레이어입니다. 오디오 파일은 합법적인 방법으로 직접 구한 뒤 라이브러리에 추가해야 합니다.
인터넷 없이 책을 들을 수 있나요?
네. 모바일 앱에서 책을 기기에 미리 다운로드할 수 있습니다. 다운로드한 뒤에는 재생 자체를 위해 서버에 연결할 필요가 없습니다.
Audiobookshelf에는 RAM이 얼마나 필요한가요?
소규모 라이브러리와 사용자 한두 명이라면 1 GB RAM이 합리적인 시작점입니다. 여러 청취자, 대규모 스캔, 파일 처리가 있다면 2–4 GB를 선택하는 것이 좋습니다.
Audiobookshelf를 반드시 VPS에 설치해야 하나요?
아니요. 가정용 서버, NAS 또는 호환되는 컴퓨터에서도 실행할 수 있습니다. 가정용 라우터를 설정하거나 집 인터넷 연결에 의존하지 않고 여러 네트워크에서 24시간 접속해야 한다면 VPS가 더 편리합니다.
