5.1 KiB
Executable File
title, created, updated, type, namespace, status, tags, related
| title | created | updated | type | namespace | status | tags | related | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Navidrome на TrueNAS (замена музыкальной библиотеки Jellyfin) | 2026-09-27 | 2026-09-27 | plan | personal | plan-presented-awaiting-approval-not-deployed |
|
|
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/)
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_defaultexternal — чтобы Caddy видел контейнер по имени.
2. Запуск (без апрува)
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:
music.mallexxx.duckdns.org {
reverse_proxy navidrome:4533
}
5. Приёмка
docker ps | grep navidrome→ Upcurl -I https://<домен>→ 200/302- Первый вход: Navidrome не имеет дефолтного логина/пароля by design — форма «Create admin user», логин и пароль задаются при создании. (Alex: «А, он просит создать, ок».)
- ГЛАВНОЕ: Alex открывает UI и видит артистов ПО ТЕГАМ, а не по папкам — ключевое отличие от провалившегося Jellyfin.
- Бэкап-папки НЕ проиндексированы.
Что НЕ делаем
- Jellyfin не трогаем (видео-библиотеки целы; музыкальной там нет).
- Файлы музыки не трогаем — Navidrome только читает.
- Music-библиотеку в Jellyfin не воссоздаём.
Связано
- personal/plans/tagwriter-container — применение тегов (потребитель — Navidrome)
- personal/tech/music-tags-repair-truenas — ремонт тегов