A music player that connects to your cloud/distributed storage, in the form of a static, serverless, web application.
๐ Available at diffuse.sh and for download.
Music layer for music storage. User layer for user-data storage.
- Dropbox
- Fission
- IndexedDB (Browser)
- IPFS (using MFS)
- RemoteStorage
Diffuse is a static web application, which means it's just HTML, CSS, and Javascript. No REST API, database, or anything backend-related involved. The app uses a hash (aka. fragment-based) routing system, so you don't need any special server rules for routing. You can download a pre-build web-only version of Diffuse on the releases page. Diffuse uses service workers, so you may need HTTPS for it to work smoothly in certain browsers.
I should also note that some source services use OAuth, so you'll need to use your own application credentials (eg. Google Drive client ID + secret). That said, if you're working locally, you can use http://localhost:8000
or http://127.0.0.1:44999
to use the default ones, that's what the old Electron app was using.
In short:
- Diffuse is a static, serverless web application
- Routing is done using hashes/fragments (eg.
diffuse.sh/#/sources
) - Download a web build on the releases page
- Uses service workers (use HTTPS if possible)
- May need own OAuth application credentials for some source services
This project can be built with Node.js.
# ๐ฑ
# 1. Install dependencies
npm install
# 2. Build
npx just build
# 3. Start static-file server
npx just server
# 4. Watch for changes (requires [watchexec](https://github.com/watchexec/watchexec/) to be installed)
npx just watch
# Alternatively, to build, serve & watch:
npx just