The ability to find valuable or agreeable things not sought for.
— Merriam-Webster
This is a music recommendation app without algorithm. We want you to get pure random songs while allowing for simple and effective filtering.
We use the Discogs API as the data backbone for songs, and all the streaming is done via Youtube. Start listening and get ready to be surprised!
Requirements:
- Docker + Docker Compose
- Make (optional, for shortcuts)
Clone the repo and prepare the setup:
cp .env.example .env
# edit .env if neededBring up the stack:
make up
# or: docker compose up -dRun the database migrations:
make db_migrateThe app will be available at http://localhost:4000 (or the SERVER_PORT you set).
Environment variables live in .env:
SERVER_PORT- port for the web server (default4000)DB_DSN- Postgres connection string used by the appPOSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB- database settings for the container
Common commands (via make):
make up- start servicesmake down- stop servicesmake rebuild- rebuild and start servicesmake logs- follow all logsmake logs_web- follow web logsmake logs_db- follow database logsmake web_connect- shell into the web containermake db_connect- openpsqlin the database containermake db_migrate- run migrationsmake db_rollback- rollback last migration
Direct Docker Compose equivalents also work, for example: docker compose up -d.
For a brief overview of the system design and diagrams, see docs/architecture.md and the rest of the docs folder.