OCI Artifact - Deploy directly from GitHub Container Registry
Open protocol and reference server for resumable file uploads. Tusd is the official reference implementation of the tus resumable upload protocol.
This is a Docker Compose OCI artifact, not a traditional Docker image. It contains a complete docker-compose.yml configuration that you can deploy directly using Docker 25.0+.
# 1. Create environment file
cat > .env.tus << 'EOF'
COMPOSE_PROJECT_NAME=tus
SERVICE_DOMAIN=tus.example.com
EOF
# 2. Deploy
bc tus up
# 3. Check status
bc tus psNote: Install the bc CLI with:
curl -fsSL https://raw.githubusercontent.com/beevelop/beecompose/main/scripts/install.sh | sudo bash
# 1. Create environment file
cat > .env.tus << 'EOF'
COMPOSE_PROJECT_NAME=tus
SERVICE_DOMAIN=tus.example.com
EOF
# 2. Deploy from GHCR
docker compose -f oci://ghcr.io/beevelop/tus:latest --env-file .env.tus up -d --pull always
# 3. Check status
docker compose -f oci://ghcr.io/beevelop/tus:latest --env-file .env.tus ps- Docker 25.0+ (required for OCI artifact support)
- Docker Compose v2.24+
- Traefik reverse proxy (see traefik)
| Container | Image | Purpose |
|---|---|---|
| tus | tusproject/tusd:v2.8.0 | TUS upload server |
| Variable | Description | Example |
|---|---|---|
SERVICE_DOMAIN |
Domain for the TUS server | tus.example.com |
| Variable | Description | Default |
|---|---|---|
COMPOSE_PROJECT_NAME |
Docker Compose project name | tus |
| Volume | Purpose |
|---|---|
tus_app_data |
Uploaded file storage |
- Access the TUS server at
https://tus.example.com - Test uploads using a TUS client library or the official tus-js-client
- Configure hooks for post-upload processing (optional)
# Test with curl
curl -X POST https://tus.example.com/files \
-H "Tus-Resumable: 1.0.0" \
-H "Upload-Length: 100"Mount a hooks directory to /srv/tusd-hooks for custom post-upload processing:
pre-create- Before upload startspost-create- After upload slot createdpost-finish- After upload completespost-terminate- After upload terminated
bc tus logs -f # View logs
bc tus restart # Restart
bc tus down # Stop
bc tus update # Pull and recreate# Define alias for convenience
alias dc="docker compose -f oci://ghcr.io/beevelop/tus:latest --env-file .env.tus"
# View logs
dc logs -f
# Restart
dc restart
# Stop
dc down
# Update
dc pull && dc up -dEnsure your application's domain is allowed. You may need to add CORS headers via Traefik middleware.
Check available disk space on the volume and server memory limits.
Check logs with dc logs tus and ensure all required environment variables are set.