pimenov.ai

База знаний

Navidrome на Synology: домашняя музыкальная медиатека с Amperfy

Пошаговая установка Navidrome на Synology через Container Manager: подключение Amperfy, удалённый доступ, проверка медиатеки и резервное копирование.

Опубликовано Обновлено

Эта связка лежит в основе моей домашней медиасистемы: Synology хранит музыкальный архив, Navidrome превращает его в личный стриминговый сервис, а Amperfy используется для прослушивания на iPhone.

Музыка остаётся в обычных файлах на NAS. Navidrome индексирует коллекцию и предоставляет веб-интерфейс и программный интерфейс Subsonic (API). Сервер можно обновить или перенести, не затрагивая оригиналы.

📌
Дата проверки: 8 сентября 2026 года. В примере используются Navidrome 0.63.2 и Amperfy 2.1.1. Перед установкой проверьте новые стабильные релизы и совместимость Container Manager с конкретной моделью Synology.

Как устроена связка Synology, Navidrome и Amperfy

flowchart LR
    F["Музыкальные файлы"] --> N["Synology NAS"]
    N --> V["Navidrome"]
    V --> W["Веб-интерфейс"]
    V --> A["Amperfy на iPhone"]
    A --> O["Офлайн-загрузка и CarPlay"]
    N --> B["Резервная копия"]

У компонентов разные задачи:

  • Synology хранит аудиофайлы и резервные копии.
  • Navidrome сканирует теги, создаёт каталог, управляет пользователями, плейлистами и воспроизведением.
  • Amperfy подключается через Subsonic API и отвечает за мобильное прослушивание.
  • Tailscale или другая частная сеть обеспечивает доступ вне дома без прямой публикации порта Navidrome.

Navidrome совместим с Subsonic API v1.16.1 с отдельными исключениями и постепенно получает расширения OpenSubsonic. Полноценного просмотра исходных папок у него нет: соответствующие API-запросы возвращают смоделированное дерево вида /Artist/Album/01 - Song.mp3.

При монтировании музыкальной папки с :ro Navidrome не сможет изменить оригинальные файлы. Новые альбомы добавляются через File Station, SMB или другой файловый инструмент, после чего сервер обновляет индекс.

Что потребуется

Перед установкой проверьте:

На Synology установлен DSM и создан исправный том.
В Package Center доступен Container Manager.
Музыка находится в отдельной общей папке, например /volume1/music.
Создан каталог /volume1/docker/navidrome/data.
Сервисный пользователь может читать музыку и записывать данные Navidrome.
У музыкальных файлов заполнены основные теги.
Музыкальный архив входит в резервное копирование.
Для внешнего доступа выбран Tailscale, VPN или защищённый обратный прокси.

Если Container Manager отсутствует в Package Center, проверьте совместимость модели и архитектуры NAS на сайте Synology. Для несовместимой модели понадобится другой хост.

Базовая подготовка DSM описана в руководстве Synology NAS с нуля: полная базовая настройка DSM для дома.

⚠️
Navidrome строит каталог по тегам. Если не заполнены Album, Album Artist, номера треков и дисков, сначала исправьте метаданные.

Подготовка папок и сервисного пользователя

Создайте структуру:

/volume1/music
/volume1/docker/navidrome/data

В первой папке находятся FLAC, ALAC, MP3 и другие исходные файлы. Во второй Navidrome хранит базу и кэш. Файл Docker Compose находится в /volume1/docker/navidrome.

Создайте в DSM отдельного пользователя, например navidrome. Дайте ему:

  • чтение музыкальной папки;
  • чтение и запись в /volume1/docker/navidrome/data;
  • никаких административных прав.

Для Compose понадобятся числовые идентификаторы пользователя и группы (UID и GID). Их можно посмотреть через SSH:

id navidrome

Пример результата:

uid=YOUR_UID(navidrome) gid=YOUR_GID(users)

Подставьте числа в Compose-файл. Каталог data должен быть доступен этому UID и GID на запись, а музыкальная папка — на чтение. Официальный образ Navidrome не использует переменные PUID и PGID: пользователя нужно задавать директивой user. После проверки SSH можно снова отключить.

Установка Navidrome через Container Manager

Откройте Container Manager → Проект → Создать и укажите:

  • имя проекта: navidrome;
  • путь: /volume1/docker/navidrome;
  • источник Compose: файл, созданный вручную.

Используйте конфигурацию:

services:
  navidrome:
    image: deluan/navidrome:0.63.2
    container_name: navidrome
    user: "YOUR_UID:YOUR_GID"
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_LOGLEVEL: info
      ND_SCANNER_SCHEDULE: 1h
      ND_SESSIONTIMEOUT: 24h
      ND_ENABLEINSIGHTSCOLLECTOR: "false"
      # В Navidrome 0.63 общий доступ включён по умолчанию; здесь он отключён.
      ND_ENABLESHARING: "false"
      # Ежедневная копия базы в /data/backups.
      ND_BACKUP_PATH: /data/backups
      ND_BACKUP_SCHEDULE: "0 3 * * *"
      ND_BACKUP_COUNT: "7"
    volumes:
      - /volume1/docker/navidrome/data:/data
      - /volume1/music:/music:ro

Замените YOUR_UID:YOUR_GID значениями сервисного пользователя. При другом расположении музыки измените левую часть второго volume.

Подключение :ro оставляет музыкальную папку доступной контейнеру только для чтения. Пользователь из директивы user должен иметь запись в /data и чтение /music, иначе контейнер не создаст базу или покажет пустую библиотеку.

Запустите проект и откройте:

http://IP-АДРЕС-SYNOLOGY:4533

При первом входе создайте административную учётную запись.

💡
Фиксируйте стабильный тег образа. Значение latest усложняет контроль обновлений и откат.

Первое сканирование и проверка тегов

Для первого запуска достаточно одного тестового альбома. Дождитесь завершения сканирования и проверьте исполнителя, название, число треков и обложку. Большая коллекция может заметно нагружать диски и обрабатываться несколько часов.

Затем проверьте обычный альбом, сборник Various Artists, многодисковое издание и один файл каждого регулярно используемого формата.

Минимальный полезный набор тегов:

ТегНазначение
TitleНазвание трека
ArtistИсполнитель трека
AlbumНазвание альбома
Album ArtistОсновной исполнитель альбома
Track NumberПозиция трека
Disc NumberНомер диска
YearГод издания
CompilationПризнак сборника

Если альбом распался на несколько карточек, сначала сравните Album Artist у всех треков. Для сборников проверьте признак compilation. Исправлять файлы можно через MusicBrainz Picard, Mp3tag, beets или другой редактор тегов.

Подключение Amperfy

Amperfy — клиент для iPhone, iPad и Mac. Он подключается к Navidrome через Subsonic API; отдельный плагин сервера для этого подключения не нужен.

В опубликованных релизах проекта заявлены офлайн-загрузка и серверное транскодирование, CarPlay, бесшовное воспроизведение (gapless playback) для подходящих форматов, ReplayGain, эквалайзер, Siri и Shortcuts, оценки, избранное и scrobbling. Эти возможности относятся к разным версиям; фактическая совместимость зависит от кодека, платформы и настроек сервера, поэтому проверяйте нужный сценарий на своей связке.

Ветка 2.x требует iOS, iPadOS или macOS 26.

Для подключения:

  1. Установите Amperfy из App Store.
  2. Добавьте Subsonic-аккаунт.
  3. Укажите базовый URL Navidrome, например http://IP-АДРЕС-SYNOLOGY:4533, без /rest.
  4. Введите логин и пароль пользователя Navidrome.
  5. Запустите синхронизацию библиотеки.
  6. Проверьте воспроизведение альбома.
  7. Загрузите альбом, включите авиарежим и проверьте офлайн-доступ.
  8. Если используете автомобиль, отдельно проверьте очередь и навигацию в CarPlay.

Протестируйте реальные форматы архива, например FLAC, ALAC и Opus. Работа одного MP3 не подтверждает совместимость всей медиатеки.

Для каждого человека лучше создать отдельного пользователя Navidrome, чтобы не смешивать историю, избранное и плейлисты.

Полезные сценарии

Прослушивание дома

Телефон и NAS находятся в одной локальной сети. Amperfy подключается по локальному адресу, синхронизирует каталог и воспроизводит тестовый альбом. Результат подтверждается совпадением альбома в веб-интерфейсе и приложении.

Прослушивание вне дома

Установите Tailscale на Synology и iPhone, авторизуйте устройства в одной частной сети и укажите в Amperfy адрес NAS внутри неё:

http://100.x.y.z:4533

Можно использовать имя MagicDNS, если оно включено. Выключите Wi-Fi на телефоне и проверьте воспроизведение через мобильную сеть.

🔴
Не публикуйте порты Navidrome и DSM напрямую в интернете. Используйте частную сеть либо отдельно проверенную схему обратного прокси с HTTPS и аутентификацией.

Прослушивание без сети

Скачайте альбом в Amperfy, включите авиарежим и запустите несколько треков. Этот тест нужно повторить после изменения настроек кэша или транскодирования.

Резервное копирование и восстановление

Защищайте три части системы отдельно:

  • /volume1/music — исходный музыкальный архив;
  • /volume1/docker/navidrome/data — база, пользователи, плейлисты, история и кэш;
  • Compose-файл в /volume1/docker/navidrome — конфигурация проекта.

Встроенный механизм Navidrome при этой конфигурации создаёт ежедневные копии базы в /data/backups и хранит семь файлов. Он не копирует музыку и Compose-файл.

В Hyper Backup включите общие папки, содержащие:

/volume1/music
/volume1/docker/navidrome

Проверьте появление встроенной копии:

ls -lah /volume1/docker/navidrome/data/backups

Ручную копию можно создать из каталога проекта:

cd /volume1/docker/navidrome
sudo docker-compose run --rm navidrome backup create
⚠️
Резервная копия считается рабочей после проверки восстановления. Сначала сохраните отдельную копию каталога проекта. Затем остановите Navidrome и выполните sudo docker-compose run --rm navidrome backup restore /data/backups/ИМЯ_ФАЙЛА, заменив ИМЯ_ФАЙЛА на выбранную копию. Запустите проект и проверьте пользователей, плейлисты и избранное.

RAID и SHR помогают при отказе накопителя, но не заменяют резервную копию. Практическая схема 3-2-1 разобрана в материале Домашнее облако на Synology: Immich и резервная копия 3-2-1.

Обновление и откат Navidrome

Перед обновлением:

  1. Проверьте свежую копию базы.
  2. Сохраните весь каталог /volume1/docker/navidrome отдельно.
  3. Запишите текущий тег образа.
  4. Откройте список релизов Navidrome.
  5. Прочитайте изменения между установленной и новой версиями.
  6. Замените тег в Compose-файле и пересоберите проект.
  7. Проверьте журнал, веб-интерфейс, Amperfy, пользователей и плейлисты.

Не удаляйте /data при пересборке. Если новая версия не запускается, верните прежний тег. Если обновление несовместимо изменило базу, остановите сервис и восстановите проверенную копию.

Типичные проблемы

СимптомВозможная причинаЧто проверить
Библиотека пустаяОшибка пути или правVolume /music, UID/GID, чтение папки
Контейнер не запускаетсяНет записи в /dataВладелец и права каталога данных
Альбом разделёнРазличается Album ArtistТеги всех треков
Не видны исходные папкиОграничение NavidromeИспользуйте теговый каталог или сервер с просмотром по папкам
Amperfy не подключаетсяНеверный URL или сетьАдрес без /rest, порт 4533, доступность NAS
С мобильной сети не работаетНет частного маршрутаTailscale на NAS и телефоне, правила доступа
Некоторые форматы не играютОграничение клиента или транскодированияФормат файла и профиль транскодирования
После пересборки пропали настройкиНе подключён постоянный /dataVolume данных в Compose
Новая музыка не появиласьСканирование не завершеноЖурнал и ND_SCANNER_SCHEDULE

Журнал доступен в Container Manager или через команду:

sudo docker logs --tail 200 navidrome

Проверка готовой системы

Веб-интерфейс открывается по локальному адресу.
Созданы администратор и обычный пользователь.
Музыкальная папка подключена с :ro.
Альбомы правильно собраны по тегам.
Amperfy синхронизировал библиотеку.
Проверены основные аудиоформаты.
Один альбом работает в офлайн-режиме.
Удалённый доступ проверен через мобильную сеть.
Порт 4533 не проброшен с роутера в интернет.
Музыка и каталог проекта входят в Hyper Backup.
В /data/backups появляется свежий файл.
Восстановление базы проверено при остановленном сервисе.
После перезапуска сохраняются пользователи и плейлисты.
Зафиксирован сценарий отката на предыдущий тег.

Система готова, если тестовый альбом находится в веб-интерфейсе и Amperfy, воспроизводится дома и через частную сеть, доступен офлайн, а данные сохраняются после перезапуска.

Официальные источники

Следующий шаг

Своя музыка вместо стримингов: Plex и пять альтернатив для Synology

Связанные материалы

Домашнюю медиасистему полезно проверять целиком: от хранения исходных файлов до удалённого доступа и восстановления после сбоя.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov