[BREAKGLASS] An implementation of the TUS server protocol for resumable uploads
Go to file
Ravi Khadiwala f93b39d3b0
Some checks failed
CI / build (push) Has been cancelled
Update package version to 0.15.0
2026-04-10 13:20:14 -05:00
.github Bump actions/setup-node in the minor-actions-dependencies group 2026-04-10 12:27:23 -05:00
e2e Remove the deprecated basic auth paths 2026-03-30 10:32:18 -05:00
src Attempt to remove completed multi-part uploads after a checksum failure 2026-04-10 13:16:10 -05:00
.gitignore Squahsed history 2023-07-20 16:24:41 -05:00
.nvmrc update to node 24.14.0 2026-03-19 11:48:14 -05:00
eslint.config.mjs dependency updates 2025-02-14 13:23:41 -06:00
LICENSE Squahsed history 2023-07-20 16:24:41 -05:00
package-lock.json Update package version to 0.15.0 2026-04-10 13:20:14 -05:00
package.json Update package version to 0.15.0 2026-04-10 13:20:14 -05:00
README.md Update README.md 2025-02-13 17:04:41 -06:00
tsconfig.json Add explicit type check to build 2026-03-30 10:34:23 -05:00
vitest.config.ts Remove deprecated vitest.workspace configuration 2025-07-11 11:42:58 -05:00
worker-configuration.d.ts Use generated wrangler types 2026-03-19 11:42:48 -05:00
wrangler.toml Add new DO class to v2 migration 2023-10-02 17:47:51 -05:00

TUS Server

tus-server provides an implementation of the TUS protocol for resumable uploads built on cloudflare workers and R2.

Building

You'll need Node.js. If you use nvm run

nvm use

To install dependencies,

npm install

In order to deploy to cloudflare or use non-local dev mode, use the wrangler utility. Follow those instructions to authenticate with your cloudflare account.

Testing

The server assumes an authentication is provided via a signature using a shared secret. You can provide one for development by setting SHARED_AUTH_SECRET in .dev.vars, e.g.

> cat .dev.vars
SHARED_AUTH_SECRET = "test"

To run a dev server you can interact with over localhost

wrangler dev

To run unit tests,

npm test

Deploying

One time setup

  1. Create an R2 bucket and update the binding in wrangler.toml
  2. Add a base64 encoded shared auth secret with wrangler secret put SHARED_AUTH_SECRET
wrangler deploy -e <staging|production>

Contributing bug reports

We use GitHub for bug tracking. Security issues should be sent to security@signal.org.

Help

We cannot provide direct technical support. Get help running this software in your own environment in our unofficial community forum.

License

Copyright 2023 Signal Messenger, LLC

Licensed under the AGPLv3