Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/icidasset/diffuse
A music player that connects to your cloud/distributed storage.
https://github.com/icidasset/diffuse
cloud decentralized distributed elm ipfs music music-library music-player
Last synced: 2 days ago
JSON representation
A music player that connects to your cloud/distributed storage.
- Host: GitHub
- URL: https://github.com/icidasset/diffuse
- Owner: icidasset
- License: other
- Created: 2017-01-29T16:49:25.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2024-09-15T17:16:19.000Z (4 months ago)
- Last Synced: 2024-10-29T14:18:52.899Z (3 months ago)
- Topics: cloud, decentralized, distributed, elm, ipfs, music, music-library, music-player
- Language: Elm
- Homepage: https://diffuse.sh
- Size: 62.9 MB
- Stars: 811
- Watchers: 24
- Forks: 68
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - icidasset/diffuse - A music player that connects to your cloud/distributed storage. (Elm)
- awesome-ipfs - Diffuse - Play music from your IPFS node, or any other cloud/distributed storage service you use. (Apps)
- awesome-starred - icidasset/diffuse - A music player that connects to your cloud/distributed storage. (ipfs)
README
_A music player that connects to your cloud/distributed storage,
in the form of a static, serverless, web application._📍 Available at [diffuse.sh](https://diffuse.sh/) and for [download](https://github.com/icidasset/diffuse/releases).
### Integrations
Music layer for music storage.
User layer for user-data storage.#### Music layer
- [Amazon S3](https://aws.amazon.com/s3/)
- [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/)
- [Azure File Storage](https://azure.microsoft.com/en-us/services/storage/files/)
- [Dropbox](https://dropbox.com/)
- [Google Drive](https://drive.google.com/)
- [IPFS](https://ipfs.io/)
- [WebDAV](https://en.wikipedia.org/wiki/WebDAV)#### User layer
- [Dropbox](https://www.dropbox.com/)
- [IPFS](https://ipfs.io/) (using MFS)
- [RemoteStorage](https://remotestorage.io/)---
### Hosting on your own server
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](https://github.com/icidasset/diffuse/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](https://github.com/icidasset/diffuse/releases) page
- Uses service workers (use HTTPS if possible)
- May need own OAuth application credentials for some source services---
### Building it yourself
This project can be built with [Node.js](https://nodejs.org/).
```shell
# 🍱# 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
```