Własny serwer à la Spotify
czyli serwer Mopidy + Snapserver/Snapclient na docker-compose w akcji.
Od mojego wpisu o starym wzmacniaczu i MPV minęło już ponad 6 lat. Między czasie powstały usługi streamingowe z muzyką jak Spotify czy Tidal. Równocześnie świat IT wszedł w erę upowszechnionych kontenerów, najczęściej docker'ów.
W dzisiejszym artykule przedstawię jak w łatwy sposób przy pomocy serwisu docker oraz polecenia docker-compose zbudować swój własny domowy serwer muzyczny, dzięki któremu można słuchać własnych np. mp3-jek. radia internetowego czy podcastów. Do tego na wybranym kliencie lub na wszystkich na raz.
Zaczynamy...
1. W pierwszym kroku instalujemy serwis docker zgodnie z oficjalną dokumentacją:
https://docs.docker.com/engine/install/
Ja używając Linux Manjaro wpisuję np. tylko:
sudo pacman -Sy docker
2. Instalujemy pakiet docker-compose (choć w najnowszym docker, composer jest już w nim zaszyty):
Na Ubuntu 22.04 będą to dokładnie polecenia:
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
Ja w Manjaro wpisuję polecenie:
sudo pacman -Sy docker-compose
3. W celu pobrania całej wymaganej konfiguracji docker-compose i Dockerfile do budowy kontenerów, która sam stworzyłem, należy zainstalować klienta git lub pobrać kod z mojego repo git'a:
https://git.milecki.it/miles/docker-mopidy
4. Przy uruchomionym serwisie docker'a wchodzimy do katalogu gdzie znajduję się docker-compose.yaml.
5. Opcjonalnie modyfikujemy według potrzeb następujące pliki:
- .env file
- ./config/mopidy/mopidy.conf (optional)
6. Wgrywamy swoją muzykę do ./music/
7. Uruchamiamy ściąganie i budowanie warstw docker'owych oraz na końcu uruchomienie wszystkiego - komendą:
docker-compose up
8. Gdy wszystko pójdzie po naszej myśli otwieramy przeglądarkę i udajemy się pod adres:
http://localhost:6680/iris/
9. Na końcu na różnych komputerach w tym również na Raspberry Pi możemy instalować program snapclient, który po uruchomieniu zostanie automatyczni wyszukany i dodany do naszego serwera Mopidy/Snapserver
Strona projektu Snapserver/Snapclient:
https://github.com/badaix/snapcast/
UWAGI końcowe:
Niestety wszystko to działa po HTTP oraz bez autoryzacji, dlatego, że jest stworzone głównie do streamingu domowego. Można sobie poradzić np. przez własny VPN do swojego domu. W tym może nam pomóc najszybciej projekt https://pivpn.io/ , który na dystrybucjach Linuxa Debian'o podobnych bardzo uprości instalację własnego serwera VPN i zarządzanie nim. Wtedy tylko jakiś klienta VPN - np. OpenVPN na innym komputerze lub smartfonie i słuchamy swojej muzyki z każdego miejsca gdzie posiadamy łącze Internetowe lub sterujemy innymi klientami muzyki zdalnie.
Miłego słuchania!
Marcin Milecki