A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 79 lines 2.6 kB view raw view rendered
1<img src="https://diffuse.sh/images/diffuse-dark.svg" alt="Diffuse" width="158" /> 2 3_A music player that connects to your cloud/distributed storage, 4in the form of a static, serverless, web application._ 5 6📍 Available at [diffuse.sh](https://diffuse.sh/) and for [download](https://github.com/icidasset/diffuse/releases). 7 8<br /> 9<img src="https://icidasset-public.s3.amazonaws.com/diffuse-v3.jpg" /> 10 11 12 13### Integrations 14 15Music layer for music storage. 16User layer for user-data storage. 17 18#### Music layer 19 20- [Amazon S3](https://aws.amazon.com/s3/) 21- [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/) 22- [Azure File Storage](https://azure.microsoft.com/en-us/services/storage/files/) 23- [Dropbox](https://dropbox.com/) 24- [IPFS](https://ipfs.io/) 25- [WebDAV](https://en.wikipedia.org/wiki/WebDAV) 26 27#### User layer 28 29- [Dropbox](https://www.dropbox.com/) 30- [IPFS](https://ipfs.io/) <small>(using MFS)</small> 31- [RemoteStorage](https://remotestorage.io/) 32 33 34 35--- 36 37 38 39### Hosting on your own server 40 41Diffuse 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](https://github.com/icidasset/diffuse/releases) page. Diffuse uses service workers, so you may need HTTPS for it to work smoothly in certain browsers. 42 43I should also note that some source services use OAuth, so you'll need to use your own application credentials (eg. Dropbox). 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. 44 45In short: 46- Diffuse is a static, serverless web application 47- Routing is done using hashes/fragments (eg. `diffuse.sh/#/sources`) 48- Download a web build on the [releases](https://github.com/icidasset/diffuse/releases) page 49- Uses service workers (use HTTPS if possible) 50- May need own OAuth application credentials for some source services 51 52 53 54--- 55 56 57 58### Building it yourself 59 60This project can be built with [Node.js](https://nodejs.org/). 61 62```shell 63# 🍱 64 65# 1. Install dependencies 66npm install 67 68# 2. Build 69npx just build 70 71# 3. Start static-file server 72npx just server 73 74# 4. Watch for changes (requires [watchexec](https://github.com/watchexec/watchexec/) to be installed) 75npx just watch 76 77# Alternatively, to build, serve & watch: 78npx just 79```