2020-01-04 21:16:10 -05:00
|
|
|
# CloudSonic Server
|
2016-02-24 18:28:23 -05:00
|
|
|
|
2020-01-04 21:23:24 -05:00
|
|
|
[](https://github.com/cloudsonic/sonic-server/actions)
|
2017-04-01 09:47:14 -04:00
|
|
|
[](https://goreportcard.com/report/github.com/cloudsonic/sonic-server)
|
2016-02-26 10:56:57 -05:00
|
|
|
|
2020-01-11 22:32:32 -05:00
|
|
|
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](http://www.subsonic.org),
|
|
|
|
|
[Airsonic](https://airsonic.github.io/) and [Madsonic](https://www.madsonic.org/)
|
2016-02-25 13:51:20 -05:00
|
|
|
|
2020-01-19 15:37:41 -05:00
|
|
|
It is already functional (see [Installation](#installation) below), but still in its early stages.
|
2016-02-26 01:45:04 -05:00
|
|
|
|
2020-01-11 22:32:32 -05:00
|
|
|
Version 1.0 main goals are:
|
2020-01-04 21:16:10 -05:00
|
|
|
- Be fully compatible with available [Subsonic clients](http://www.subsonic.org/pages/apps.jsp)
|
2016-03-25 00:04:22 -04:00
|
|
|
(actively being tested with
|
2020-01-04 21:16:10 -05:00
|
|
|
[DSub](http://www.subsonic.org/pages/apps.jsp#dsub),
|
2020-01-09 22:50:29 -05:00
|
|
|
[Music Stash](https://play.google.com/store/apps/details?id=com.ghenry22.mymusicstash) and
|
|
|
|
|
[Jamstash](http://www.subsonic.org/pages/apps.jsp#jamstash))
|
2020-01-11 22:32:32 -05:00
|
|
|
- Implement smart/dynamic playlists (similar to iTunes)
|
2020-01-13 17:31:12 -05:00
|
|
|
- Optimized ro run on cheap hardware (Raspberry Pi) and VPS
|
2016-02-24 18:28:23 -05:00
|
|
|
|
2020-01-04 21:16:10 -05:00
|
|
|
### Supported Subsonic API version
|
2016-02-29 14:16:51 -05:00
|
|
|
|
2016-03-21 17:30:58 -04:00
|
|
|
I'm currently trying to implement all functionality from API v1.8.0, with some exceptions.
|
2016-03-10 12:03:08 -05:00
|
|
|
|
2020-01-11 22:32:32 -05:00
|
|
|
Check the (almost) up to date [compatibility chart](https://github.com/cloudsonic/sonic-server/wiki/Compatibility)
|
|
|
|
|
for what is working.
|
2016-02-24 18:28:23 -05:00
|
|
|
|
2016-03-31 22:28:33 -04:00
|
|
|
### Installation
|
|
|
|
|
|
2020-01-11 22:32:32 -05:00
|
|
|
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](#development-environment) section below, then run it with:
|
2020-01-04 21:16:10 -05:00
|
|
|
|
2016-03-31 22:28:33 -04:00
|
|
|
```
|
2020-01-19 15:37:41 -05:00
|
|
|
$ export SONIC_MUSICFOLDER="/path/to/your/music/folder"
|
2020-01-19 21:39:37 -05:00
|
|
|
$ make
|
2016-03-31 22:28:33 -04:00
|
|
|
```
|
2020-01-04 21:16:10 -05:00
|
|
|
|
2020-01-20 13:35:59 -05:00
|
|
|
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
|
|
|
|
|
```
|
2020-01-06 15:19:14 -05:00
|
|
|
|
2020-01-20 13:35:59 -05:00
|
|
|
You can change this password using the UI. Just login in with this temporary password at http://localhost:4533
|
2020-01-06 15:19:14 -05:00
|
|
|
|
2020-01-20 13:35:59 -05:00
|
|
|
To change any configuration, create a file named `sonic.toml` in the project folder. For all options see the
|
|
|
|
|
[configuration.go](conf/configuration.go) file
|
2016-03-31 22:28:33 -04:00
|
|
|
|
2016-02-26 11:39:14 -05:00
|
|
|
### Development Environment
|
|
|
|
|
|
2020-01-04 21:16:10 -05:00
|
|
|
You will need to install [Go 1.13](https://golang.org/dl/)
|
2016-02-29 14:16:51 -05:00
|
|
|
|
2016-02-26 11:39:14 -05:00
|
|
|
Then install dependencies:
|
2020-01-04 21:16:10 -05:00
|
|
|
|
2016-02-26 11:39:14 -05:00
|
|
|
```
|
2016-10-10 20:27:09 -04:00
|
|
|
$ make setup
|
2020-01-04 21:16:10 -05:00
|
|
|
```
|
2016-02-26 11:39:14 -05:00
|
|
|
|
2016-10-10 20:27:09 -04:00
|
|
|
Some useful commands:
|
2016-02-26 11:39:14 -05:00
|
|
|
|
2016-02-27 03:35:01 -05:00
|
|
|
```bash
|
|
|
|
|
# Start local server (with hot reload)
|
2020-01-19 21:39:37 -05:00
|
|
|
$ make
|
2016-02-27 03:35:01 -05:00
|
|
|
|
2016-02-29 14:16:51 -05:00
|
|
|
# Run all tests
|
2016-10-10 20:27:09 -04:00
|
|
|
$ make test
|
2016-02-27 03:35:01 -05:00
|
|
|
```
|
2016-02-26 11:39:14 -05:00
|
|
|
|
2016-03-13 12:33:40 -04:00
|
|
|
### Copying
|
2016-02-24 18:28:23 -05:00
|
|
|
|
2020-01-04 21:16:10 -05:00
|
|
|
CloudSonic - Copyright (C) 2017-2020 Deluan Cotts Quintao
|
2016-02-23 18:41:35 -05:00
|
|
|
|
2017-04-01 09:21:55 -04:00
|
|
|
The source code is licensed under GNU Affero GPL v3. License is available [here](/LICENSE)
|