Berth
Self-hosted audiobook server in Rust and a Flutter player for Android and iOS. Books live on your own disk, S3 or Google Drive, phones connect with a QR code, listening works offline. Open source (Apache-2.0).

Challenge
Give families and audiobook lovers their own library with no subscriptions and no third-party cloud: books stay where the owner decides, and listening on a phone is easy. Connecting a phone to the server should not require typing addresses, logins or passwords.
Solution
An open-source Rust server in a single Docker container: the library lives in a database, files sit on local disk, any S3-compatible storage or Google Drive, and playback goes through short-lived signed links. A web admin handles uploads and users. The Flutter player connects to the server by scanning a QR code.
Result
The server is on GitHub under Apache-2.0, with a Docker image for amd64 and arm64 (Raspberry Pi, NAS). The app is live on RuStore, with Google Play and App Store in review. The interface is in 10 languages, with light and dark themes.
How it works


App screens





Features
Your own server
One Docker container on a VPS, NAS or Raspberry Pi. Web admin for books, users and settings.
Any storage
Local disk, AWS S3, Cloudflare R2, Backblaze B2, MinIO, Yandex Object Storage or Google Drive.
QR sign-in
A phone connects to the server with one scan — no address or password to type.
Offline
Download books to the phone and listen without a connection.
Sync
Your place in every book is saved on the server and continues on any device.
A proper player
Background playback, lock screen and Bluetooth controls, sleep timer, speed and chapters.


