feat(upload): enhance audio upload handling and user feedback
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m1s
ci / db / db (push) Successful in 1m16s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m12s
ci / api / api (push) Successful in 45s
ci / recommender / recommender (push) Successful in 1m50s
ci / ts / ts (packages + web) (push) Failing after 6m53s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m13s

- Introduced a new warning for users uploading non-FLAC or WAV formats, indicating that these formats should only be used as a last resort.
- Added functionality to highlight files needing format attention in the upload queue.
- Updated the UI to provide clearer guidance on acceptable audio formats during uploads.
- Improved documentation to reflect changes in upload requirements and user interface updates.
This commit is contained in:
mrleo1nid committed 2026-10-21 10:07:43 +03:00
1 parent 74da457362
commit 1e3b350dfc
49 files changed
+147 -5572

No files matched your search

+13 -20
View File
@@ -13,10 +13,6 @@
Готовые Docker-образы не публикуются: сервер клонирует репозиторий и собирает образы сам
(`docker compose build`). Релизы в Gitea содержат только APK для Android.
> **Что умеет текущая версия.** В `v0.1.0` (этап M0) работают развёртывание, HTTPS и проверка связи
> клиентов с сервером. Вход, библиотека и плеер появятся в следующих версиях
> (см. [roadmap.md](roadmap.md)). Шаги, которые зависят от версии, помечены.
---
## 1. Что нужно заранее
@@ -192,12 +188,10 @@ LIBRARY_HOST=/mnt/music
./update.sh
```
Скрипт переключает репозиторий на последний релизный тег (например, `v0.1.1`), собирает образы, запускает
Скрипт переключает репозиторий на последний релизный тег, собирает образы, запускает
все сервисы и ждёт готовности API (до 2 минут). Первая сборка занимает 5–15 минут, следующие — быстрее
за счёт кэша Docker. Конкретная версия: `./update.sh v0.1.1`.
за счёт кэша Docker. Конкретная версия: `./update.sh v1.2.0`.
> Локальная сборка поддерживается начиная с `v0.1.1`: в теге `v0.1.0` `compose.yaml` ещё ссылается на реестр образов.
> Пока `v0.1.1` не вышел, запускайте `./update.sh main`.
При первом запуске Caddy сам получит сертификат для `DOMAIN`, обычно за 10–30 секунд.
Проверка с любого компьютера:
@@ -206,7 +200,7 @@ LIBRARY_HOST=/mnt/music
curl -s https://music.example.com/api/v1/server-info
```
Ожидаемый ответ: `{"name":"pipu-music","version":"0.1.0",...}`. Проверка всех зависимостей:
Ожидаемый ответ — JSON с полями `name` и `version`. Проверка всех зависимостей:
```bash
curl -s https://music.example.com/readyz
@@ -218,11 +212,9 @@ curl -s https://music.example.com/readyz
## 8. Веб-клиент
Откройте `https://music.example.com` в браузере.
Откройте `https://music.example.com` в браузере. На экране входа можно переключить язык RU / EN.
- **v0.1.0:** карточка «Сервер 0.1.0 на связи» и переключатель языка RU / EN.
- **С версии 0.2 (M1):** экран входа. Первый вход — логин `admin` и пароль, который сервер один раз
выводит в лог при первом запуске:
Первый вход — логин `admin` и пароль, который сервер один раз выводит в лог при первом запуске:
```bash
docker compose logs api | grep -i bootstrap
@@ -231,10 +223,11 @@ curl -s https://music.example.com/readyz
Сразу после входа приложение попросит сменить логин и пароль администратора
([auth-and-roles.md](auth-and-roles.md#первый-запуск-bootstrap)). Чтобы задать пароль заранее, впишите
`BOOTSTRAP_ADMIN_PASSWORD` в `.env` **до** первого запуска.
- **С версии 0.3 (M2):** Админка → Хранилища → «Добавить хранилище» → тип «Локальная папка» → выберите
подпапку на диске `/mnt/music` (в списке она видна как `/library-host/...`) → «Проверить» → шаблоны путей
→ «Сохранить и пересканировать» ([library-and-storage.md](library-and-storage.md)).
Там же можно добавить NFS-хранилище: адрес сервера и путь экспорта.
Музыку подключает администратор: Админка → Хранилища → «Добавить хранилище» → тип «Локальная папка» →
подпапка на диске `/mnt/music` (в списке она видна как `/library-host/...`) → «Проверить» → шаблоны путей →
«Сохранить и пересканировать» ([library-and-storage.md](library-and-storage.md)).
Там же можно добавить NFS-хранилище: адрес сервера и путь экспорта.
---
@@ -246,10 +239,10 @@ curl -s https://music.example.com/readyz
разрешите и вернитесь к установке.
3. Запустите **Pipu Music**, на экране подключения введите адрес сервера: `music.example.com`
(`https://` подставится сам) → «Проверить».
4. Ожидаемый результат — «Сервер 0.1.0 на связи». Если версия приложения слишком старая для сервера,
приложение попросит обновиться.
4. Приложение показывает, что сервер на связи. Если установленная версия слишком старая,
оно попросит обновиться.
Дальше приложение обновляется само: с версии M5 оно проверяет новые релизы через ваш сервер
Дальше приложение обновляется само: проверяет новые версии через ваш сервер
и предлагает обновиться ([mobile.md](mobile.md#самообновление)). Адрес Gitea и репозиторий (`GITEA_URL`, `GITEA_REPO`)
`install.sh` и `update.sh` берут из `git remote` клона; `GITEA_TOKEN` (только на чтение) нужен, если репозиторий
закрытый. Если сервер не видит Gitea по внешнему адресу — впишите внутренний в `GITEA_URL`. Раздать приложение —