/black_candy

A self hosted music streaming server

Primary LanguageRubyMIT LicenseMIT

Black candy logo

Black candy

Build status

Black candy is a self hosted music streaming server built with Rails and Stimulus. The goal of the project is to create a real personal music center.

Screenshot

screenshot

Getting started

Black candy use docker for simplify deployment, development and test process. So you should install docker and docker-compose first.

Black candy support mp3, m4a, ogg, opus, flac and wav formats now.

Installation

Black candy has built docker images.

First, you need clone this project to your server.

$ git clone https://github.com/aidewoode/black_candy.git

Second, set BLACK_CANDY_MEDIA_PATH and BLACK_CANDY_SECRET_KEY_BASE environment variable on your sever and point BLACK_CANDY_MEDIA_PATH to the readable directory on your server to store your music files.

# Like this
$ export BLACK_CANDY_MEDIA_PATH="/example_media_path"
$ export BLACK_CANDY_SECRET_KEY_BASE="your_secret_key"

Then, you should setup database

$ make production_setup 

Finally run:

$ docker-compose up -d

# or

$ make production_run

That's all.

You can use initial admin user to login (email: admin@admin.com, password: foobar).

You can also change docker-compose.yml for your own needs.

Development

# Clone the repo
$ git clone https://github.com/aidewoode/black_candy.git

# Setup development environment
$ make dev_setup

# Runing development server
$ make dev_run

# Stop development server
$ make dev_stop

# Into development shell
$ make dev_shell

Test

# Setup test environment
$ make test_setup

# Runing test
$ make test_run

# Runing lint
$ make test_run_lint

# Into test shell
$ make test_shell

Integrations

Black candy support get artist and album image from Discogs API. You can create a API token from Discogs and set Discogs token on Setting page to enable it.