Skip to content

wolandmaster/simplesonic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simplesonic

  • minimalistic Subsonic server API implementation written in Go
  • database free (browsing by folder structure)
  • external go package free (using only standard library)
  • jukebox support with MPD
  • m3u support with extended directives
  • tested on dsub, subsonic
  • for a more feature-rich server, use: gonic, airsonic, or ampache

Configuration

Simplesonic config file (/etc/simplesonic/simplesonic.json or ~/.config/simplesonic/simplesonic.json)

{
  "server": {
    "listenAddress": ":4040"
    "tlsKey": "simplesonic.key"
    "tlsCert": "simplesonic.crt",
  },
  "musicFolders": [
    {
      "name": "Music",
      "path": "/path/to/music"
    },
    {
      "name": "Other",
      "path": "/some/other/folder"
    }
  ],
  "playlistFolder": "/path/to/playlist",
  "users": [
    {
      "username": "alice",
      "password": "********"
    }
  ],  
  "mpd": {
    "unixSocket": "/var/run/mpd.sock"
  }
}

Generate self-signed TLS certificate

$ openssl genrsa -out simplesonic.key 2048
$ openssl req -new -x509 -sha256 -key simplesonic.key -out simplesonic.crt -days 3650

Minimal MPD config file (/etc/mpd.conf or ~/.config/mpd/mpd.conf)

Do not set db_file or music_directory!

bind_to_address    "/var/run/mpd.sock"

input {
        plugin     "curl"       
}

audio_output {                                                                                                                                                                                                                                                                              
        type       "alsa"
        name       "ALSA sound card"
}

Recommended music folder structure

music
└── Artist
    └── 1990-Album
        ├── 01-Some_track.mp3
        ├── 02-Some_other_track.mp3
        ├── ...
        ├── album.m3u8                            (optional)
        └── folder.jpg                            (optional)       

Example album.m3u8 file

#EXTM3U
#PLAYLIST:Black Ice musicbrainz="701340f6-dea7-3f37-acb6-808950f5299b" lastfm="AC%2FDC/Black+Ice" discogs="8540" spotify="7qVfz4UGONwEd5nQjj0ESN"
#EXTART:AC/DC
#EXTALB:Black Ice (2008)
#EXTGENRE:Rock
#EXTIMG:front cover
folder.jpg
#EXTINF:261 bitrate="320",Rock N Roll Train
01-Rock_N_Roll_Train.mp3
#EXTINF:214 bitrate="320",Skies on Fire
02-Skies_on_Fire.mp3
...

About

Subsonic server implementation written in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages