«Ленивая» установка Navidrome для стриминга музыки на Windows и без VPS — for FREE

от автора

Демостенд Navidrome

Демостенд Navidrome

Предисловие

В данной статье рассматривается процесс установки Navidrome Music Server на Windows для стриминга музыки со своего ПК на одно или несколько своих устройств с минимальными заморочками. Я намерено использую установку без развертывания в контейнере или на выделенном сервере дабы уменьшить порог входа в «self‑hosted музыкальный стриминг», принимая тот факт, что у кого‑то может отсутствовать желание (или возможность) разбираться с Linux и контейнерами.

Вкратце, Navidrome Music Server — это музыкальный Open‑Source медиасервер, в котором весь аудио‑контент контролируется только Вами (или другими пользователями, которых вы добавите). Это особенно актуально в текущее время, когда отдельные треки, или даже альбомы могут быть изменены или удалены с глобальных музыкальных стримингов в любое время по запросу от лейблов или регуляторов, или даже в соответствии с поправками в законе.

Сервер Navidrome разворачивается локально на ПК с Windows, а для удаленного подключения к серверу мы используем связку устройств в защищенную частную сеть через Tailscale.

Подготовка библиотеки

Перед началом установки соберем и «причешем» нашу музыкальную библиотеку (она же у вас уже есть, да?). Сам сервер собирает все данные и организовывает библиотеку из метаданных файлов песен, требований к организации в файловой системе нет. Навести порядок в метаданных файлов желательно именно До развертывания сервера, но это не так критично, хотя лучше проверить правильность заполнения основных тегов:

  • Title: Название трека

  • Artist: Исполнитель

  • Album: Название альбома

  • Genre: Жанр

  • Year: Год выпуска

  • Track Number / Total Tracks: Номер трека и кол‑во треков в альбоме

  • Disc Number / Total Discs: Номер диска и кол‑во дисков в альбоме

Если нужно записать в тег несколько значений, записывайте их через разделитель — («; » или «\\» или “ && «), большинство проигрывателей разделит такую строку на несколько значений.»

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

Установка и настройка Navidrome Music Server

После (ре‑)организации своей библиотеки приступим к непосредственной установке музыкального сервера. Установщик под Windows берем с официального сайта navidrome.org или с их GitHub

Запускаем установщик, нас встречают следующие поля:

Конфигурация Navidrome Music Server перед установкой

Конфигурация Navidrome Music Server перед установкой
  • Installation Folder: папка где будут лежать исполнительные файлы и конфиги — можно не менять;

  • Port: номер порта, через который будем стучаться к серверу — не меняем, это порт по умолчанию; меняем только если ставим еще один сервер на одну машину;

  • Music Folder: путь к нашей библиотеке
    Важно! Лучше указать директорию, где расположены только альбомы и синглы, дабы избежать «задвоек» файлов. После установки можно будет добавить директории, но удалить добавленную библиотеку уже не получится.

  • Data Folder: папка с данными сервера, в т.ч. база данных индексированных треков — не менять.

После этого запускается процесс установки, по завершению сервер запустится автоматически (сервис Navidrome Music Server можно посмотреть в оснастке services.msc)

Теперь локально открываем Web‑интерфейс
http://localhost:4533

Окно создания суперпользователя в веб-интерфейсе после установки

Окно создания суперпользователя в веб‑интерфейсе после установки

При первом входе требуется создать суперпользователя, после чего будет запущена индексация библиотеки, данные о треках будут записаны в БД сервера в Data Folder.

Примечание: Использование суперпользователя в качестве обычного пользователя — для постоянного использования (прослушивания), не порицается так, как в Linux. Нет необходимости в создании отдельного пользователя для прослушивания, это может только добавить вам лишнее неудобство в будущем.

После завершения сканирования сразу можно приступить к прослушиванию (через Web‑интерфейс), но гораздо удобнее использовать какой‑либо сторонний плеер с поддержкой подключения к серверу Navidrome, а Web‑интерфейс использовать как некую «админ панель» для настройки библиотек и доступа для других пользователей.

Подключение плеера через Subsonic API (локально)

Subsonic API — это открытый протокол и «золотой стандарт» для управления музыкальным сервером. С помощью него клиентское приложение «общается» с сервером — получает альбомы, треки, сохраняет в Избранное и выполняет прочие взаимодействия. Тот факт, что Navidrome поддерживает работу через Subsonic API означает что мы можем выбрать любой музыкальный плеер, работающий через Subsonic API.

Список некоторых популярных плееров есть на сайте самого Navidrome, можете выбрать любой понравившийся, я в свою очередь покажу как подключить понравившийся лично мне Psysonic на Windows. Во всех плеерах процесс подключения к серверу примерно одинаковый, поэтому сложностей с подключением любого другого плеера возникнуть не должно.

После установки плеера открывается окно подключения к серверу:

Локальное подключение к музыкальному серверу Navidrome

Локальное подключение к музыкальному серверу Navidrome

Так как мы подключаемся локально, то указываем ссылку прямо на localhost.

Настройка удаленного доступа

Перейдем к выполнению нашей основной цели: прослушивание своей библиотеки удаленно со своих устройств. Для этого мы объединим свои устройства в единую частную сеть Tailscale, внутри которой будет доступ между устройствами вне локальной сети.

Примечание: если вы находитесь в России, в текущих реалиях вы можете столкнуться с несколькими проблемами:

  1. Официально Tailscale «ушёл» из России, но само подключение будет работать. Tailscale заблокировал доступ только к домену аутентификации (login.tailscale.com), при этом, при аутентифицированной учетке, подключение к своей частной сети работает.

  2. Сам Tailscale является технологичной обёрткой протокола Wireguard, что может приводить к нестабильной работе при сетевых ограничениях.

Первым делом установим Tailscale на ПК, где поставили музыкальный сервер, далее раскатываем на остальных устройствах (бесплатный аккаунт позволяет добавить до 6 устройств). Процесс достаточно тривиальный:

  1. Запускаем инсталлятор, принимая все лицензионные соглашения, либо просто скачиваем из магазина приложений.

  2. Запускаем Tailscale.

  3. Регистрируем новый аккаунт или входим через Google, Github итд.

  4. Подключаем новое устройство.

Управлять подключенными устройствами и получить их адреса внутри частной сети можно в консоли Tailscale (login.tailscale.com)

Веб-консоль управления устройствами Tailscale

Веб‑консоль управления устройствами Tailscale

После добавления нового устройства проверяем подключение к нашему музыкальному серверу. Для этого используем адрес нашего устройства, где установлен Navidrome. Для подключения лучше использовать не IP, а MagicDNS (вторая строка в списке) — это встроенная фича Tailscale, которая присваивает каждому устройству доменное имя, по которому визуально будет понятно, к какому устройству оно относится.

Итак, проверяем сначала подключение к «админке» через браузер: http://<magicDNS>:4533. Должно открыться окно авторизации, если это произошло — вы великолепны ✨ и теперь с этой ссылкой можно идти в любимый музыкальный плеер

Удаленное подключение к музыкальному серверу Navidrome через частную сеть

Удаленное подключение к музыкальному серверу Navidrome через частную сеть

P. S. Иногда, при непонятных обстоятельствах, могут возникать проблемы при подключении в частной сети, когда подключение визуально выполнено, но запросы до медиа‑сервера не доходят. Мне помогло установить режим Exit Node для устройства, где установлен сервер. Неочевидным и непонятным лично для меня образом это помогло и подключение работало стабильно. Сам процесс подключения может выполняться достаточно долго (до 1 минуты), набирайтесь терпения и наслаждайтесь своей любимой музыкой. Спасибо за внимание!

ссылка на оригинал статьи https://habr.com/ru/articles/1055276/