a dumb frontend for just getting some got damned songs
Go to file
Jill 698c4baf3a better searchbar 2022-08-19 11:39:49 +03:00
app better searchbar 2022-08-19 11:39:49 +03:00
docs fill in readme 2021-10-20 00:12:19 +03:00
src list correct artists in collab tracks 2022-08-19 10:22:55 +03:00
.env.example fcuking chrisnjgnhkj43 2021-10-19 10:22:31 +03:00
.gitignore get some logging in place 2021-10-21 21:21:51 +03:00
LICENSE Initial commit 2021-10-18 11:49:12 +00:00
README.md updated readme instructions 2022-08-18 10:37:18 +03:00
config.example.toml update deezer version 2022-01-02 16:51:32 +03:00
package.json toasts, autodownload 2022-08-19 00:41:49 +03:00
pnpm-lock.yaml toasts, autodownload 2022-08-19 00:41:49 +03:00
rollup.config.js asdf 2022-02-23 20:18:41 +03:00
tsconfig.json split everything into files 2021-10-23 20:33:00 +03:00

README.md

deemix-web-frontend

a dumb frontend for just getting some got damned songs

this is basically just a wrapper around deemix, specifically around deemix-js. it's main purpose is to serve as an easier, more accessible GUI to the deemix library.

it's intended use is for small groups of people to self-host, and as such there's barely any restrictions to the service and no "official" instance of it. anyone can visit the website, anyone can download a song and a single ARL is shared between all users of a server. there's currently no authentication or similar, but there's plans for an account system.

screenshots

dark theme light theme

usage

  1. create an .env file from the .env.example and enter your deezer ARL (i recommend signing up with an american VPN so less location blocks are enforced and metadata localization stays consistent)

    your arl can be found in the local storage for deezer, as a value conviniently named arl

  2. (optionally) copy the config.example.json to config.json in the same folder, and modify it

  3. npm install / pnpm install

  4. head to app/, run npm install / pnpm install there, followed by npm run build / pnpm run build

  5. install the zip linux tool into your path (there are currently no plans for windows support, however feel free to contribute)

  6. build the project with npm run build / pnpm build or just run it with npm run quickrun / pnpm run quickrun

  7. (optionally) put the service on pm2 like such: pm2 start src/index.js --name deemix-web-frontend (or just run it with node src/index.js)

nginx addenum

route data/ and public/ through nginx (as serving data through nginx, software optimized for this, would be faster and more secure) and api/ through localhost. be sure to add websocket-related header setters to your /api path:

proxy_pass http://localhost:4500/api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

your config should look similar to this:

location /data {
  root /home/oatmealine/deemix-web-frontend/;
  index test;
  try_files $uri $uri/ =404;
}

location /api {
  proxy_pass http://localhost:4500/api;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # optional but useful for logging
}

location / {
  root /home/oatmealine/deemix-web-frontend/app/dist/;
  index index.html;
  try_files $uri $uri/ =404;
}

none of the code in this repository reverses, surpasses or otherwise prevents the purpose of Deezer's DRM. all of the related code is done by an external library which has no affiliations with this project. this project simply serves as a GUI or front for said library. PLEASE ONLY USE THIS PIECE OF SOFTWARE FOR EDUCATIONAL PURPOSES!! none of the project's authors or contributors encourage piracy, and hold no warranties or responsibilities for use of the software provided.

attributions & contributors

  • deemix & deemix-js developers and contributors
  • aether for creating the light theme and helping design other parts of the website