A music player that connects to your cloud & distributed storage

Return to the application
About

CORS

There's only one thing you need to do yourself so that the service you chose will work with the application, and that's setting up CORS (Cross-Origin Resource Sharing). Here are the instructions you'll need for each service:

Amazon S3

You can find the CORS configuration editor under the "Permissions" tab, on the S3 AWS Console.

[
    {
        "AllowedHeaders": [
            "Range",
            "X-Playback-Session-Id"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD"
        ],
        "AllowedOrigins": [
            "https://diffuse.sh",
            "http://127.0.0.1:44999"
        ],
        "ExposeHeaders": [
            "Accept-Ranges",
            "Content-Length",
            "Content-Range"
        ],
        "MaxAgeSeconds": 31536000
    }
]

Dropbox

Not necessary.

IPFS

Add the domain of the app, with the protocol, to the list of allowed origins.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh", "http://diffuse.sh.ipns.localhost:8080", "http://127.0.0.1:44999"]'

You can also make this change in the Web UI, you'll find it under "Settings → IPFS Config".

{
  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        ...                                         // Default IPFS values

        "https://diffuse.sh",                       // 🎵 Default
        "http://diffuse.sh.ipns.localhost:8080",    // IPNS through IPFS Companion
        "http://127.0.0.1:44999"                    // Electron app
      ]
    }
  }
}

Microsoft Azure Storage

You can find the CORS configuration under the "Settings -> CORS". Then fill in the following in the input boxes (left to right):

ALLOWED ORIGINS       *
ALLOWED METHODS       GET, HEAD
ALLOWED HEADERS       Range, X-Playback-Session-Id
EXPOSED HEADERS       Accept-Ranges, Content-Length, Content-Range
MAX AGE               0

WebDAV

Depends on your WebDAV server. Example setup for Henrique Dias's WebDAV server:

cors:
  enabled: true
  credentials: true

  allowed_headers:
    - Authorization
    - Depth
    - X-Playback-Session-Id
  allowed_methods:
    - GET
    - HEAD
    - PROPFIND
  allowed_hosts:
    - https://diffuse.sh
    - http://127.0.0.1:44999
  exposed_headers:
    - Accept-Ranges
    - Content-Length
    - Content-Range