- PVSM.RU - https://www.pvsm.ru -

Grooveshark уже пять лет как закрыт. За это время появились десятки проектов поменьше с той же идеей — но на базе децентрализованных сетей. Проблема Grooveshark была в его централизации, которая позволила правообладателям завалить компанию исками, в итоге потопившими её. С тех пор любая музыкальная платформа с пользовательским контентом обязательно включает в слоганы «децентрализацию», «peer-to-peer», «криптографию» и конечно, блокчейн. У всех общие проблемы: несмотря на использование федеративных сетей и модных протоколов, всё управление стартапом сосредоточено в одном офисе. Пока платформа слишком мала чтобы её заметили, она слабо развивается. Стоит ей дорасти до более-менее крупной пользовательской базы, и через несколько месяцев она тонет под напором DMCA и судебных исков.
Единственной жизнеспособной альтернативой, которая не закроется в любой момент, становятся community-driven проекты без головного офиса (и зачастую вообще без юрлица). Но даже в этом случае нет гарантии, что в один прекрасный день используемый вами сервер/хаб не накроется медным тазом, а значит нужна ещё и селф-хостед версия. Список сужается до единиц проектов, а если добавить вменяемый интерфейс и относительную легкость в развёртывании и использовании ноды, то мы останавливаемся на Funkwhale [1].
Установить под можно на любую машину, и для вариантов с годами накопленных терабайтов музыки я бы рассматривал любой подкроватный сервер, подключенный к NAS. Кстати, судя по отдельным комментариям, под при желании можно запустить даже на Raspberry Pi, но я не проверял. У меня довольно мало музыки, поэтому я беру самый дешёвый VPS [3] и разворачиваю систему на нём.
Это статья в корпоративном блоге, поэтому берём сервер у VDSina. Я выбираю копеечный вариант с убунтой, хотя можно взять и любую другю систему, даже Windows Server. Но зачем?

Не забудьте при создании подключить свой SSH-ключ, это удобнее, чем импортировать его вручную.
Самый простой вариант — поставить под из докера. Здесь нужно понимать нюанс использования: хорошей практикой считается импортирование всей музыки из прокси-каталога с символическими ссылками на реальные каталоги, которые при этом могут быть как угодно раскиданы по машине и даже лежать на примонтированном устройстве. При обычной установке Funkwhale может ходить по всему хосту и брать музыку откуда угодно. При установке в докере надо либо париться с пробросом, либо хранить всю музыку внутри контейнера. Для моего варианта с одним небольшим архивом музыки это подходит. Кстати, по умолчанию под ставится в один контейнер, но если вы планируете создать масштабный хаб с высокими нагрузками, можно рассмотреть атомарную установку, так как она отлично масштабируется. Здесь мы её рассматривать не будем, потому что это очень уж специфичный случай, но вот ссылка [4] на мануал.
Разумеется, нужно установить сам докер и docker-compose. Подробно расписывать этот процесс нет смысла, вот доки: docker [5], docker-compose [6].
sudo useradd -r -s /usr/bin/nologin -m -d /srv/funkwhale -U -G docker funkwhale
cd /srv/funkwhale
Логинимся и дальше работаем из-под него
sudo -u funkwhale -H bash
touch .env
chmod 600 .env # reduce permissions on the .env file since it contains sensitive data
cat > .env << EOF
# Replace 'your.funkwhale.example' with your actual domain
FUNKWHALE_HOSTNAME=your.funkwhale.example
# Protocol may also be: http
FUNKWHALE_PROTOCOL=https
# This limits the upload size
NGINX_MAX_BODY_SIZE=100M
# Bind to localhost
FUNKWHALE_API_IP=127.0.0.1
# Container port you want to expose on the host
FUNKWHALE_API_PORT=5000
# Generate and store a secure secret key for your instance
DJANGO_SECRET_KEY=$(openssl rand -hex 45)
# Remove this if you expose the container directly on ports 80/443
NESTED_PROXY=1
EOF
version: "3"
services:
funkwhale:
container_name: funkwhale
restart: unless-stopped
# change version number here when you want to do an upgrade
image: funkwhale/all-in-one:1.0.1
env_file: .env
environment:
# adapt to the pid/gid that own /srv/funkwhale/data
- PUID=1000
- PGID=1000
volumes:
- /srv/funkwhale/data:/data
- /path/to/your/music/dir:/music:ro
ports:
- "5000:80"
/path/to/your/music/dir — путь, по которому зыгружается музыка. Тот самый прокси-каталог, например.
docker-compose up -d
Установим nginx, так как на чистой системе его ещё не было
sudo apt-get update
sudo apt-get install nginx
Применяем следующие команды:
export FUNKWHALE_VERSION="1.0.1"
# download the needed files
curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/1.0.1/deploy/funkwhale_proxy.conf"
curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/1.0.1/deploy/docker.proxy.template"
# create a final nginx configuration using the template based on your environment
set -a && source /srv/funkwhale/.env && set +a
envsubst "`env | awk -F = '{printf " $%s", $$1}'`"
< /etc/nginx/sites-available/funkwhale.template
> /etc/nginx/sites-available/funkwhale.conf
ln -s /etc/nginx/sites-available/funkwhale.conf /etc/nginx/sites-enabled/

Далее нужно будет зарегистрироваться в Funkwhale и импортировать музыку. Вот подробные доки [7] для нетривиальных кейсов.
Я рад, что наконец-то нашелся нормальный селф-хостед сервис для музыки, с которым не нужно проводить часы за установкой и настройкой. Вся процедура занимает минут пять, а продвинутая конфигурация хорошо описана в документации. При этом количество остальных плюшек впечатляет, особенно возможность выбрать под себя нормальное приложение для прослушивания на телефоне.
Хорошего пользования!
Виртуальные серверы с мгновенной активацией [3] на Linux или Windows. Сервер готов к работе через минуту после оплаты!
Автор: Mikhail
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/muzy-ka/359116
Ссылки в тексте:
[1] Funkwhale: https://funkwhale.audio/
[2] приложений: https://funkwhale.audio/en_US/apps/
[3] дешёвый VPS: https://vdsina.ru/cloud-servers?partner=habr172
[4] ссылка: https://docs.funkwhale.audio/installation/docker.html#docker-multi-container
[5] docker: https://docs.docker.com/engine/installation/
[6] docker-compose: https://docs.docker.com/compose/install/
[7] подробные доки: https://docs.funkwhale.audio/admin/importing-music.html
[8] Источник: https://habr.com/ru/post/528192/?utm_source=habrahabr&utm_medium=rss&utm_campaign=528192
Нажмите здесь для печати.