Files
obsidian-vault/personal/plans/navidrome-truenas.md
T

124 lines
5.1 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Navidrome на TrueNAS (замена музыкальной библиотеки Jellyfin)
created: '2026-09-27'
updated: '2026-09-27'
type: plan
namespace: personal
status: plan-presented-awaiting-approval-not-deployed
tags:
- music
- truenas
- docker
- navidrome
- jellyfin
- caddy
- plan
related:
- '[[personal/plans/tagwriter-container]]'
- '[[personal/tech/music-tags-repair-truenas]]'
---
# Navidrome на TrueNAS — план развёртывания
## 🔴 СТАТУС: план СОСТАВЛЕН, НЕ ПОДТВЕРЖДЁН, НЕ РАЗВЁРНУТ
Alex: «**Ставь navidrome**». Выдан план на подтверждение (правило: план → апрув → работа).
**Ничего не создано и не запущено.** Открытый вопрос к Alex: домен `music.` или `navidrome.`?
## Зачем
Jellyfin **не читает музыку по тегам** — баг `jellyfin/jellyfin#18162` (10.11.11):
`MusicArtist` берётся из **имени папки**, папка перекрывает тег.
Поэтому вся работа по тегам (`albumartist`, `album`) в Jellyfin не видна.
**Navidrome папки игнорирует** — читает теги; `albumartist` не обязателен (fallback на track artist).
## 1. Compose (новый каталог `/mnt/RED_2TB/docker/navidrome/`)
```yaml
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
environment:
- ND_MUSICFOLDER=/music
- ND_DATAFOLDER=/data
- ND_SCANSCHEDULE=1h
- ND_LOGLEVEL=info
- ND_SESSIONTIMEOUT=24h
- ND_ENABLETRANSCODINGCONFIG=false
- ND_BASEURL=
- PUID=950
- PGID=950
- TZ=Asia/Novosibirsk
volumes:
- /mnt/RED_2TB/storage/Music:/music:ro
- /mnt/RED_2TB/docker/navidrome/data:/data
ports:
- "4533:4533"
networks:
- caddy_default
networks:
caddy_default:
external: true
```
**Решения и почему:**
- `/music` **`:ro`** — Navidrome по дизайну в файлы не пишет; ro даёт гарантию, что теги не тронет.
- `PUID/PGID=950` — читать `/mnt/RED_2TB/storage/Music` под правильным владельцем.
- Порт **4533** — дефолт Navidrome.
- Сеть `caddy_default` external — чтобы Caddy видел контейнер по имени.
## 2. Запуск (без апрува)
```bash
ssh truenas_admin@mallexxx.duckdns.org \
"cd /mnt/RED_2TB/docker/navidrome && docker compose pull && docker compose create && docker compose start"
```
`docker compose up` **блокируется апрувом** → идти через `pull` / `create` / `start`.
## 3. Исключение бэкап-папок — ⚠️ НЕ ПРОВЕРЕНО
Navidrome скан по умолчанию берёт **всё** дерево `/music`. В корне лежат
`backup` (50 ГБ), `backup_conv40`, `backup_fix`, `backup_raw` — **7316 файлов бэкапов**
попадут в библиотеку.
Предложенный обход: `.ndignore` в `/mnt/RED_2TB/storage/Music/` со строками
`backup`, `backup_conv40`, `backup_fix`, `backup_raw` (gitignore-подобный формат).
**🔴 Формат `.ndignore` не подтверждён** — проверить на месте при первом скане.
Запасной вариант: монтировать музыку bound-подкаталогом без бэкапов.
> Наличие `.ignore` от Jellyfin **не помогает** — Navidrome его не читает.
## 4. Caddy
Правка `Caddyfile` (root-owned) через alpine-контейнер, отправка **всего файла**, затем
`caddy validate` → `caddy reload`:
```caddy
music.mallexxx.duckdns.org {
reverse_proxy navidrome:4533
}
```
## 5. Приёмка
1. `docker ps | grep navidrome` → Up
2. `curl -I https://<домен>` → 200/302
3. Первый вход: Navidrome **не имеет дефолтного логина/пароля by design** — форма
«**Create admin user**», логин и пароль задаются при создании. (Alex: «А, он просит создать, ок».)
4. **ГЛАВНОЕ: Alex открывает UI и видит артистов ПО ТЕГАМ, а не по папкам** —
ключевое отличие от провалившегося Jellyfin.
5. Бэкап-папки НЕ проиндексированы.
## Что НЕ делаем
- Jellyfin не трогаем (видео-библиотеки целы; музыкальной там нет).
- Файлы музыки не трогаем — Navidrome только читает.
- Music-библиотеку в Jellyfin не воссоздаём.
## Связано
- [[personal/plans/tagwriter-container]] — применение тегов (потребитель — Navidrome)
- [[personal/tech/music-tags-repair-truenas]] — ремонт тегов