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.

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- [Google Drive](https://drive.google.com/) 25- [IPFS](https://ipfs.io/) 26- [WebDAV](https://en.wikipedia.org/wiki/WebDAV) 27 28#### User layer 29 30- [Dropbox](https://www.dropbox.com/) 31- [Fission](https://fission.codes/) 32- [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) <small>(Browser)</small> 33- [IPFS](https://ipfs.io/) <small>(using MFS)</small> 34- [RemoteStorage](https://remotestorage.io/) 35 36 37 38--- 39 40 41 42### Hosting on your own server 43 44Diffuse 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. 45 46I 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. 47 48In short: 49- Diffuse is a static, serverless, web application 50- Routing is done using hashes/fragments (eg. `diffuse.sh/#/sources`) 51- Download a web build on the [releases](https://github.com/icidasset/diffuse/releases) page 52- Uses service workers (use HTTPS if possible) 53- May need own OAuth application credentials for some source services 54 55 56 57--- 58 59 60 61### Building it yourself 62 63This project uses [Nix](https://nixos.org/features.html) to manage the project's environment. If you'd like to build this project without Nix, check out the dependencies in the `nix/shell.nix` file (most are available through Homebrew as well). 64 65 66```shell 67# 🍱 68 69# 1. Setup Nix environment 70# https://nixos.org/download.html 71 72# 2. Install js dependencies 73just install-deps 74 75# 3. Build, start server & watch for changes 76just 77```