A snappy music server written in Go using the Subsonic API.
- Scan file systems and beets databases for your music
- Browse and stream music
- Manage playlists
- View cover art
sound targets version 1.16.1 of the Subsonic API.
You'll need
- Go 1.11.x
- A PostgreSQL database or Docker
$ cd go
$ go get
$ go build
Cross compiling is possible if you want to run sound on a different device to the one you're building on.
Before running tests, create an empty database called sound_test
owned by a user sound
with password sound
. Docker can do this for you ($ docker-compose up -d
).
$ go test -p 1 ./go/...
- Make a Postgres database and user for the application use.
- Copy your built binary along with config.yaml to your deployment directory. Configure sound by editing
config.yaml
, following the comments inside the file. - Run sound as a standalone web service or behind a proxy such as Nginx.
You can connect a Subsonic client to sound by pointing the client to the /subsonic
subpath (so if sound is hosted at http://www.mywebsite.com/sound
you would point your client to http://www.mywebsite.com/sound/subsonic
).
- Finish the Elm front-end
- Transcoding
- FastCGI
- Scheduling
- Starring
- Podcasts
- User roles
- More music providers