Git Product home page Git Product logo

librespot-snapserver's Introduction

librespot-snapserver

Run a Snapcast server with Spotify support as a Docker container.

This is a multi-arch image currently working on the amd64 and armhf platforms. This means you can use the same image regardless of platform.

Note: You need a Spotify premium account.

Usage

Run it like this (on your PC or ARM-based device):

docker run -d --name snapserver --net host -e DEVICE_NAME=Snapcast mazzolino/librespot-snapserver

That will make the device available to all Spotify clients in your network. Add your Spotify credentials in order to limit control to clients logged in with your account:

docker run -d --name snapserver --net host -e DEVICE_NAME=Snapcast -e USERNAME=my-spotify-username -e PASSWORD=my-spotify-password mazzolino/librespot-snapserver

Now you can connect your snapclient to your host's ip. The receiver should show up in Spotify under the DEVICE_NAME given above (e.g. Snapcast). Have fun playing music!

Custom configuration

If you want to configure the snapcast server differently, you can mount your own snapserver.conf into the container:

docker run -d --name snapserver --net host -v /path/to/your/snapserver.conf:/etc/snapserver.conf:ro mazzolino/librespot-snapserver

NOTE: The configuration file needs to be mounted read-only for this to work.

Make sure to include a Spotify source in your configuration, like this:

[stream]
source = librespot:///librespot?name=Spotify&devicename=DEVICE_NAME&bitrate=320&volume=100&username=USERNAME&password=PASSWORD

(Replace DEVICE_NAME, USERNAME and PASSWORD accordingly.)

Building the images

In order to build images for the non-amd64 architectures, you need to build on amd64 machine and enable qemu binfmt support. The easiest way for this is to run:

docker run --privileged --rm tonistiigi/binfmt --install all

The following command will build the images for all supported architectures. Replace my/image with your own image name:

docker buildx build --platform=linux/amd64,linux/arm/v7,linux/arm64 -t my/image --load .

To build only an image for the current architecture, run:

docker buildx build -t my/image --load .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.