jmarsh24 / tangocloud

This is tango music streaming platform
https://tangocloud.app
3 stars 1 forks source link
music music-player tango

Tangocloud.app

Tangocloud.app

Release

api

Technically the project is built using the lastest Ruby and Rails goodies such as Hotwire, SolidQueue, SolidCache. For the front end part we use Vite, Tailwind and Stimulus.

It is deployed on an [Hetzner VPS]() with Kamal with Postgres as the main database.

Getting Started

We have tried to make the setup process as simple as possible so that in a few commands you can have the project with real data running locally.

Requirements

Setup

To prepare your database and seed content, run:

bin/setup

Environment Variables

You can use the .env.sample file as a guide for the environment variables required for the project. However, there are currently no environment variables necessary for simple app exploration.

Elasticsearch

Tangocloud.app search uses Elasticsearch as a search engine.

To start the app, you need to have a Elasticsearch service started. There is a Docker Compose available

In a new terminal :

docker-compose up

Starting the Application

The following command will start Rails, SolidQueue, SolidCache, and Vite (for CSS and JS).

bin/dev

Before committing your code you can run bin/rubocop and bin/yarn lint to detect and potentially autocorrect lint errors.

To follow Tailwind CSS's recommended order of classes, you can use Prettier along with the prettier-plugin-tailwindcss, both of which are included as devDependencies. This formating is not yet enforced by the CI.

License

Tangocloud.app is open source and available under the MIT License. For more information, please see the License file.

Useful Rake Tasks

Update El Recodo Seed Data

The El Recodo seed data is stored in SQL files under db/seeds. The seeds can be updated by running the rake task below. bin/rails db:export:el_recodo

Import Audio Files From Music Folder

The music folder on your computer is mounted to the devcontainer. To import these files into the application you can run this rake task. bin/rails audio_files:import_from_music