CloudTune • проект в проде

Музыкальный fullstack c локальным и облачным режимом

CloudTune уже работает в проде: Flutter-клиент для Android и Windows, Go API, PostgreSQL, файловое хранилище и мониторинг через Telegram-бота. Это не концепт, а уже выложенный на магазины приложений продкут.

Что внутри проекта

Здесь только ключевые и технически сложные части, которые дают проекту устойчивость и масштабируемость в реальном использовании.

Дедупликация загрузок по content_hash: сервер не хранит дубликаты и не тратит диск зря.
Синхронизация локальной и облачной библиотек с проверкой существующих треков перед загрузкой.
Фоновый аудиодвижок (queue, shuffle/repeat, media session) без остановки при сворачивании.
Кроссплатформенный UI (Android + Windows) с общим кодовым ядром и отдельной desktop-оболочкой.
Продовый мониторинг: метрики, статус хранилища, алерты и команды через Telegram-бота.
Docker-инфраструктура на Ubuntu 22.04: API, PostgreSQL, Nginx reverse proxy и SSL.

Демо работы

Вместо скриншотов ниже живые записи интерфейса: desktop-версия в GIF и Android-версия в видео.

CloudTune desktop demo
Desktop (Windows): работа хранилища и плеера в двухпанельном интерфейсе.
Android: реальная запись экрана приложения с управлением воспроизведением.

Как скачать

Desktop версия (Windows)

Для установки скачайте архив desktop-сборки и распакуйте его на ПК. Актуальный релиз: 1.9.3+12 (обновлен 04.03.2026).

Скачать архив (.zip)

Android версия

Можно установить APK напрямую или скачать приложение из RuStore. Актуальный релиз: 1.9.3+12 (обновлен 04.03.2026).

Скачать APK Открыть в RuStore

Стек и версии

Go 1.24 (go.mod) Gin 1.9.1 PostgreSQL 15 Flutter 3.41.1 Dart 3.11.0 just_audio 0.9.46 audio_service 0.18.18 flutter_secure_storage 9.2.4 flutter_local_notifications 19.5.0 python-telegram-bot 22.3 httpx 0.28.1 Docker Compose

Исходники, README и скрипты деплоя: github.com/epitaph76/cloudtune.

История обновлений

Релиз клиента 1.9.3+12: фикс redirect URI Яндекс.OAuth 04.03.2026

Redirect URI для Яндекс.Диска зафиксирован на https://oauth.yandex.ru/verification_code без переопределения через dart-define, сценарий оставлен только с ручным копированием ключа, а действие «Удалить ключ облака» доступно и в меню «Загрузить», и в окне ввода ключа.

Релиз клиента 1.9.2+11: доработка UX ключа Яндекс.Диска 04.03.2026

Кнопка «Удалить ключ облака» перенесена только в окно ввода ключа, выровнена по высоте с полем ввода, а текст подсказки обновлен под сценарий копирования ключа со страницы Яндекса.

Релиз клиента 1.9.1+10: auto-return OAuth и удаление ключа облака 04.03.2026

Для Яндекс.Диска добавлен callback deep link (автовозврат в приложение после входа) и действие выхода из облачного аккаунта через кнопку «Удалить ключ облака» в попапе подключения и в меню «Загрузить».

Релиз клиента 1.9.0+9 04.03.2026

Обновлены Android и Windows артефакты до версии 1.9.0+9, синхронизированы ссылки на скачивание и подписи версии на лендинге.

Релиз клиента 1.8.6+8: импорт из Яндекс.Диска в локальную библиотеку 04.03.2026

Добавлен новый сценарий в кнопке «Загрузить»: подключение Яндекс.Диска через OAuth, рекурсивный скан облака с фильтром аудио, сравнение с уже импортированными треками, мультивыбор найденных файлов и сохранение выбранного только в локальную библиотеку.

Стабилизация клиента и обновление артефактов Android/Windows 04.03.2026

Обновлены сборки приложения в репозитории, добавлена интеграция открытия OAuth-ссылок (url_launcher), улучшены auth/audio-сервисы, расширены локализации и тесты, а также внесены правки в мониторинг backend и Telegram-бот.

Пагинация, серверный поиск и ускорение больших библиотек 26.02.2026

В API добавлены limit/offset/search для библиотек и плейлистов, клиент переведен на lazy-подгрузку, экран серверного хранилища декомпозирован на отдельные компоненты/сервисы, добавлены новые тесты и улучшена наблюдаемость upload-ошибок.

Единый деплой через Telegram + автотесты 25.02.2026

Добавлен запуск деплоя из бота: обновляются backend и лендинги, выполняются подробные post-deploy тесты API, а при ошибке автоматически выполняется rollback на предыдущий commit с отправкой причины в Telegram.

Релиз клиента 1.8.3+6 24.02.2026
Оптимизация облачной загрузки/скачивания 23.02.2026

Добавлены bulk-операции для плейлистов, параллельные загрузки, ускоренная отдача файлов через Nginx и новые upload-метрики в мониторинге.

Расширен Telegram-мониторинг 23.02.2026

Бот переведен в отдельный systemd-сервис (вне Docker), добавлены карточки пользователя, файлы и плейлисты с постраничным просмотром.