A docker image for SpotConnect.
This repository replaces the previous airplay and upnp separate variants of the project, which will be no longer updated.
The latest images include version 0.9.2.
This is based on this project by philippe44.
In UPnP mode (SPOTCONNECT_MODE=upnp
), it will let you use your upnp renderers (including those created with upmpdcli and mpd) as Spotify Connect devices.
In AirPlay mode (SPOTCONNECT_MODE=raop
), it will let you use your AirPlay renderers as Spotify Connect devices, including those that you have created using Shairport Sync.
REPOSITORY | DESCRIPTION |
---|---|
Source code | GitHub |
Docker images | Docker Hub |
Simply build using the following:
docker build . -t giof71/spotconnect:latest
Configuration is available through a set of environment variables.
There are currently just a few variables available to set, but more will come as soon as possible.
VARIABLE | DESCRIPTION |
---|---|
PUID | Group used to run the application, defaults to 1000 |
PGID | Group used to run the application, defaults to 1000 |
PREFER_STATIC | Prefer -static version of the executable, defaults to no |
VORBIS_BITRATE | Set the vorbis bitrate to 320 , 160 or 96 , defaults to 320 |
STORE_CRED_XML | Set to yes to store credentials in the configuration file (-j ), defaults to no |
SPOTCONNECT_MODE | SpotConnect mode: upnp or raop (for AirPlay), defaults to upnp |
OUTPUT_CODEC | Codec for the UPnP version, see here, possible values here |
UPNP_HTTP_CONTENT_LENGTH_MODE | For UPnP mode only, see here, possible values here |
UPNP_HTTP_CACHING_MODE | Caching mode for UPnP mode only, possible values here |
APPLETV_PAIRING_MODE | Runs in Apple TV Pairing mode, see issue #1 |
CONFIG_FILE_PREFIX | Prefix for the config file, empty by default |
LOG_LEVEL_ALL | Enables log of type all using the provided value |
LOG_LEVEL_MAIN | Enables log of type main using the provided value, possible values here |
LOG_LEVEL_UTIL | Enables log of type util using the provided value, possible values here |
LOG_LEVEL_UPNP | Enables log of type upnp using the provided value, possible values here |
LOG_LEVEL_RAOP | Enables log of type raop using the provided value, possible values here |
ENABLE_AUTO_NETWORK | Allows to automatically set NETWORK_SELECT, defaults to yes , but this does not override an explicitly set NETWORK_SELECT variable anyway |
NETWORK_SELECT | Sets the network interface or ip and optionally port |
AUTO_NETWORK_URL | Used for selecting the network to use, defaults to 1.1.1.1 |
NETWORK_USE_IP | Use ip instead of network card for -b , defaults to yes |
From the application's own help text:
-g -3|-2|-1|0|<n> HTTP content-length mode (-3:chunked(*), -2:if known, -1:none, 0:fixed, <n> your value)
So the variable UPNP_HTTP_CONTENT_LENGTH_MODE
can be set accordingly.
From the application's own help text:
-A 0|1|2 HTTP caching mode (0=memory, 1=memory but claim it's infinite(*), 2=on disk)
So the variable UPNP_HTTP_CACHING_MODE
can be set accordingly.
From the application's own help text:
-c mp3[:<rate>]|opus[:<rate>]|vorbis[:rate]|flc[:0..9]|wav|pcm audio format send to player (flac)
So possible values include but are not limited to the following list: flc
, flc:5
, wav
, mp3
, mp3:320
, etc.
From the application's own help text:
-c <alac|pcm> audio format send to player (alac)
So possible values are alac
and pcm
.
Please note that the possible values for the variables starting with LOG_LEVEL_
are the following: error
, warn
, info
, debug
, sdebug
.
Simple docker-compose files below.
---
version: "3"
volumes:
config:
services:
spotconnect-upnp:
image: giof71/spotconnect:latest
container_name: spotconnect-upnp
network_mode: host
environment:
- SPOTCONNECT_MODE=upnp
- PUID=1000
- PGID=1000
volumes:
- config:/config
restart: unless-stopped
---
version: "3"
volumes:
config:
services:
spotconnect-airplay:
image: giof71/spotconnect:latest
container_name: spotconnect-airplay
network_mode: host
environment:
- SPOTCONNECT_MODE=raop
- PUID=1000
- PGID=1000
volumes:
- config:/config
restart: unless-stopped
The changelog of the upstream project is available here.
DATE | DESCRIPTION |
---|---|
2024-09-11 | Do not save credentials to xml file (-j ) by default |
2024-09-10 | Add support for http caching mode (-A ) |
2024-09-10 | Add support for http content length mode (-g ) |
2024-09-10 | Add support for output codec (-c ) |
2024-03-11 | Prefer ip over iface for the select network interface |
2024-03-09 | Auto select network interface (see #3) |
2024-03-06 | Bump to version 0.9.2 |
2024-01-26 | Add support for log level of type raop |
2024-01-26 | Bump to version 0.9.1 |
2024-01-15 | Bump to version 0.9.0 |
2024-01-10 | Add support for log levels |
2024-01-09 | Bump to version 0.8.6 |
2023-12-27 | Bump to version 0.8.5 |
2023-12-26 | Bump to version 0.8.4 |
2023-12-18 | Bump to version 0.8.3 |
2023-12-17 | Bump to version 0.8.1 |
2023-12-13 | Support AppleTv Pairing mode (see #1) |
2023-12-13 | Bump to version 0.8.0 |
2023-12-07 | Bump to version 0.7.0 |
2023-12-05 | Bump to version 0.6.2 |
2023-12-02 | Bump to version 0.6.1 |
2023-11-28 | Bump to version 0.6.0 |
2023-11-23 | First working release |