3.4 KiB
Drive Deployment Documentation
This document covers everything you need to know to deploy and manage the Drive application. The stack consists of a high-performance Go + SQLite backend and a Next.js frontend, bundled together into a single, lightweight Docker container.
Architecture & System Requirements
- Backend: Go (Fiber) running in WAL mode with SQLite for exceptional concurrency.
- Frontend: Next.js compiled into static assets served directly by the Go binary for optimal performance.
- Media Support: Built-in FFmpeg processing for video thumbnails and fast image resizing.
- Data Persistence: A single
/app/datavolume containing both your raw files and the SQLite metadata database (drive.db).
Recommended Specs
- CPU: 1-2 Cores (More cores significantly accelerate FFmpeg video thumbnailing)
- RAM: 512MB minimum (1GB+ recommended for large concurrent video uploads)
- Storage: Sufficient space for your files.
Deploying on Unraid
The application is heavily optimized for Unraid and native folder structures.
- Port Configuration: The default internal port is
5827. You can easily map this to any available port on your Unraid host using the Docker template or Compose file. - Volume Mapping: Map your Unraid array (e.g.,
/mnt/user/Drive) to the/app/datacontainer path.
Docker Compose Example
services:
drive:
build: .
container_name: drive
ports:
- "5827:5827"
volumes:
# Map your Unraid array path here
- /mnt/user/Drive:/app/data
restart: unless-stopped
environment:
- PORT=5827
First-Run Setup
- Start the container:
docker-compose up -d - Open your browser to
http://<your-unraid-ip>:5827. - You will be greeted by the First-Run Wizard.
- Create your initial admin account (username and password).
- (Recommended) Enable 2FA in the Settings menu once logged in for additional security against brute-force attacks.
Core Features & Maintenance
File Versioning
When enabled in Settings, any time a file is overwritten (via web UI, WebDAV, or Tus upload), the older version is automatically moved to the hidden .versions/ directory. Older versions are pruned automatically based on your Settings configuration.
WebDAV Access
Drive supports native OS mounting via WebDAV (Windows Explorer, macOS Finder).
- URL:
http://<your-unraid-ip>:5827/webdav/ - Authentication: Use your standard Drive username and password.
Automated Backups
The container runs a daily background worker that safely executes a sqlite3 .backup command to create drive.db.backup in your /app/data folder. This ensures your metadata (share links, settings, users) is protected even if the live database encounters an issue during a power loss.
Security Features
- Path Jailing: All file operations are rigorously sanitized and jailed to the
/app/datadirectory to prevent directory traversal attacks (../exploits). - Brute-Force Protection: The login API employs an exponential backoff mechanism.
- JWT Authentication: Short-lived access tokens with secure refresh token rotation.
- Rate Limiting: Public share endpoints are rate-limited to prevent abuse and denial-of-service against the backend.
- Zip Slip Prevention: The background archive extraction worker explicitly sanitizes all incoming archive paths before writing them to the disk.