Обновить docs/services/lxc203-media/navidrome.md

This commit is contained in:
zailon 2026-05-14 09:36:23 +05:00
parent 1269bd0ace
commit 89485589ff

View File

@ -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
<playlist name="savedtracks" songCount="692" .../>
```
Плейлист появится в веб-интерфейсе и в подключённых клиентах (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