Auch verfügbar in:
🇩🇪 Deutsch
Quick Start
Docker (one-liner)
docker run -d \
--name itsweber-send \
--restart unless-stopped \
-p 3000:3000 \
-v send-data:/data \
-e NODE_ENV=production \
-e BASE_URL=http://localhost:3000 \
--security-opt no-new-privileges:true \
--read-only --tmpfs /tmp:size=64M \
ghcr.io/itsweber/itsweber-send:latest
Open http://localhost:3000.
Web Crypto requires a secure context. Plain
http://works onlocalhost, but on any other hostname or IP you need HTTPS. See 02-docker-installation.md for the Caddy + TLS setup.
docker-compose
services:
itsweber-send:
image: ghcr.io/itsweber/itsweber-send:latest
container_name: itsweber-send
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- send-data:/data
environment:
NODE_ENV: production
BASE_URL: http://localhost:3000
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp:size=64M
volumes:
send-data:
First steps
- Open the web UI — drop one or more files into the upload zone
- Set an expiry, a download limit, and (optionally) a password
- Hit Verschlüsseln & hochladen — the browser encrypts client-side with AES-256-GCM
- Share either the long link (with
#k=…), the four-word code, or the QR code - The recipient opens the link — files are decrypted in their browser
Optional account
Click Konto in the navigation and register. The first registered user automatically becomes admin and gets the admin panel under /admin. Accounts unlock:
- Upload history with per-user quota tracking
- API tokens for programmatic uploads
- Two-factor authentication (TOTP)
- Audit log of all actions on your account
Configuration
Set environment variables to change behaviour. The minimum for production:
| Variable | Required | Description |
|---|---|---|
BASE_URL |
yes | Public URL of the service |
NODE_ENV |
yes | Set to production |
STORAGE_BACKEND |
no | filesystem (default) or s3 |
ENABLE_ACCOUNTS |
no | true (default) or false |
Full reference in the in-app docs at /docs/config or in docs/CONFIG.md.