Epico is a TypeScript based music streaming app that relies on the Deezer API. It lets you search for tracks, download them and manage your music library.
- Search and download songs from Deezer
- User management with authentication
- Automatic BPM analysis
- Email notifications
- Listening history and recommendations
- Clone the repository
git clone https://github.com/MyEcoria/epico.git cd epico
- Install dependencies
npm install
- Copy
.env.exemple
to.env
and edit the values - Build the project
npm run build
- Start the server
npm start
- Produce executables for Linux, macOS and Windows
npm run pkg:all
The worker/
directory contains a Bull-based service that processes downloads
and track analysis in the background. Run it with:
npm --prefix worker install
npm --prefix worker start
You can also build the worker using:
npm --prefix worker run build
- POST /user/register – register a user
- POST /user/login – log in
- GET /user/confirm/:id – confirm registration
- POST /music/search – search for a track
- GET /music/:id.mp3 – stream a track
- Database – set your connection variables in
.env
- SMTP – configure email settings in
.env
- S3 storage – add your S3 credentials to
.env
- Main source code in
src/
with utilities inmodules/
- Type definitions in
types/
- Background worker in
worker/
docker-compose up --build
The application will be available on http://localhost:8000
and the database
will be created from schema.sql
on first start.