Step-by-step instructions for installing ViTransfer on various platforms.
# 1. Download
git clone https://github.com/yourusername/vitransfer.git && cd vitransfer
# 2. Configure
cp .env.example .env
nano .env # Set ADMIN_EMAIL, ADMIN_PASSWORD, and generate secrets
# 3. Generate secrets
echo "ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env
echo "JWT_SECRET=$(openssl rand -base64 64)" >> .env
echo "JWT_REFRESH_SECRET=$(openssl rand -base64 64)" >> .env
echo "SHARE_TOKEN_SECRET=$(openssl rand -base64 64)" >> .env
echo "POSTGRES_PASSWORD=$(openssl rand -base64 32)" >> .env
echo "REDIS_PASSWORD=$(openssl rand -base64 32)" >> .env
# 4. Start
docker-compose up -d
# 5. Access
# Open http://localhost:4321- Docker 20.10+ and Docker Compose 2.0+
- 4GB+ RAM
- 20GB+ disk space
- Linux, Windows (WSL2), or macOS
Option A: Git Clone
git clone https://github.com/yourusername/vitransfer.git
cd vitransferOption B: Download ZIP
- Download from GitHub releases
- Extract to your preferred location
- Navigate to the folder
Create .env from template:
cp .env.example .envEdit .env and set these required values:
# Change these!
ADMIN_EMAIL=[email protected]
ADMIN_PASSWORD=YourSecurePassword123!
# Generate these (see next step)
POSTGRES_PASSWORD=
REDIS_PASSWORD=
ENCRYPTION_KEY=
JWT_SECRET=
JWT_REFRESH_SECRET=
SHARE_TOKEN_SECRET=Linux/Mac:
# All in one command
cat >> .env << 'EOF'
POSTGRES_PASSWORD=$(openssl rand -base64 32)
REDIS_PASSWORD=$(openssl rand -base64 32)
ENCRYPTION_KEY=$(openssl rand -base64 32)
JWT_SECRET=$(openssl rand -base64 64)
JWT_REFRESH_SECRET=$(openssl rand -base64 64)
SHARE_TOKEN_SECRET=$(openssl rand -base64 64)
EOFWindows (PowerShell):
# Generate each value
$bytes = New-Object byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($bytes)
[Convert]::ToBase64String($bytes)
# Copy output and paste into .env fileOnline Tool (if OpenSSL not available):
- Use: https://generate-secret.vercel.app/32 (for 32-byte keys)
- Use: https://generate-secret.vercel.app/64 (for 64-byte secrets)
docker-compose up -dFirst startup takes 2-5 minutes:
- Downloads images (~500MB)
- Initializes database
- Runs migrations
- Starts worker
Check services are running:
docker-compose psYou should see all services "Up":
NAME STATUS
vitransfer-app Up (healthy)
vitransfer-worker Up (healthy)
vitransfer-postgres Up (healthy)
vitransfer-redis Up (healthy)
View logs if needed:
docker-compose logs -f app- Open browser to
http://localhost:4321 - Login with your
ADMIN_EMAILandADMIN_PASSWORD - Complete initial setup:
- Settings > Domain Configuration
- Settings > Email Configuration (optional)
- Create your first project!
See README.md section "Unraid Installation" or use the provided template.
See README.md section "TrueNAS SCALE Installation" or use truenas-app.yaml.
See README.md for NAS-specific instructions.
For production use with a custom domain, set up a reverse proxy with HTTPS.
See README.md section "Reverse Proxy Setup" for Nginx/Traefik/Caddy examples.
- Go to Settings > Email Configuration
- Add your SMTP server details
- Test the connection
- Save settings
- Projects > New Project
- Add client information
- Upload videos
- Share link with client
# Check specific service logs
docker-compose logs postgres
docker-compose logs redis
# Restart services
docker-compose restart# Verify DATABASE_URL in .env is correct
# Should be: postgresql://vitransfer:PASSWORD@postgres:5432/vitransfer?schema=public
# Check PostgreSQL is running
docker-compose ps postgres
# Reset if needed
docker-compose down -v # WARNING: Deletes all data!
docker-compose up -d# Check disk space
df -h
# Check permissions
ls -la ./ # Should show volumes directory
# Check logs
docker-compose logs app | grep upload- Verify ADMIN_EMAIL and ADMIN_PASSWORD in
.env - Check there are no extra spaces
- Try resetting: edit
.env, rundocker-compose restart app
# Backup first!
docker-compose down
cp -r volumes volumes-backup
# Update
docker-compose pull
docker-compose up -d
# Verify
docker-compose logs -f app# Stop and remove containers
docker-compose down
# Remove volumes (WARNING: Deletes all data!)
docker-compose down -v
# Remove images
docker rmi vitransfer/vitransfer:latest postgres:16-alpine redis:7-alpine- Check logs:
docker-compose logs - GitHub Issues: Report bugs and request features
- README.md: Full documentation
Installation complete! 🎉
Next steps:
- Create your first project
- Upload a video
- Share with a client
- Collect feedback