diff --git a/docs/services/lxc203-media/navidrome.md b/docs/services/lxc203-media/navidrome.md index f34f971..77186e2 100644 --- a/docs/services/lxc203-media/navidrome.md +++ b/docs/services/lxc203-media/navidrome.md @@ -1,6 +1,7 @@ # Navidrome Music Server — LXC 203 (media) -Контейнер: `media` (203) | Путь: `/mnt/service/navidrome` | Порты: `4533` (Web/API) | Тип: Self-hosted Subsonic-сервер + автоматическая разметка метаданных - +| Контейнер | Путь | Порты| Тип| +|----------|---------|---------|---------| +| `media` (203)|`/mnt/service/navidrome` |`45136` (Web/API) | Self-hosted Subsonic-сервер + автоматическая разметка метаданных| ## 📋 Описание Лёгкий, быстрый и современный музыкальный сервер с полной поддержкой Subsonic API. Включает автоматическую нормализацию метаданных через `beets` + MusicBrainz, обход блокировок через Xray-туннель, исправление кодировки кириллицы и умные плейлисты через ListenBrainz. Особенности: @@ -12,12 +13,15 @@ ✅ Клиенты: полная поддержка Subsonic-клиентов (Symfonium, Substreamer, Ultrasonic) ## 🗂️ Структура файлов + +```text /mnt/service/navidrome/ -── docker-compose.yml # Конфиг запуска сервера +├── docker-compose.yml # Конфиг запуска сервера ├── data/ # База данных, настройки, кэш Navidrome ├── plugins/ # Директория для плагинов (.ndp) └── navidrome.tar # Архив для миграции между контейнерами /mnt/audio/ # Точка монтирования музыкальной библиотеки +``` ## ⚙️ Установка и настройка ### Шаг 1: Подготовка директорий и прав @@ -148,6 +152,73 @@ sudo chown 1000:1000 listenbrainz-daily-playlist.ndp Настройки → Интеграции → ListenBrainz → Включить → Вставить токен → Сохранить. Плейлист «Моя волна» появится в разделе «Плейлисты» после 5-10 прослушанных треков и автоматической генерации (раз в 24ч). +### 🎵 Плейлисты из папок (M3U-импорт) + +Navidrome автоматически импортирует файлы `.m3u` и `.m3u8`, размещённые внутри музыкальной директории. Это позволяет создавать плейлисты на основе содержимого папок без ручного добавления треков. + +#### Создание плейлиста из папки + +```bash +cd /mnt/audio/music/Сборники/savedtracks +find . -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.ogg" -o -iname "*.m4a" \) -printf '%P\n' | sort > savedtracks.m3u +``` + +**Что делает команда:** +- `find . -type f` — рекурсивный поиск файлов +- `\( -iname "*.mp3" -o ... \)` — фильтрация по аудио-расширениям +- `-printf '%P\n'` — вывод относительных путей (без `./`, как требует Navidrome) +- `sort` — сортировка по имени для фиксированного порядка треков +- `> savedtracks.m3u` — сохранение в файл плейлиста + +#### Применение изменений + +После создания или обновления M3U-файла запустите сканирование библиотеки: + +```bash +curl -k -s "https://music.zailon.ru/rest/startScan?u=zailon&p=13qeadZC&v=1.16.1&c=curl" +``` + +Или через веб-интерфейс: `Настройки → Библиотека → Пересканировать`. + +#### Проверка результата + +```bash +curl -k -s "https://music.zailon.ru/rest/getPlaylists?u=zailon&p=13qeadZC&v=1.16.1&c=curl" | grep -i savedtracks +``` + +Ожидаемый вывод: +```xml + +``` + +Плейлист появится в веб-интерфейсе и в подключённых клиентах (Symfonium, Substreamer) после синхронизации. + +#### Требования к путям в M3U + +✅ Правильно (относительные пути): +```text +001. Эдита Пьеха - Песня остаётся с человеком (1965).mp3 +002. Муслим Магомаев - Лучший город Земли (1965).mp3 +``` + +❌ Неправильно (абсолютные пути — Navidrome не сопоставит): +```text +/mnt/audio/music/Сборники/savedtracks/001. Эдита Пьеха....mp3 +``` + +Используйте `-printf '%P\n'` в `find`, чтобы гарантировать правильный формат. + +#### Переименование плейлиста + +Имя плейлиста в Navidrome соответствует имени файла `.m3u`. Чтобы изменить название: + +```bash +mv /mnt/audio/music/Сборники/savedtracks/savedtracks.m3u /mnt/audio/music/Сборники/savedtracks/Избранное.m3u +curl -k -s "https://music.zailon.ru/rest/startScan?u=zailon&p=13qeadZC&v=1.16.1&c=curl" +``` + +После сканирования плейлист будет называться «Избранное». + ## 📱 Подключение Android-клиента (Symfonium) 1. Установите Symfonium из Google Play / F-Droid 2. Настройки → Аккаунты → Добавить → Subsonic