Утекло много воды с первого поста о SubSonic. Хоть он и служит верой и правдой по сей день, но увы лишен обновлений, активного сообщества и начинает пристраиваться рядом с Winamp
В поисках альтернативы я пошел по избытому пути, а именно линейке соников. Airsonic, Madsonic, Libresonic (сайта уже нет, искал в закромах). Всех их объединяет интерфейс нулевых годов, куча дополнительных опций которые выглядят странно в 2022 году и как конечно же движок на Java
Потом снова вернулся на Plex. Это огромный комбайн который едет, тарахтит и вечно требует доступ к моему же серверу через их сайт. С последним я смирился, но потом они что то сломали, и по прямому IP или доменному имени он перестал работать, остался только их p2p вариант (не уверен что правильно описал эту технологию). И пережёвывать 300 Гб музыки пару часов это слишком как по мне
Далее я нашел Koel. Выглядит чертовки круто, но в Докере никак не стартовал, а собрать с composer не получалось из-за ошибки сертификатов на Synology. В общем был вариант сломать всю систему, и я сдал назад. Подниму на Ubuntu этого зверя чтобы поиграться
Затем чисто случайно набрел на Navidrome, о нем и будет повесть
Официальный сайт: Navidrome
Установка через Docker
- Ставим Docker
- Создаем папку navidrome (можно любую другую) в директории docker

- Подключаемся к северу по ssh протоколу
- Переходим к созданной папке командой
cd /volume1/docker/navidrome, у вас путь может быть другой - Скачиваем файл конфигурации
- Закидаем его в директорию navidrome
- Вводим команду
docker-compose up -d. В командной строке должна появится надпись done - Теперь сервер доступен по следующему адресу: IP Synology: 4533
- Придумываем логин/пароль
- Если все прошло удачно, вы увидите свои музыкальные файлы
Описывать интерфейс не стал, есть демка где все можно пощупать самому https://www.navidrome.org/demo/
Файлы настройки будут хранится в директории navidrome, потому если нужно перенести конфигурацию просто скопируйте их
Обновление
- Перейти в директорию navidrome
cd /volume1/docker/navidrome - Посмотреть список запущенных контейнеров. Нужно столбец Name
docker ps -a - Остановить контейнер
docker stop navidrome_navidrome_1 - Удалить текущий контейнер
docker rmnavidrome_navidrome_1 - Скачать новый контейнер
docker pull deluan/navidrome - Запустить
docker-compose up -d
Установка на Orange Pi
Данній мануал подойдет и для обычных x64 Linux систем. Нужно лишь выбрать правильный пакет для своей архитектуры ОС
- Обновим репозитории
sudo apt update - Установим все последние обновления
sudo apt upgrade - Установка ffmpeg. В целом можно и без него, он лишь если хотите использовать конвертирование аудио(например flac в mp3)
sudo apt install vim ffmpeg - Создаем рабочие директории. Обратите внимание, что я использую пользователя
orangepi, он был предустановлен в системе по умолчанию. Если нужно используйте своегоsudo install -d -o orangepi -g users /opt/navidromesudo install -d -o orangepi -g users /var/lib/navidrome - Теперь определяемся с архитектурой ОС. Все доступные пакеты на гите https://github.com/navidrome/navidrome/releases
uname -m - Скачиваем, распаковываем архив
wget https://github.com/navidrome/navidrome/releases/download/v0.52.5/navidrome_0.52.5_linux_armv7.tar.gz -O Navidrome.tar.gzsudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/sudo chown -R orangepi:users /opt/navidrome - Конфигурируем файл
nano /var/lib/navidrome/navidrome.toml. В него вставить следующее содержимое:MusicFolder = "/home/orangepi/Music"ScanSchedule = '@every 2h'
Где/home/orangepi/Music— путь к директории с музыкой, выберите свой если он отличаетсяScanSchedule = '@every 2h'— каждые 2 часа сканировать директорию на наличие новой музыки - У меня музыка находится на другом сервере, потому нужно примонтировать сетевой диск
sudo mkdir -p /home/orangepi/Musicsudo chmod -R 0777 /home/orangepi/Musicsudo mount -t cifs -o username=admin,password='admin',uid=1000,sec=ntlmssp,iocharset=utf8 //192.168.88.44/Disk_2/Music /home/orangepi/Music— команда для монтирования с Synology DSM 7.2df -h | grep sda1— проверяем статус монтирования
Если нужно размонтироватьsudo umount //192.168.88.44/Disk_2/Music

- Создаем скрипт для автоматического монтирования при старте системы
!/bin/bashsleep 10
mount -t cifs -o username=admin,password='admin',uid=1000,sec=ntlmssp,iocharset=utf8 //192.168.88.44/Disk_2/Music /home/orangepi/Music
Скачать скрипт
Если вы подключили вместо сетевого диска обычный по USB к OrangePisudo mkdir -p /home/orangepi/Musicsudo chmod -R 0777 /home/orangepi/Musicsudo mount /dev/sda1 /home/orangepi/Musicdf -h | grep sda1sudo umount /dev/sda1— если нужно размонтировать - Редактируем службу Navidrome
nano /etc/systemd/system/navidrome.service. Вставить следующее содержимое:[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome
[Install]
WantedBy=multi-user.target
[Service]
User=orangepi
Group=users
Type=simple
StartLimitIntervalSec=0
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure
ProtectSystem=full - Запускаем службу
sudo systemctl daemon-reload
sudo systemctl start navidrome.service
sudo systemctl status navidrome.service
Если все окsudo systemctl enable navidrome.service
Дополнительные командыsudo systemctl restart navidrome.service— перезапускsudo systemctl stop navidrome.service— остановка - Удаление Navidrome
sudo systemctl stop navidromesudo systemctl disable navidromesudo rm -rf /opt/navidromesudo rm -rf /var/lib/navidromesudo rm -rf /etc/navidromesudo rm /etc/systemd/system/navidrome.service
Обновление на Orange Pi
sudo systemctl stop navidrome.service- Закинуть файл
navidromeв директорию/opt/navidrome sudo systemctl start navidrome.service