
Ввиду недавних изменений на стриминговых платформах, давно хотел иметь свою собственную музыкальную библиотеку, к которой можно получить доступ с любого устройства. У меня конечно уже стоит Jellyfin, но хотелось отдельного решения для музыки. Остановился на Navidrome.
Почему Navidrome?#
Navidrome — это лёгкий и быстрый сервер для стриминга музыки с поддержкой Subsonic API. Написан на Go, использует SQLite в качестве базы данных и потребляет минимум ресурсов.
Из плюсов:
- Лёгкость — написан на Go, потребляет мало RAM и CPU
- Subsonic API — совместим с большинством клиентов Subsonic
- Поддержка тегов — автоматически сканирует и индексирует метаданные
- Транскодинг — встроенная поддержка FFmpeg
- Веб-интерфейс и мобильные клиенты
- Мультипользовательский режим — можно создать аккаунты для семьи
Что нам понадобится#
- Сервер с DietPi
- Домен (опционально, для удобного доступа извне)
- Nginx в качестве reverse proxy
Установка Navidrome на DietPi#
Шаг 1: Установка через dietpi-software#
DietPi имеет встроенную поддержку Navidrome через dietpi-software. Запускаем:
dietpi-softwareВ меню выбираем Navidrome. Мастер автоматически:
- Установит все зависимости
- Настроит сервис для автозапуска
- Создаст необходимые директории
Шаг 2: Настройка после установки#
После установки Navidrome будет доступен по адресу:
http://<IP-сервера>:4533Первый созданный пользователь автоматически получит права администратора.
Шаг 3: Добавление музыки#
По умолчанию Navidrome ищет музыку в директории /mnt/dietpi_userdata/navidrome/music, но в интерфейсе можно будет добавить и свою библиотеку или в конфиге /mnt/dietpi_userdata/navidrome/navidrome.toml поменяйте путь:
MusicFolder = "/mnt/external/music"на свою папку , она станет вашей основной библиотекой.
После изменения конфига перезапустите сервис:
dietpi-services restart navidromeШаг 4: Проверка статуса#
Проверяем что сервис запущен:
dietpi-services status navidromeВ ответе должно быть active (running).
Настройка Nginx в качестве reverse proxy#
Если вы хотите использовать доменное имя и HTTPS, нужно настроить reverse proxy. На DietPi это можно сделать через встроенную утилиту.
Шаг 1: Устанавливаем Nginx#
dietpi-softwareВыбираем Nginx для установки.
Шаг 2: Получаем SSL сертификат#
Для настройки HTTPS сначала нужно получить сертификат через встроенную утилиту dietpi-letsencrypt:
dietpi-letsencryptСледуем инструкциям мастера:
- Выбираем домен
navidrome.yourdomain.com - Указываем email для уведомлений
- Выбираем Nginx как веб-сервер
После успешного выполнения сертификаты будут размещены в /etc/letsencrypt/live/navidrome.yourdomain.com/.
Шаг 3: Создаём конфиг для Navidrome#
Создаём файл конфига:
sudo nano /etc/nginx/sites-available/musicstreamС таким содержимым:
server {
listen 80;
listen [::]:80;
server_name navidrome.yourdomain.com;
location / {
proxy_pass http://localhost:4533;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 90;
}
include /etc/nginx/sites-dietpi/*.conf;
listen [::]:443 ssl;
http2 on;
listen 443 quic;
listen [::]:443 quic;
quic_retry on;
quic_gso on;
add_header Alt-Svc 'h3=":443"; ma=86400' always;
ssl_certificate /etc/letsencrypt/live/navidrome.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/navidrome.yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}Пояснения#
- proxy_pass — перенаправляем запросы на Navidrome (порт 4533)
- proxy_set_header — передаём оригинальные заголовки клиента
- proxy_read_timeout — увеличиваем таймаут для стриминга
- include /etc/nginx/sites-dietpi/*.conf — подключаем дополнительные конфиги DietPi
- http2 on / quic — включаем HTTP/2 и HTTP/3 (QUIC) для лучшей производительности
- Alt-Svc — заголовок для поддержки HTTP/3
- ssl_certificate — пути к сертификатам Let’s Encrypt
Шаг 4: Включаем сайт#
sudo ln -s /etc/nginx/sites-available/musicstream /etc/nginx/sites-enabled/musicstream
sudo nginx -t
dietpi-services restart nginxПосле перезагрузки Nginx ваш сервер будет доступен по HTTPS с поддержкой HTTP/2 и HTTP/3 (QUIC).
Также не забудьте открыть порт 443 в вашем фаерволле или роутере.
Клиенты для Navidrome#
Navidrome совместим с любым клиентом, поддерживающим Subsonic API. Вот некоторые из них:
Веб#
Встроенный веб-интерфейс Navidrome уже имеет полный функционал и адаптивный дизайн. Открыть его можно по адресу:
- Локально:
http://<IP-сервера>:4533 - Через proxy:
https://navidrome.yourdomain.com

Мобильные#
На телефоне я использую клиент Yuzic



Бекапы#
Для резервного копирования достаточно сохранить директорию /mnt/dietpi_userdata/navidrome — там находится SQLite база и конфиги
Заключение#
Navidrome — отличное решение для тех, кто хочет иметь свою музыкальную библиотеку с современным интерфейсом и минимальными затратами ресурсов. На DietPi разворачивается за 10 минут, а настройка Nginx proxy позволяет получить безопасный доступ по HTTPS с любого устройства.


