
Ввиду недавних изменений на стриминговых платформах, давно хотел иметь свою собственную музыкальную библиотеку, к которой можно получить доступ с любого устройства. У меня конечно уже стоит Jellyfin, но хотелось отдельного решения для музыки. Остановился на Navidrome.
Почему Navidrome? Link to heading
Navidrome — это лёгкий и быстрый сервер для стриминга музыки с поддержкой Subsonic API. Написан на Go, использует SQLite в качестве базы данных и потребляет минимум ресурсов.
Из плюсов:
- Лёгкость — написан на Go, потребляет мало RAM и CPU
- Subsonic API — совместим с большинством клиентов Subsonic
- Поддержка тегов — автоматически сканирует и индексирует метаданные
- Транскодинг — встроенная поддержка FFmpeg
- Веб-интерфейс и мобильные клиенты
- Мультипользовательский режим — можно создать аккаунты для семьи
Что нам понадобится Link to heading
- Сервер с DietPi
- Домен (опционально, для удобного доступа извне)
- Nginx в качестве reverse proxy
Установка Navidrome на DietPi Link to heading
Шаг 1: Установка через dietpi-software Link to heading
DietPi имеет встроенную поддержку Navidrome через dietpi-software. Запускаем:
dietpi-software
В меню выбираем Navidrome. Мастер автоматически:
- Установит все зависимости
- Настроит сервис для автозапуска
- Создаст необходимые директории
Шаг 2: Настройка после установки Link to heading
После установки Navidrome будет доступен по адресу:
http://<IP-сервера>:4533
Первый созданный пользователь автоматически получит права администратора.
Шаг 3: Добавление музыки Link to heading
По умолчанию Navidrome ищет музыку в директории /mnt/dietpi_userdata/navidrome/music, но в интерфейсе можно будет добавить и свою библиотеку или в конфиге /mnt/dietpi_userdata/navidrome/navidrome.toml поменяйте путь:
MusicFolder = "/mnt/external/music"
на свою папку , она станет вашей основной библиотекой.
После изменения конфига перезапустите сервис:
dietpi-services restart navidrome
Шаг 4: Проверка статуса Link to heading
Проверяем что сервис запущен:
dietpi-services status navidrome
В ответе должно быть active (running).
Настройка Nginx в качестве reverse proxy Link to heading
Если вы хотите использовать доменное имя и HTTPS, нужно настроить reverse proxy. На DietPi это можно сделать через встроенную утилиту.
Шаг 1: Устанавливаем Nginx Link to heading
dietpi-software
Выбираем Nginx для установки.
Шаг 2: Получаем SSL сертификат Link to heading
Для настройки HTTPS сначала нужно получить сертификат через встроенную утилиту dietpi-letsencrypt:
dietpi-letsencrypt
Следуем инструкциям мастера:
- Выбираем домен
navidrome.yourdomain.com - Указываем email для уведомлений
- Выбираем Nginx как веб-сервер
После успешного выполнения сертификаты будут размещены в /etc/letsencrypt/live/navidrome.yourdomain.com/.
Шаг 3: Создаём конфиг для Navidrome Link to heading
Создаём файл конфига:
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;
}
Пояснения Link to heading
- 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: Включаем сайт Link to heading
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 Link to heading
Navidrome совместим с любым клиентом, поддерживающим Subsonic API. Вот некоторые из них:
Веб Link to heading
Встроенный веб-интерфейс Navidrome уже имеет полный функционал и адаптивный дизайн. Открыть его можно по адресу:
- Локально:
http://<IP-сервера>:4533 - Через proxy:
https://navidrome.yourdomain.com

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



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