본문으로 건너뛰기
Berth

서버 1.0 출시 · 앱 스토어 출시 예정

Berth — 나와 가족을 위한 셀프 호스팅 오디오북 서버

Berth는 내 VPS, NAS 또는 Docker에서 직접 운영하는 오픈 소스 오디오북 서버예요. 웹 관리자로 책을 업로드하고, 로컬 디스크나 S3 호환 저장소, Google Drive에 보관하고, Android·iOS용 Berth 앱으로 들으세요. 진행 상황은 절대 잃지 않아요.

저장소에 Star나 Watch를 눌러 두면 앱이 스토어에 나올 때 알 수 있어요.

앱 디자인 목업

문제

홈 서버에서 오디오북이 사라지는 이유

  • 폴더 스캐너가 라이브러리를 추측해요

    대부분의 셀프 호스팅 서버는 폴더를 스캔해 라이브러리를 다시 만들어요. 엉뚱한 파일 하나 때문에 시리즈가 합쳐질 수 있고, 파일을 NAS로 옮기면 청취 진행 상황이 지워질 수 있어요.

  • 재생 위치가 뒤로 돌아가요

    잠금 화면이나 Bluetooth로 일시정지하거나, 동기화가 끝나기 전에 앱을 열면 재생 위치가 초기화될 수 있어요. 오디오북 앱에 대한 가장 흔한 불만이에요.

  • 오프라인 다운로드가 멈춰요

    다운로드가 멈추거나, 재생할 수 있는 책이 되지 않거나, 트랙이 엉뚱한 순서로 재생돼요.

Berth는 이런 문제가 생길 틈이 없도록 설계됐어요. 데이터베이스가 기준이 되고, 휴대폰은 자체적으로 재생 위치를 기억해요.

작동 방식

직접 호스팅하는 서버, 직접 고르는 저장소, 모든 휴대폰에 앱

Berth는 세 부분으로 이뤄져요. 서버는 라이브러리를 데이터베이스에 보관하고, 오디오는 내가 고른 저장소에 있으며, 앱은 오디오를 재생하고 멈춘 위치를 기억해요.

  1. 서버 실행

    웹 관리자가 내장된 서버 하나예요. VPS, NAS 또는 Docker에 설치하고 짧은 웹 마법사로 설정을 마치세요.

  2. 책 업로드

    파일이나 폴더 전체를 웹 관리자로 끌어다 놓으세요. 챕터가 있는 m4b나 mp3 폴더 모두 돼요. 저장하기 전에 메타데이터를 편집할 수 있어요. 폴더 구조는 상관없어요.

  3. QR로 휴대폰 연결

    관리자에서 청취자를 만들고 QR 코드를 보여 주세요. 휴대폰이 코드를 스캔하거나 입력하면 라이브러리가 나타나요. 청취자에게는 비밀번호가 없어요.

Berth에서 오디오가 전달되는 방식

Berth 서버

웹 관리자 · 데이터베이스

라이브러리, 진행 상황

Berth 앱

Android · iOS

짧은 시간만 유효한 서명 링크

내 저장소

로컬 · S3 · R2 · Google Drive

CDN

선택 사항

S3 호환 저장소를 쓰면 오디오가 짧은 시간만 유효한 서명 링크를 통해 저장소나 CDN에서 바로 스트리밍되므로, 서버가 병목이 되지 않아요. 로컬 디스크와 Google Drive는 서버를 통해 스트리밍돼요.

기능

가족 오디오북 라이브러리에 필요한 모든 것

저장소

  • 로컬 디스크
  • 모든 S3: AWS, Cloudflare R2, Backblaze B2, MinIO, Yandex Object Storage 등
  • Cloudflare R2와 Google Drive는 마법사로 연결 — 키를 직접 다룰 필요 없음
  • R2 앞에 Cloudflare CDN 선택 사용
  • Google Drive 폴더를 책으로 가져오기

Android·iOS용 플레이어 앱

  • 백그라운드 재생, 잠금 화면 및 알림 컨트롤
  • Bluetooth 버튼, Android Auto, CarPlay
  • 취침 타이머: 분 단위, 챕터 끝, 페이드 아웃, 흔들어서 연장
  • 책마다 재생 속도 기억
  • 일시정지 후 다시 재생하면 몇 초 되감기
  • 챕터와 30초 건너뛰기

진행 상황과 오프라인

  • 몇 초마다 휴대폰에 위치 저장 — 앱을 닫아도 유지
  • 일반 HTTP로 기기 간 동기화
  • 서버의 위치가 더 최신일 때만 로컬 위치를 대체
  • 오프라인 다운로드는 체크섬 검증, 이어 받기, 올바른 순서 보장

가족과 관리

  • QR 코드로 휴대폰 연결 — 청취자 비밀번호 없음
  • 0+부터 18+까지 책 연령 등급과 필터
  • 홈(LAN) 주소와 원격(WAN) 주소 자동 전환
  • 관리자에서 데이터베이스 백업, 업데이트 전 자동 백업
  • OpenAPI로 기술된 API를 갖춘 오픈 서버(Apache-2.0)

비교

Berth와 Audiobookshelf, Plex, Jellyfin 비교

네 가지 모두 내 서버에서 오디오북을 제공할 수 있어요. 차이는 라이브러리를 만드는 방식, 파일을 둘 수 있는 곳, 휴대폰을 연결하는 방식에 있어요.

Berth와 Audiobookshelf, Plex, Jellyfin 비교
항목BerthAudiobookshelfPlexJellyfin
초점오디오북오디오북과 팟캐스트범용 미디어 서버범용 미디어 서버
라이브러리 출처데이터베이스, 웹 관리자로 책 업로드미디어 폴더 스캔미디어 폴더 스캔미디어 폴더 스캔
파일 위치로컬 디스크, 모든 S3, Google Drive로컬 또는 마운트된 파일 시스템로컬 또는 마운트된 파일 시스템로컬 또는 마운트된 파일 시스템
오디오 전송서명 링크로 저장소나 CDN에서, 또는 서버를 통해서버를 통해서버를 통해서버를 통해
청취자 로그인QR 코드, 비밀번호 없음사용자 이름과 비밀번호Plex 계정사용자 이름과 비밀번호 또는 Quick Connect
모바일 앱자체 Android·iOS 앱(아직 스토어 미출시)공식 Android 앱, iOS 앱은 TestFlight 베타Plex 앱과 서드파티 오디오북 플레이어서드파티 오디오북 플레이어
서버 라이선스Apache-2.0GPL-3.0독점GPL-2.0
성숙도서버 1.0(2026년 10월), 앱 개발 중성숙함, 대규모 커뮤니티성숙함, 상용성숙함, 대규모 커뮤니티

2026년 10월 기준 공개 문서와 이슈 트래커를 바탕으로 했어요. Audiobookshelf, Plex, Jellyfin은 성숙하고 널리 쓰이는 프로젝트예요. Berth는 2026년 10월에 첫 서버 릴리스를 냈고, 앱은 아직 스토어에 없어요.

FAQ

자주 묻는 질문

Berth는 무엇인가요?

Berth는 전용 모바일 앱이 있는 셀프 호스팅 오디오북 서버예요. 내 하드웨어에서 서버를 실행하고, 웹 관리자로 책을 업로드하고, 파일을 저장할 곳을 고르면 가족이 Android나 iOS에서 들을 수 있어요.

지금 Berth를 설치할 수 있나요?

서버는 가능해요. 버전 1.0은 Linux 서버, NAS, Raspberry Pi(amd64, arm64)의 Docker에서 실행돼요. 모바일 앱은 아직 스토어에 없어요. GitHub 저장소에 Star나 Watch를 눌러 두면 출시 소식을 받을 수 있어요.

Berth는 오픈 소스인가요?

Berth 서버는 Apache-2.0 라이선스의 오픈 소스이며 GitHub에 공개 저장소가 있어요. API는 OpenAPI로 기술돼 있어 서드파티 클라이언트를 만들 수 있어요. 공식 모바일 앱은 별도의 비공개 소스 프로젝트예요.

Berth는 Audiobookshelf와 무엇이 다른가요?

Berth는 폴더 스캔으로 라이브러리를 다시 만들지 않고 데이터베이스에 보관하므로, 파일 구조나 엉뚱한 파일, 저장소 이동 때문에 책이나 진행 상황이 망가지지 않아요. 또한 로컬 디스크뿐 아니라 S3 호환 저장소나 Google Drive에도 오디오를 보관할 수 있어요. Audiobookshelf는 성숙하고 팟캐스트를 지원하며 커뮤니티가 커요. Berth는 새 프로젝트이고 오디오북에 집중해요.

Berth는 어떤 저장소를 지원하나요?

로컬 디스크, 모든 S3 호환 저장소(AWS S3, Cloudflare R2, Backblaze B2, MinIO, Yandex Object Storage, Wasabi, Hetzner 등), Google Drive를 지원해요. Cloudflare R2와 Google Drive는 안내 마법사로 연결해요.

오디오북을 Google Drive에 보관할 수 있나요?

네. Berth는 최소 권한인 drive.file로 Google Drive에 연결하므로 자신이 만든 파일만 볼 수 있어요. Drive의 오디오는 내 Berth 서버를 통해 스트리밍되고 다운로드돼요.

청취 진행 상황이 기기 간에 동기화되나요?

네. 앱은 몇 초마다 모든 책의 위치를 휴대폰에 저장하고 서버와 동기화해요. 서버의 위치는 더 최신일 때만 로컬 위치를 대체해요. 다운로드한 책은 오프라인에서 재생돼요.

Berth는 Android Auto와 CarPlay에서 작동하나요?

네, 둘 다 첫 버전에 포함돼요. 차에서 이어 듣기, 라이브러리, 다운로드를 둘러보고 재생을 제어할 수 있어요.

가족은 어떻게 연결하나요?

관리자가 웹 패널에서 QR 코드를 보여 주면, 휴대폰이 코드를 스캔하거나 짧은 코드(예: BRTH-7K2Q)를 입력해 연결돼요. 청취자에게는 비밀번호가 필요 없고, 관리자는 언제든 기기의 연결을 해제할 수 있어요.

Berth는 어떤 오디오 형식을 지원하나요?

첫 버전은 챕터가 내장된 m4b 오디오북과 mp3 파일 폴더를 처리해요. 챕터와 트랙 순서는 파일 이름에서 추측하지 않고 데이터베이스에 저장돼요.

Audiobookshelf에서 옮겨 올 수 있나요?

첫 버전에서는 안 돼요. 책은 웹 관리자로 업로드하거나 Google Drive 폴더를 가져와 추가해요. Audiobookshelf 가져오기 기능은 첫 릴리스 이후에 검토할 예정이에요.

현황

현황과 로드맵

서버 1.0이 출시됐고, 앱은 마무리 중이에요. 아직 스토어 출시일은 정해지지 않았어요. 소식은 저장소를 팔로우해 확인하세요.

첫 버전(진행 중)

  • 웹 관리자와 설정 마법사가 있는 서버
  • 웹으로 업로드: 챕터가 있는 m4b, mp3 폴더
  • 저장소: 로컬, S3, Cloudflare R2 마법사, Google Drive
  • QR로 연결하는 Android·iOS 앱
  • 백그라운드 재생, 잠금 화면, Bluetooth
  • Android Auto와 CarPlay
  • 취침 타이머, 책별 속도, 일시정지 후 되감기
  • 진행 상황 동기화와 오프라인 다운로드
  • 연령 등급과 필터
  • 데이터베이스 백업

첫 버전 이후

  • 데스크톱 앱
  • 태블릿 레이아웃
  • 팟캐스트
  • Audiobookshelf에서 가져오기
  • 어린이 프로필과 접근 규칙
  • 메모가 있는 북마크와 청취 통계

설치

설치

Berth는 Linux 서버, NAS, Raspberry Pi의 Docker에서 실행돼요. 아래 명령은 8080 포트로 서버를 시작해요. 업데이트, 백업, HTTPS는 GitHub의 README에서 다뤄요.

bashamd64 · arm64
$ mkdir berth && cd berth
$ curl -fsSLO https://raw.githubusercontent.com/joveptesg/berth/main/docker-compose.yml
$ docker compose up -d
$ docker compose logs berth
# 그다음 서버 주소를 열고 로그에 있는 설정 코드를 입력하세요