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.

Elm 85.4%
TypeScript 10.1%
CSS 1.7%
JavaScript 0.7%
Just 0.7%
Haskell 0.6%
HTML 0.5%
Nix 0.3%
Dockerfile 0.1%
Shell 0.1%
Other 0.1%
1426 2 0

Clone this repository

https://tangled.org/tokono.ma/diffuse https://tangled.org/did:plc:qvgds53otyohus5lfcfjssk2/diffuse
git@tangled.org:tokono.ma/diffuse git@tangled.org:did:plc:qvgds53otyohus5lfcfjssk2/diffuse

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md
Diffuse

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.


Integrations#

Music layer for music storage. User layer for user-data storage.

Music layer#

User layer#


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 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

Building it yourself#

This project uses Nix 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).

# 🍱

# 0. Install the Nix package manager
# https://nixos.org/download.html

# 1. Setup environment
nix develop

# 2. Install js dependencies
just install-deps

# 3. Build, start server & watch for changes
just