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.exempleto.envand 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 startYou 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 --buildThe application will be available on http://localhost:8000 and the database
will be created from schema.sql on first start.
