-
Notifications
You must be signed in to change notification settings - Fork 2
Installation
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8 GB |
| Disk | 20 GB | Depends on video library size |
| Storage type | HDD | SSD strongly recommended |
| Architecture | x86_64 (amd64) or ARM64 | — |
| OS | Any Linux with Docker, macOS, or Windows (WSL2) | Linux |
Why SSD?
ViTransfer is I/O intensive across the stack. PostgreSQL and Redis perform frequent small reads/writes for sessions, job queues, and metadata. FFmpeg reads large source files and writes transcoded output simultaneously. During upload, TUS writes chunks to disk in real-time. On a spinning disk these operations compete for the same read/write head, creating bottlenecks that slow down transcoding, increase upload latency, and can cause BullMQ job timeouts. An SSD eliminates this bottleneck with parallel random I/O.
| Dependency | Version | Notes |
|---|---|---|
| Docker | 20.10+ | Required |
| Docker Compose | v2+ | Included with Docker Desktop |
No other software is needed. The Docker image bundles everything internally: Node.js, FFmpeg, PostgreSQL client, Redis client, and all application dependencies.
-
Port 4321 (default, configurable via
APP_PORT) must be available on the host. - All internal services (PostgreSQL, Redis) communicate over an isolated Docker network and are not exposed to the host.
- For production use behind a reverse proxy, see the Security page for HTTPS and header configuration.
- Download configuration files:
mkdir vitransfer && cd vitransfer
curl -O https://raw.githubusercontent.com/MansiVisuals/ViTransfer/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/MansiVisuals/ViTransfer/main/.env.example- Create and edit
.env:
cp .env.example .env
nano .env- Generate secrets:
openssl rand -hex 32 # POSTGRES_PASSWORD (hex/URL-safe)
openssl rand -hex 32 # REDIS_PASSWORD (hex/URL-safe)
openssl rand -base64 32 # ENCRYPTION_KEY
openssl rand -base64 64 # JWT_SECRET
openssl rand -base64 64 # JWT_REFRESH_SECRET
openssl rand -base64 64 # SHARE_TOKEN_SECRET- Start:
docker-compose up -d- Access:
http://localhost:4321and login with your admin credentials.
- Clone the repo:
git clone https://github.com/MansiVisuals/ViTransfer.git
cd ViTransfer-
Configure
.envas above. -
Build and start:
docker-compose up -d --build- Access:
http://localhost:4321.
- Admin and client share flows use bearer tokens in the
Authorizationheader only. - Admin login/refresh returns
{ tokens: { accessToken, refreshToken } }. - Share links issue short-lived share tokens after password/OTP/guest entry.
- Legacy sessions are invalidated on upgrade; users must re-login.
Navigation: Home | Features | Installation | Platform Guides | Configuration | Admin Settings | Usage Guide | Client Guide | Security | Maintenance | Troubleshooting | Screenshots | Contributing | License