Обновить docs/services/lxc203-media/navidrome.md
This commit is contained in:
parent
1269bd0ace
commit
89485589ff
@ -1,6 +1,7 @@
|
|||||||
# Navidrome Music Server — LXC 203 (media)
|
# 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.
|
Лёгкий, быстрый и современный музыкальный сервер с полной поддержкой Subsonic API. Включает автоматическую нормализацию метаданных через `beets` + MusicBrainz, обход блокировок через Xray-туннель, исправление кодировки кириллицы и умные плейлисты через ListenBrainz.
|
||||||
Особенности:
|
Особенности:
|
||||||
@ -12,12 +13,15 @@
|
|||||||
✅ Клиенты: полная поддержка Subsonic-клиентов (Symfonium, Substreamer, Ultrasonic)
|
✅ Клиенты: полная поддержка Subsonic-клиентов (Symfonium, Substreamer, Ultrasonic)
|
||||||
|
|
||||||
## 🗂️ Структура файлов
|
## 🗂️ Структура файлов
|
||||||
|
|
||||||
|
```text
|
||||||
/mnt/service/navidrome/
|
/mnt/service/navidrome/
|
||||||
── docker-compose.yml # Конфиг запуска сервера
|
├── docker-compose.yml # Конфиг запуска сервера
|
||||||
├── data/ # База данных, настройки, кэш Navidrome
|
├── data/ # База данных, настройки, кэш Navidrome
|
||||||
├── plugins/ # Директория для плагинов (.ndp)
|
├── plugins/ # Директория для плагинов (.ndp)
|
||||||
└── navidrome.tar # Архив для миграции между контейнерами
|
└── navidrome.tar # Архив для миграции между контейнерами
|
||||||
/mnt/audio/ # Точка монтирования музыкальной библиотеки
|
/mnt/audio/ # Точка монтирования музыкальной библиотеки
|
||||||
|
```
|
||||||
|
|
||||||
## ⚙️ Установка и настройка
|
## ⚙️ Установка и настройка
|
||||||
### Шаг 1: Подготовка директорий и прав
|
### Шаг 1: Подготовка директорий и прав
|
||||||
@ -148,6 +152,73 @@ sudo chown 1000:1000 listenbrainz-daily-playlist.ndp
|
|||||||
Настройки → Интеграции → ListenBrainz → Включить → Вставить токен → Сохранить.
|
Настройки → Интеграции → ListenBrainz → Включить → Вставить токен → Сохранить.
|
||||||
Плейлист «Моя волна» появится в разделе «Плейлисты» после 5-10 прослушанных треков и автоматической генерации (раз в 24ч).
|
Плейлист «Моя волна» появится в разделе «Плейлисты» после 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)
|
## 📱 Подключение Android-клиента (Symfonium)
|
||||||
1. Установите Symfonium из Google Play / F-Droid
|
1. Установите Symfonium из Google Play / F-Droid
|
||||||
2. Настройки → Аккаунты → Добавить → Subsonic
|
2. Настройки → Аккаунты → Добавить → Subsonic
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user