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.
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.
- Ruby 3.3.5
- Docker and docker-compose (for Elasticsearch)
- Node.js 20.11.0
- Elasicsearch 8.11
To prepare your database and seed content, run:
bin/setup
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.
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
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.
Tangocloud.app is open source and available under the MIT License. For more information, please see the License file.
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
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