🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
Go to file
Deluan 75d833a8c1 Rename CI to Build 2020-01-23 18:21:20 -05:00
.github/workflows Rename CI to Build 2020-01-23 18:21:20 -05:00
assets Use bindata to embed UI assets 2020-01-22 18:38:54 -05:00
bin Removed unused scripts (moved to Makefile) 2016-10-10 21:03:21 -04:00
conf Add configuration for scan interval. Default 5 mins 2020-01-22 08:48:02 -05:00
consts Use bindata to embed UI assets 2020-01-22 18:38:54 -05:00
engine Initial support for song browsing from UI 2020-01-22 10:47:43 -05:00
log New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
model Remove unused code 2020-01-22 15:42:29 -05:00
persistence Remove unused code 2020-01-22 15:42:29 -05:00
scanner Initial support for song browsing from UI 2020-01-22 10:47:43 -05:00
server Use bindata to embed UI assets 2020-01-22 18:38:54 -05:00
static Implemented getAvatar 2016-03-21 20:31:28 -04:00
tests Moved package `api` to `subsonic` under `server` 2020-01-19 18:23:09 -05:00
ui UI: Use login theme everywhere 2020-01-23 18:20:38 -05:00
utils Initial support for playlists. Missing permissions 2020-01-21 16:39:35 -05:00
.dockerignore Initial docker support 2020-01-22 20:35:19 -05:00
.gitignore Ignore more files 2020-01-23 18:20:20 -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
API_COMPATIBILITY.md Update compatibility table 2020-01-22 01:01:11 -05:00
Dockerfile Initial docker support 2020-01-22 20:35:19 -05:00
LICENSE Change license to GPLv3 2020-01-22 14:48:38 -05:00
Makefile Use bindata to embed UI assets 2020-01-22 18:38:54 -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 Rename CI to Build 2020-01-23 18:21:20 -05:00
docker-compose.yml Initial docker support 2020-01-22 20:35:19 -05:00
go.mod Authenticate UI 2020-01-20 10:25:35 -05:00
go.sum Authenticate UI 2020-01-20 10:25:35 -05:00
main.go Fix startup order, setting LogLevel 2020-01-20 17:35:04 -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 Created InitialSetup method that handles all steps required for starting the server for the first time 2020-01-20 15:17:43 -05:00
wire_injectors.go Add routing for basic web ui 2020-01-19 19:35:03 -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.

Version 1.0 main goals are:

  • Be fully compatible with available Subsonic clients (actively being tested with DSub, Music Stash and Jamstash)
  • Implement smart/dynamic playlists (similar to iTunes)
  • Optimized ro run on cheap hardware (Raspberry Pi) and VPS

Supported Subsonic API version

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/music/folder"
$ make

The server should start listening for requests on the default port 4533. The first time you start the app it will create a new user "admin" with a random password. Check the logs for a line like this:

Creating initial user. Please change the password!  password=be32e686-d59b-4f57-b780-d04dc5e9cf04 user=admin

You can change this password using the UI. Just login in with this temporary password at http://localhost:4533

To change any 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 and Node 12.14.1

Then install dependencies:

$ make setup

Some useful commands:

# Start local server (with hot reload)
$ make

# 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