Deploy tusd

tusd 2.10: resumable file uploads over the tus protocol, token-protected.

Deploy tusd

Just deployed

/srv/tusd-data

Deploy and Host tusd on Railway

tusd is the official reference server for tus, the open protocol for resumable file uploads. Clients upload in chunks and can resume after a dropped connection instead of starting over. Client libraries exist for browsers, iOS, Android, Node.js, Python and more, including Uppy, a popular upload widget.

About Hosting tusd

This template runs the official tusproject/tusd:v2.10.1 image with its upload endpoint at /files/ on a public HTTPS domain. Finished and partial uploads are stored on a Railway volume. By default, a pre-create hook accepts new uploads only when the request carries Authorization: Bearer . To decide per user instead, set TUSD_HOOKS_HTTP to an endpoint in your own backend, and tusd will ask it before accepting each upload. Uploads are capped at 1 GiB each by default. A finished upload can be downloaded from its unguessable URL. tusd runs as an unprivileged user.

Common Use Cases

  • Large file uploads from web and mobile apps that must survive flaky connections
  • An Uppy upload backend that your app authorizes with a token or hook
  • Collecting media or datasets before your backend processes them

Dependencies for tusd Hosting

  • tusproject/tusd:v2.10.1 (official image)
  • A Railway volume at /srv/tusd-data (Hobby 5 GB, Pro 50 GB by default)

Deployment Dependencies

Implementation Details

ServiceSourceNetworkingStorage
tusdtusproject/tusd:v2.10.1public HTTPS, endpoint /files/volume at /srv/tusd-data
VariableDefaultPurpose
TUSD_UPLOAD_TOKENgeneratedBearer token the built-in hook requires for new uploads
TUSD_HOOKS_HTTPemptyYour backend's hook URL; when set, it replaces the token check
TUSD_MAX_SIZE1073741824Largest upload in bytes
TUSD_ENDPOINThttps:///files/Endpoint for your clients

Uppy example:

uppy.use(Tus, { endpoint: TUSD_ENDPOINT, headers: { Authorization: `Bearer ${token}` } })

Notes:

  • With TUSD_HOOKS_HTTP, tusd forwards the Authorization and Cookie headers to your hook, so it can check the user's session.
  • A browser can only use the shared token if it is sent to the browser. For public apps, prefer the HTTP hook or short-lived tokens issued by your backend.
  • /metrics (Prometheus) is public and used as the health check.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by the tus project or Transloadit.

Why Deploy tusd on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying tusd on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play.

PROJETOS
8
View Template
Redis
Self Host Latest Redis with Railway

8
View Template
EasyImg
Simple self-hostable Nuxt.js personal image hosting system.

Muhammad Bilal
0