Fullstack музыкальный сервис

Музыкальный плеер с облаком

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

  • Android + Windows
  • Go API
  • PostgreSQL
  • Telegram monitoring

Desktop flow

Windows-версия как основной proof-of-product: хранилище, библиотека и плеер в одном контуре.

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

Android flow

Мобильный контрапункт к desktop-сценарию с тем же ядром приложения.

Android: реальная запись экрана приложения с управлением воспроизведением.

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

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

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

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

Уже можно поставить на Windows и Android

Desktop версия (Windows)

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

Android версия

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

Технологический инвентарь проекта

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.

Сжатая лента релизов и ключевых изменений

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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