←Все работы
Мобильное приложение + сервер2026

Berth

Self-hosted сервер аудиокниг на Rust и плеер для Android и iOS на Flutter. Книги хранятся на своём диске, в S3 или Google Drive, телефон подключается по QR-коду, слушать можно офлайн. Открытый исходный код (Apache-2.0).

RustTokioAxumSQLxSQLiteobject_storeAWS S3Google DriveMiniJinjaDockerFlutterjust_audioaudio_servicedriftBLoCgo_routerNext.jsTailwindCSS
Berth

Задача

Дать семье и любителям аудиокниг собственную библиотеку без подписок и чужих облаков: книги лежат там, где решил владелец, а слушать их удобно с телефона. Подключение телефона к серверу не должно требовать ввода адресов, логинов и паролей.

Решение

Open-source сервер на Rust в одном Docker-контейнере: библиотека хранится в базе, файлы — на диске, в любом S3-совместимом хранилище или Google Drive, отдача идёт по коротким подписанным ссылкам. Веб-админка для загрузки книг и пользователей. Плеер на Flutter подключается к серверу сканированием QR-кода.

Результат

Сервер опубликован на GitHub под Apache-2.0, Docker-образ для amd64 и arm64 (Raspberry Pi, NAS). Приложение уже в RuStore, в Google Play и App Store — на проверке. Интерфейс на 10 языках, светлая и тёмная тема.

Как это работает

Как это работает

Экраны приложения

Berth — 1Berth — 2Berth — 3Berth — 4Berth — 5

Возможности

Свой сервер

Один Docker-контейнер на VPS, NAS или Raspberry Pi. Веб-админка для книг, пользователей и настроек.

Любое хранилище

Локальный диск, AWS S3, Cloudflare R2, Backblaze B2, MinIO, Yandex Object Storage или Google Drive.

Вход по QR-коду

Телефон подключается к серверу одним сканированием — без ввода адреса и пароля.

Офлайн

Книги скачиваются на телефон и играют без интернета.

Синхронизация

Позиция в каждой книге сохраняется на сервере и продолжается с любого устройства.

Удобный плеер

Фоновое воспроизведение, экран блокировки и Bluetooth, таймер сна, скорость и главы.

Скачать приложение

Скачать в RuStoreСкачать в Google PlayскороЗагрузить в App Storeскоро

Установка сервера

Две команды на любой машине с Docker — сервер поднимется на порту 8080, код настройки будет в логе.

curl -fsSLO https://raw.githubusercontent.com/joveptesg/berth/main/docker-compose.yml
docker compose up -d

Хотите похожий проект?