Как слушать музыку и сойти с ума на сдачу.
Расклад такой. В связи с законом от 1 марта для себя я решил, что пользоваться Яндекс Музыкой больше не хочу, ВК музыкой тем более, Со spotify я попытался повозиться, но не получилось, на SoundCloud возникли проблемы с российским аккаунтом, в общем, все это так сильно надоело, что я решил сделать свой сервер с музыкой. Я здесь кратко (да, кратко) опишу, каким путем решил пойти я и возможно тут найдутся люди, которые мне подскажут как было лучше, а может для кого-то это будет толчком.
Для начала нам нужен сам сервер, для меня им выступает древний комп, которым никто не пользуется. Слишком много ресурсов для этого не надо. В идеале иметь белый ip и домен, но можно обойтись и каким-нибудь cloudflare tunnel, я не пробовал ими пользоваться, но если выбора нет, попробовать стоит.
Какой вообще будет стек. Скачивать музыку по треку и самому все раскладывать по папочкам слишком запарно, поэтому будем использовать утилиту Lidarr, которая сама скачивает треки с торрента и индексирует. К сожалению, в России сайт MusicBrainz недоступен (сайт с метаданными для музыки), поэтому надо будет поднять еще и прокси, думаю все этот вопрос для себя уже решили. Это все хорошо, но lidarr просто складывает все в папку, послушать мы это не можем, поэтому нам нужена утилита, которая будет давать нам доступ к библиотеке. Насколько я понял, нормальных только два: Navidrome и Jellyfin, я остановился на первом, т.к. он мне кажется более быстрым, хотя до конца еще не определился. Для удобства будем ставить все на Proxmox, специальная система для контейнеров.
План такой:
- Устанавливаем proxmox на сервер.
- Используя Proxmox-Helper-Scripts ставим контейнеры для lidarr, qbittorrent (чтобы скачивать торрент раздачи), prowlarr (необходим для lidarr, в нем хранятся индексеры, т.е. торрент сайты), navidrome/jellyfin на выбор, удобно будет все делать через reverse proxy, поэтому ставим еще nginx, если у вас есть nzb индексеры, нужен еще nzbget. Есть flaresolverr, чтобы обходить cloudflare защиту на сайтах, но у меня он почему то не заработал. Возможно нужно будет самостоятельно сделать контейнер с sing-box, но он делается не слишком сложно. (Не забудьте дать каждому контейнеру статический ip внутри локалки, чтобы при перезагрузке пробросы портов не ломались).
- Создаем ZFS хранилище, в нем папочку для торрент скачиваний и папочку для библиотеки, в конфигурации для lidarr, qbittorrent, navidrome/jellyfin указываем монтирование этого хранилища в любое удобное для вас место, потом меняем все стандартные пути, связанные со скачиванием и хранением, на эти папки.
- Связываем lidarr с prowlarr и добавляем трекеры. Я долго пытался найти хорошие торрент сайты, но все они либо приватные, либо пустые. Остановился лишь старых добрых на ThePirateBay и RuTracker.
- Рекомендую поменять стандартное индексирование файлов в lidarr, потому что если вы оставите все как есть, то jellyfin смешает все альбомы одного исполнителя, не самый приятный опыт.
- Пробрасываем порты куда надо, здесь уже все индивидуально.
В целом на этом все. Есть дофига подводных камней, с которыми сталкиваешься, когда делаешь все в первый раз. Например, я оч долго не мог понять, где взять дефолтный пароль для qbittorrent.
Скачиваете любой subsonic/jellyfin клиент, на android я считаю symfonium the goat, и можете слушать свою музыку с комфортом.
Не сложно заметить, что есть очевидные минусы по сравнению с музыкальными сервисами. Даже если опустить цену, вы запаритесь собирать свою коллекцию с торрентов, потому что даже там есть не все, сервер может периодически ложится, тут уже от прямоты ваших рук зависит, но опыт в любом случае очень интересный.
Надеюсь найдутся люди которые шарят и может меня в чем то поправят. Так же, может быть тут есть люди, которые знают про REDacted и подобные сайты, мне было бы интересно послушать про опыт их использования и попадания туда.