[Практический проект с открытым исходным кодом] Используйте сервер для развертывания музыкального сервера Navidrome, еще одной программы музыкального сервера с открытым исходным кодом!
[Практический проект с открытым исходным кодом] Используйте сервер для развертывания музыкального сервера Navidrome, еще одной программы музыкального сервера с открытым исходным кодом!

1. Предисловие

Сяоцзюнь уже знакомил тебя с этим Koel Служба потокового аудио призвана решить эту проблему для всех: загруженную музыку можно слушать только локально, и ее сложно использовать на нескольких устройствах. Было бы слишком неудобно, если бы вы сами создали музыкальный сервер, а затем загрузили свою любимую музыку! Сяоцзюнь недавно обнаружил программу—— Navidrome , Сяоцзюнь здесь, чтобы порекомендовать его всем! Он также содержит руководство по развертыванию! Сползите вниз и посмотрите поближе!

1.1 Официальный сайт

Официальный сайт: https://www.navidrome.org/ Официальный Гитхаб: https://github.com/navidrome/navidrome

2. Знакомство с Навидромом

2.1 Введение

🎧☁️ Navidrome — это веб-сервер и стример для сбора музыки с открытым исходным кодом. Он дает вам свободу слушать вашу музыкальную коллекцию с любого браузера или мобильного устройства. Это похоже на ваш личный Spotify! вы можете просматривать и прослушивать свою музыкальную коллекцию с помощью веб-браузера. Он также может работать как легкий сервер, совместимый с Subsonic-API, который можно использовать с любым клиентом, совместимым с Subsonic. 🎧☁️ Navidrome — это веб-сервер для сбора музыки и потокового мультимедиа с открытым исходным кодом. Это дает вам свободу слушать вашу музыкальную коллекцию из любого браузера или мобильного устройства. Это как ваш личный Spotify! Navidrome можно использовать как автономный сервер, позволяя просматривать и прослушивать свою музыкальную коллекцию с помощью веб-браузера. Он также функционирует как легкий сервер, совместимый с Subsonic API, который можно использовать с любым клиентом, совместимым с Subsonic.

2.2 Особенности

  • Handles very large music collections
  • Streams virtually any audio format available
  • Reads and uses all your beautifully curated metadata
  • Great support for compilations (Various Artists albums) and box sets (multi-disc albums)
  • Multi-user, each user has their own play counts, playlists, favourites, etc...
  • Very low resource usage
  • Multi-platform, runs on macOS, Linux and Windows. Docker images are also provided
  • Ready to use binaries for all major platforms, including Raspberry Pi
  • Automatically monitors your library for changes, importing new files and reloading new metadata
  • Themeable, modern and responsive Web interface based on Material UI
  • Compatible with all Subsonic/Madsonic/Airsonic clients
  • Transcoding on the fly. Can be set per user/player. Opus encoding is supported
  • Translated to various languages

Note: The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order to get a stable set of binaries.

Уведомление: Во время разработки главная ветка может находиться в нестабильном или даже поврежденном состоянии. Пожалуйста, используйте официальную версию вместо основной ветки, чтобы получить стабильный набор двоичных файлов.

3. Подготовка

  1. [Обязательно] Один сервер (рекомендуется) Легкий сервер приложений Tencent Cloud HK или на территории других серверов (например, CloudConeRackNerd , Jiajiayun и частные облака различных предприятий также могут быть использованы.
  2. [Рекомендация] Операционная система: Debian 11 ,Легкий сервер приложений Tencent Облачная рекомендация Ubuntu20.04-Docker20
  3. [Рекомендуется и обязательно] Доменное имя и разрешить его на сервере.
  4. [Необязательно, рекомендуется использовать обратный прокси-сервер. В этом руководстве используется NPM] УстановитьGood Nginx. Proxy Manager( Связанные руководства

Уведомление

Это новое руководство по установке. Если на вашем сервере уже есть среда или данные, будьте осторожны при переустановке системы! ! ! Вы можете перейти непосредственно к 6.2 Подготовка среды (другие серверы) Читайте дальше. Это новое руководство по установке. Если на вашем сервере уже есть среда или данные, будьте осторожны при переустановке системы! ! ! Вы можете перейти непосредственно к 6.2 Подготовка среды (другие серверы) Читайте дальше. Это новое руководство по установке. Если на вашем сервере уже есть среда или данные, будьте осторожны при переустановке системы! ! ! Вы можете перейти непосредственно к 6.2 Подготовка среды (другие серверы) Читайте дальше.

Программное обеспечение в этой статье основано на установке облегченного сервера приложений Tencent Cloud. Рекомендуемая конфигурация описана выше. В этом руководстве используется облегченная система сервера приложений Tencent Cloud. Ubuntu Server 20.04 LTS 64bit ! Теоретически легкий сервер приложений Tencent Cloud Ubuntu20.04-Docker20 Работа сервера должна в основном соответствовать этой статье (включая отчеты о процессах и ошибках), а другие системы должны быть Debian или Ubuntu Сервер должен быть похож на эту статью! Адрес покупки облегченного сервера приложений Tencent Cloud: https://curl.qcloud.com/XqKjWCYA Выбор облака Tencent: https://curl.qcloud.com/ujD237Hl Область специальных предложений продуктов Tencent Cloud: https://curl.qcloud.com/TPJfrddE

4. Видеоурок

5. Демонстрация интерфейса

5.1 Страница инициализации

5.2 Страница альбома

5.3 Страница содержимого альбома

5.4 Страница пользователя

5.5 Персонализированная страница

5.6 Страница списка песен

5.7 Страница обмена

6. Развертывание Навидрома

6.1 Подготовка среды (облегченный сервер приложений Tencent Cloud)

Этот шаг специально подготовлен для пользователей, использующих облегченный сервер приложений Tencent Cloud. Если вы не используете облегченный сервер приложений Tencent Cloud для развертывания программы, вы можете перейти непосредственно к. 6.2 Подготовка среды (другие серверы) Читайте дальше.

6.1.1 Переустановите систему

Перед этой операцией убедитесь, что на сервере нет важных программ и файлов! ! ! Пожалуйста, убедитесь, что данные на сервере зарезервированы! ! ! Перед этой операцией убедитесь, что на сервере нет важных программ и файлов! ! ! Пожалуйста, убедитесь, что данные на сервере зарезервированы! ! ! Перед этой операцией убедитесь, что на сервере нет важных программ и файлов! ! ! Пожалуйста, убедитесь, что данные на сервере зарезервированы! ! !

Войдите в консоль облегченного сервера приложений Tencent Cloud и введите Переустановите систему интерфейс и выберите Используйте образы контейнеров , выберите из списка Ubuntu20.04-Docker20 , Пожалуйста, убедитесь, что на сервере нет важных программ и файлов! ! ! Пожалуйста, убедитесь, что данные на сервере зарезервированы! ! ! Затем нажмите, чтобы проверить Подтвердите, что вы понимаете вышеизложенное, и я уверен, что резервное копирование завершено. , а затем нажмите «ОК», чтобы завершить переустановку системы.

Мы напрямую выбираем легкий сервер приложений Tencent Cloud. Docker Образ контейнера, установку можно пропустить Dockerdocker-composeшаги(Если вы используете домашний сервер,Облако Tencent Docker В образе контейнера настроены внутренние источники изображений, что может ускорить доступ. Docker зеркальные ресурсы). Из-за Tencent Cloud Docker в образе контейнера Docker Уже установлено docker-compose . Итак, если вы видите ниже docker compose команда, пожалуйста, используйте docker-compose Заказ!

6.1.2 Вход на сервер

OrcaTerm (оригинальное название WebShell ) — родная операционная система Tencent Aerochi Cloud. CVMLighthouse , «голое железо» и другие продукты, он помогает пользователям удаленно входить на сервер через браузер для управления бизнесом в любое время и в любом месте. По сравнению с локальными удаленными терминалами он более легкий, удобный и не требует мастерства. SSH и FTP Он также прост в эксплуатации. Войдите в консоль сервера приложений Tencent Cloud Light и нажмите в правом верхнем углу. Авторизоваться , используя публичную бета-версию Tencent Cloud OrcaTerm Авторизоваться на сервере.

Затем нажмите Авторизоваться, чтобы Авторизоваться на сервере.

Введите следующую команду Авторизоваться, чтобы root счет

Язык кода:javascript
копировать
sudo -i

6.1.3 Установите Nginx Proxy Manager (необязательно, рекомендуется использовать обратный прокси-сервер. В этом руководстве используется NPM)

Установить Nginx Proxy Manager Сяоцзюнь также ранее написал подробное руководство.,Также поставляется с подробной видеоверсией.,Друзья, которым нужно учиться, могут нажать на эту статью, чтобы узнать👉👉👉Ссылка: [Учебное пособие] Использование Легкого сервер приложений Tencent Облако создает Nginx Proxy Менеджер, красивое и простое решение для обратного прокси! https://www.smalljun.com/archives/3113.html , конечно, друзья, которые хотят использовать обратный прокси, должны быть знакомы с Nginx , можно и своими руками потереть Nginx Выполните обратный прокси! Если вы хотите использовать панель пагоды, нет проблем!

6.2 Подготовка среды (другие серверы)

На этом этапе подготавливаются общие методы для различных серверных сред, если вы используете облегченный сервер приложений Tencent Cloud для развертывания программы и внимательно прочитали его. 6.1 Подготовка среды (облегченный сервер приложений Tencent Cloud) и выполните операцию шаг за шагом. Вы можете пропустить этот шаг и перейти непосредственно к. 6.3 Развертывание Навидрома Читайте дальше.

6.2.1 Обновление пакетов и установка необходимых пакетов программного обеспечения

Выполните следующую команду для обновления Packages и Установить Необходимые пакеты

Язык кода:javascript
копировать
apt -y update
apt -y install curl

6.2.2 Установка и запуск Docker

6.2.2.1 Установка Docker на зарубежных серверах

Выполните следующую команду, зарубежный сервер Установите Docker

Язык кода:javascript
копировать
curl -fsSL https://get.docker.com | bash -s docker
6.2.2.2 Установка Docker на домашний сервер

Выполните следующую команду. Внутренний сервер использует источник образа Alibaba Cloud. Установить Docker.

Язык кода:javascript
копировать
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Выполните следующую команду. Внутренний сервер использует внутренний. daocloud Один клик Установить Заказ Установить Docker

Язык кода:javascript
копировать
curl -sSL https://get.daocloud.io/docker | sh
6.2.2.3 Запустить Докер

Введите и выполните следующую команду, чтобы начать Docker

Язык кода:javascript
копировать
systemctl start docker

Выполните следующую команду еще раз, чтобы просмотреть Docker рабочее состояние

Язык кода:javascript
копировать
systemctl status docker

Наконец, выполните следующую команду, чтобы установить Docker Автоматический запуск при загрузке

Язык кода:javascript
копировать
systemctl enable docker

Поскольку мы передали приведенный выше скрипт в один клик, установите Docker Для последней версии новая версия Docker Принесите свой собственный compose Это подкоманда, поэтому дополнительная команда «Установить» нам не нужна. docker-compose . Если вы видите ниже docker-compose команда, пожалуйста, используйте docker compose Заказ! Есть только одно применение - Символ (тире) только другой, используйте его в новой версии. docker compose команду, и если вы используете более старую версию, используйте docker-compose Заказ.

6.2.3 Установите Nginx Proxy Manager (для этого руководства рекомендуется использовать обратный прокси-сервер и NPM)

Установить Nginx Proxy Manager Сяоцзюнь также ранее написал подробное руководство.,Также поставляется с подробной видеоверсией.,Друзья, которым нужно учиться, могут нажать на эту статью, чтобы узнать👉👉👉Ссылка: [Учебное пособие] Использование Легкого сервер приложений Tencent Облако создает Nginx Proxy Менеджер, красивое и простое решение для обратного прокси! https://www.smalljun.com/archives/3113.html , конечно, друзья, которые хотят использовать обратный прокси, должны быть знакомы с Nginx , вы также можете сделать это самостоятельно Установить Nginx Выполните обратный прокси! Если вы хотите использовать панель пагоды, нет проблем!

6.3 Развертывание Навидрома

6.3.1 Создайте новый каталог

Выполните следующую команду, чтобы создать новый каталог

Язык кода:javascript
копировать
mkdir -p /opt/docker/navidrome && cd /opt/docker/navidrome && mkdir -p /music && chmod 755 -R /music

6.3.2 Создайте новый файл docker-compose.yaml и отредактируйте его.

Выполните следующую команду, чтобы создать новый docker-compose.yaml файл и редактировать

Язык кода:javascript
копировать

Затем введите следующее содержимое конфигурации, а затем Ctrl X + y +Ввести Просто выйдите и сохранитесь.

Язык кода:javascript
копировать
---
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - 2079:4533
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_DEFAULTLANGUAGE: zh-Hans
      #Установим язык по умолчанию на упрощенный китайский
      ND_ENABLESHARING: "true"
      #Включить функцию обмена
    volumes:
      - /opt/docker/navidrome:/data
      - /music:/music:ro

Как показано ниже

Уведомление

  1. docker-compose.yaml в файле 2079 Это открытый порт. Если он занят, измените его самостоятельно. Его необходимо установить в Облачном. Консольный брандмауэр сервера открывает соответствующий порт!

6.3.3 Запуск контейнера

Введите и выполните следующую команду, чтобы запустить контейнер в фоновом режиме.

Язык кода:javascript
копировать
docker compose up -d #Новая версия Docker использует эту команду
docker-compose up -d #Старые версии Docker используют эту команду, например: Легкий из нести выше сервер приложений Tencent Docker-образ Cloud в Принести свой собственныйизDocker-compose

Как показано ниже

После запуска введите и выполните следующую команду, чтобы подтвердить, что все контейнеры running или up состояние

Язык кода:javascript
копировать
docker compose ps #Новая версия Docker использует эту команду
docker-compose ps #Старые версии Docker используют эту команду, например: Легкий из нести выше сервер приложений Tencent Docker-образ Cloud в Принести свой собственныйизDocker-compose

Как показано ниже

На данный момент мы завершили Navidrome , если у вас нет доменного имени и вы не хотите использовать доменное имя для программы, браузер обращается к серверу IP:2079 Вы можете получить к нему доступ сейчас!

6.4 Настройка обратного прокси

Сначала разрешите доменное имя серверу, а затем рассмотрите возможность написания руководства по разрешению доменных имен! Входить Nginx Proxy Manager , нажмите Hosts , затем нажмите Add Proxy Host,Настройте, как показано ниже,На картинке нижеиз 172.17.0.1 Может отличаться, пожалуйста, выполните ip addr Найдите это сами docker0 Внутренний IP сетевой карты!

Язык кода:javascript
копировать
Domain Имена: Введите доменное имя, которое вы хотите использовать для программы.
Схема: http по умолчанию #Как правило, менять не нужно
Forward Hostname / IP:172.17.0.1 #В целом `172.17.0.1` ,Может отличаться, пожалуйста, выполните `ip addr` Найдите это сами `docker0` Внутренний IP сетевой карты!
Forward Port:2079 #Открытый порт (если не изменен согласно этой статье) `yaml` в Открытый порт файла. должно быть `2079` )

Как показано ниже

Не волнуйтесь пока. Save , все идут первыми DNS Провайдер разрешает доменное имя! Затем мы можем добавить в программу SSL Сертификат, добавьте к нему маленький зеленый замочек, но не важно, нажмете ли вы на него, если не нажмете, это не имеет значения. Save друзья кликают SSL , затем нажмите Request a new SSL Certificate , а затем положить Force SSL и HTTP/2 Support Откройте и измените его Email Address for Let's Encrypt электронную почту, а затем Save Вот и все; Save друзья, Три точки справа от кнопки, нажмите Edit , повторите вышеуказанные шаги!

Как показано ниже

До сих пор,у нас естьразвертывать Заканчивать Navidrome Этот мощный Navidrome Программа музыкального сервера. Просто войдите в доменное имя, которое вы только что установили, в своем браузере, а затем зарегистрируйтесь в качестве администратора!

Уведомление

  1. Соответствующий порт необходимо открыть в фоновом брандмауэре сервера! нужно быть открытым 80 tcp443 tcp и 81 tcp Да, и если вы не используете программу доступа к доменным именам, вам просто нужно открыть 2079 tcp

7. Простое руководство по использованию

7.1 Создание пользователя-администратора

Открыт впервые Navidrome В программе следуйте инструкциям по заполнению имени пользователя, пароля, подтверждения пароля и другой информации. затем нажмите Создать администратора Полная регистрация.

7.2 Создайте нового пользователя (необязательно)

Если у вас есть друзья и родственники, которые также хотели бы использовать это приложение,вы можете создать для них учетную запись,И они должны изменить свой пароль при первом входе в систему. Нажмите на аватар в правом верхнем углу, затем нажмите на пользователя, чтобы войти в панель управления пользователями. Нажмите Правая часть страницы Новый , следуйте инструкциям, чтобы ввести имя пользователя, имя, адрес электронной почты, пароль и другую информацию для создания нового пользователя.

7.3 Использование с клиентом

кроме своего собственного Web UI ,Navidrome должен быть связан со всеми Subsonic Совместимость с клиентом. Следующие клиенты были протестированы и подтвердили корректную работу:

iOS: play:Sub, substreamer, Amperfy and iSub Android: DSub, Subtracks, substreamer, Symfonium and Ultrasonic Web: Feishin, Thunderdrome, Airsonic Refix, Subplayer, Aurial, Jamstash and Subfire Desktop: Sonixd (Windows/Linux/macOS), Feishin (Linux/macOS), Sublime Music (Linux), Supersonic (Windows/Linux/macOS) and Submariner (macOS) CLI: Jellycli (Windows/Linux) and STMP (Linux/macOS) Connected Speakers: Sonos: bonob Alexa: AskSonic Other: Subsonic Kodi Plugin Navidrome Kodi Plugin HTTPDirFS upmpdcli: expose Navidrome as a UPnP/DLNA media library. See the discussion. For more options, look at the list of clients maintained by the Airsonic project.

7.4 Загрузка музыки

Вы можете загрузить музыку на /music каталог, Navidrome автоматически обнаружит /music музыка в, путь - это то, в чем мы находимся docker-compose.yaml набор.

7.5 Функция списка воспроизведения

Нажмите на левую боковую панель Плейлист , вы можете войти в функцию «Плейлист» и наслаждаться «Новым Плейлистом».

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

8. Возникшие текущие проблемы

8.1 Сложно установить Docker на отечественные сервера

Рекомендуется напрямую выполнить следующую команду: Установить Docker

Язык кода:javascript
копировать
apt install docker.io

Затем,Обратитесь к тому, что Сяоцзюнь написал ранее.из👉👉👉[Руководство] Подробное руководство по установке Docker системы CentOS https://www.smalljun.com/archives/3174.html ,Установить Docker-compose , а затем продолжайте Шаг 6.2 и последующие операции

9. Issues

Если у вас есть вопросы, вы можете пойти Github нести Issues,Вы также можете общаться и обсуждать друг с другом в комментариях!

10. Резюме

Navidrome Это очень мощная функцияизпрограмма музыкального сервера,Поддержка нескольких клиентов через несколько платформ,Поддерживает большинство аудиоформатов,Очень низкое использование ресурсов,Он также поддерживает многопользовательские функции и функции мгновенного перекодирования.,Если вы обнаружите другие его особенности и функции, вы можете активно обсудить это в области комментариев! или Если есть похожие программы, вы также можете прокомментировать и поделиться ими!

Часть структуры статьи в этой статье относится к тому, что я не кукушонок.,Я хотел бы поблагодарить вас за предоставленные мне идеи структуры статьи.

boy illustration
elasticsearch медленный запрос, устранение неполадок записи, запрос с подстановочными знаками
boy illustration
По какому стандарту взимается плата за обслуживание программного обеспечения?
boy illustration
IP-адрес Получить
boy illustration
【Java】Решено: org.springframework.web.HttpRequestMethodNotSupportedException
boy illustration
Native js отправляет запрос на публикацию_javascript отправляет запрос на публикацию
boy illustration
.net PDF в Word_pdf в Word
boy illustration
[Пул потоков] Как Springboot использует пул потоков
boy illustration
Подробное объяснение в одной статье: Как работают пулы потоков
boy illustration
Серия SpringCloud (6) | Поговорим о балансировке нагрузки
boy illustration
IDEA Maven может упаковать все импортное полностью красное решение — универсальное решение.
boy illustration
Последний выпуск 2023 года, самое полное руководство по обучению Spring Boot во всей сети (с интеллект-картой).
boy illustration
[Решено — Практическая работа] SaTokenException: запрос не может быть получен в контексте, отличном от Интернета. Решение проблем — Практическая работа.
boy illustration
HikariPool-1 - Connection is not available, request timed out after 30000ms
boy illustration
Power Query: автоматическое суммирование ежемесячных данных с обновлением одним щелчком мыши.
boy illustration
установка Ubuntu в среде npm
boy illustration
3 Бесплатные системы управления складом (WMS) .NET с открытым исходным кодом
boy illustration
Глубокое погружение в библиотеку Python Lassie: мощный инструмент для автоматизации извлечения метаданных
boy illustration
Объяснение прослушивателя серии Activiti7 последней версии 2023 года
boy illustration
API-интерфейс Jitu Express для электронных счетов-Express Bird [просто для понимания]
boy illustration
Каковы архитектуры микросервисов Java. Серверная часть плавающей области обслуживания
boy illustration
Описание трех режимов жизненного цикла службы внедрения зависимостей Asp.net Core.
boy illustration
Java реализует пользовательские аннотации для доступа к интерфейсу без проверки токена.
boy illustration
Серверная часть Unity добавляет поддержку .net 8. Я еще думал об этом два дня назад, и это сбылось.
boy illustration
Проект с открытым исходным кодом | Самый элегантный метод подписки на публичные аккаунты WeChat на данный момент
boy illustration
Разрешения роли пользователя Gitlab Гость, Репортер, Разработчик, Мастер, Владелец
boy illustration
Spring Security 6.x подробно объясняет механизм управления аутентификацией сеанса в этой статье.
boy illustration
[Основные знания ASP.NET] — Аутентификация и авторизация — Использование удостоверений для аутентификации.
boy illustration
Соединение JDBC с базой данных MySQL в jsp [легко понять]
boy illustration
[Уровень няни] Полный процесс развертывания проекта Python (веб-страницы Flask) в Docker.
boy illustration
6 способов чтения файлов свойств, рекомендуем собрать!