Skip to content

Getting Started

Blöbbu is a secure, resumable file upload service for Azure Blob Storage. It uses the tus protocol and JWT-based authorization to provide a stateless and scalable upload experience.

1. Run the Blöbbu Server

The easiest way to run Blöbbu is using Docker. It requires access to an Azure Blob Storage account.

Docker

Coming soon: how to run Blöbbu with Docker

Alternatively, you can use a blobbu.yaml configuration file. See the Server Configuration section for all available options.

2. Configure your App Server

Your App Server is responsible for authorizing uploads. It needs to generate a JWT signed with a private key. The corresponding public key must be provided to the Blöbbu server.

For details regarding the JWT, see Blöbbu Server.

Provide an endpoint for your frontend to request these tokens:

{
  "file-1": { "fileId": "urn:uuid:...", "token": "eyJhb..." }
}

For more details, see App Server Integration.

3. Integrate a Client

Since Blöbbu uses the tus protocol, you can use any compatible client.

Additionally, include the JWT you generated in the previous step as an authorization header in your requests using the Bearer scheme:

JavaScript example using the tus-js-client:

new tus.Upload(file, {
  endpoint: 'https://your-blobbu-server.com/files/',
  headers: {
    "Authorization": `Bearer ${jwtToken}`
  }
  metadata: {
    filename: file.name,
    filetype: file.type,
  },
  onError: function (error) {
    console.log('Upload failed: ' + error);
  },
  onSuccess: function () {
    console.log('Upload successful');
  },
}).start();

For web applications, we recommend using Uppy. It's a powerful, modular JavaScript file uploader that supports tus out of the box.

See the Frontend Integration guide for more details and examples using Uppy.