🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
Go to file
Deluan cef65b6ab0 Un-export model mappers 2020-01-17 21:03:54 -05:00
.github/workflows Add JS tests/build to pipeline. Removed invalid test 2020-01-15 13:02:17 -05:00
api Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
bin Removed unused scripts (moved to Makefile) 2016-10-10 21:03:21 -04:00
conf New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
engine Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
itunesbridge Playlists support (99%) complete! 2016-03-24 13:28:20 -04:00
log New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
model Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
persistence Un-export model mappers 2020-01-17 21:03:54 -05:00
scanner Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
scanner_legacy Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
server New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
static Implemented getAvatar 2016-03-21 20:31:28 -04:00
tests New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
ui Bump @testing-library/jest-dom from 4.2.4 to 5.0.0 in /ui 2020-01-17 08:33:49 -05:00
utils Remove Portuguese word, to avoid misspell errors 2020-01-15 15:35:04 -05:00
.gitignore New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
.nvmrc Add ui subfolder, bootstrapped a "hello-world" React-Admin app, changed Makefile to start both apps in dev mode 2020-01-14 15:34:59 -05:00
LICENSE Changing license 2017-04-01 09:21:55 -04:00
Makefile Remove old tags from models 2020-01-17 20:54:28 -05:00
Procfile.dev Add ui subfolder, bootstrapped a "hello-world" React-Admin app, changed Makefile to start both apps in dev mode 2020-01-14 15:34:59 -05:00
README.md Update README.md 2020-01-13 17:31:12 -05:00
go.mod New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
go.sum New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
main.go Add startup banner 2020-01-13 18:24:54 -05:00
reflex.conf Add ui subfolder, bootstrapped a "hello-world" React-Admin app, changed Makefile to start both apps in dev mode 2020-01-14 15:34:59 -05:00
wire_gen.go Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
wire_injectors.go New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00

README.md

CloudSonic Server

Build Status Go Report Card

CloudSonic is a music collection server and streamer, allowing you to listen to your music collection from anywhere. It relies on the huge selection of available mobile and web apps compatible with Subsonic, Airsonic and Madsonic

It is already functional (see Installation below), but still in its early stages. Currently it can only import iTunes libraries, but soon it will also be able to scan any folder with music files.

Version 1.0 main goals are:

  • Be fully compatible with available Subsonic clients (actively being tested with DSub, Music Stash and Jamstash)
  • Import and use all metadata from iTunes, so that you can optionally keep using iTunes to manage your music
  • Implement smart/dynamic playlists (similar to iTunes)
  • Optimized ro run on cheap hardware (Raspberry Pi) and VPS

Supported Subsonic API version

I'm currently trying to implement all functionality from API v1.8.0, with some exceptions.

Check the (almost) up to date compatibility chart for what is working.

Installation

As this is a work in progress, there are no installers yet. To have the server running in your computer, follow the steps in the Development Environment section below, then run it with:

$ export SONIC_MUSICFOLDER="/path/to/your/iTunes Library.xml"
$ make run

The server should start listening for requests. The default configuration is:

  • Port: 4533
  • User: anyone
  • Password: wordpass

To override this or any other configuration, create a file named sonic.toml in the project folder. For all options see the configuration.go file

Development Environment

You will need to install Go 1.13

Then install dependencies:

$ make setup

Some useful commands:

# Start local server (with hot reload)
$ make run

# Run all tests
$ make test

Copying

CloudSonic - Copyright (C) 2017-2020 Deluan Cotts Quintao

The source code is licensed under GNU Affero GPL v3. License is available here