Features
A complete media management platform built for self-hosting. No bloat, no tracking, no SaaS pricing — just the features that matter.
A real file manager — not just a photo dump.
Create folders inside folders, as deep as you need. My Drive is the unified home screen for every file type — photos, videos, PDFs, Office docs, archives, and anything else.
Drag one file, a multi-selection, or an entire folder straight onto another folder tile or a breadcrumb to move it — with live drop-target highlighting and instant UI updates, no dialog required.
Every folder view shows a full breadcrumb trail back to My Drive. Click any crumb to jump up, or drop a drag onto it to move items straight there.
Rename or move any folder via its kebab menu or the Move to… picker, which shows your full folder tree indented by depth. Deleting a folder sends its files to Trash and cascades to child folders.
Upload photos, videos, PDFs, Office documents, archives, or anything else — YourDrive accepts every file type by default. Only known-safe types render inline; everything else downloads as an attachment.
Enter selection mode by clicking any tile's checkbox. Select individual files or all visible items. Move, delete, favourite, restore, or un-favourite in a single action.
A dedicated timeline for your photos and videos.
The Media view groups photos and videos by month and year. Browse your entire visual history at a glance — just like Google Photos — separate from the general-purpose Drive.
Instantly filter your library by filename, media type (all, photos, or videos), or date range. Results update as you type. "All" combines photos and videos — other file types stay in My Drive.
Click any photo or video to open it in a fullscreen lightbox. Navigate with arrow keys or click. Videos load with a signed URL for proper seeking support.
Uploaded videos get a poster frame extracted via ffmpeg, streamed straight from storage with no temp files. If a poster isn't available yet, the grid falls back to the browser's own live first frame.
Star any photo or video with a single click. Access your entire favourites collection — across every file type — in a dedicated page.
Deleted files enter a 30-day trash bin. Restore them individually or in bulk, or permanently delete when you're sure. No accidental data loss.
Efficient, flexible, and secure file handling.
Files flow directly from the browser to your storage provider via the YourDrive server acting as an authenticated stream proxy. Nothing is written to the server disk — not even temporarily.
Drop files directly onto a folder view to upload into it, or use the folder picker after upload. Multiple files upload with per-file progress and cancellation.
By default YourDrive accepts every file type. The content endpoint only renders images, video, audio, PDF, and plain text inline — everything else is forced to download, so a stored HTML/JS file can never execute in your origin.
Downloads use time-limited pre-signed URLs from your storage provider — not proxied bandwidth. Files download at full storage-provider speed, with no load on the YourDrive server.
The default upload limit is 500 MB per file, configurable via the MAX_FILE_SIZE environment variable. Suitable for high-resolution photos and 4K video clips.
Video streaming via the content endpoint supports HTTP Range requests — browsers can seek to any position in a video without downloading the whole file first.
Connect to any object storage service you already use.
Full AWS S3 support with standard credentials (Access Key ID + Secret). Choose your region and bucket. All S3 regions and bucket configurations are supported.
Connect to Azure with a connection string. Files are uploaded using Azure's block blob streaming API, and signed URLs are generated with time-limited SAS tokens.
Self-hosted MinIO works out of the box. Set the endpoint URL and enable path-style URLs. Ideal for completely air-gapped deployments.
S3-compatible with zero egress fees. Enter your account ID as the endpoint. Does not require path-style URLs.
80% cheaper than S3 with no egress fees. Use the wasabisys.com endpoint with path-style enabled.
YourDrive inspects the endpoint you enter and reports the actual provider — Amazon S3, Cloudflare R2, Wasabi, MinIO, DigitalOcean Spaces, Backblaze B2, or "Custom S3 Compatible Storage" — in the sidebar and Settings, instead of a generic "S3 Connected" label.
Change your storage backend at any time from the admin UI. Credentials are re-encrypted and the cache is invalidated immediately. Existing files remain on the previous storage.
Secure by default, configurable by design.
Storage credentials (AWS keys, Azure connection strings) are encrypted with AES-256-GCM using your ENCRYPTION_KEY before being written to the database. They are decrypted in memory only when needed.
All API endpoints require a JWT bearer token. Tokens are signed with your JWT_SECRET and expire after 7 days (configurable). The frontend auto-renews by logging in again.
The first registered user becomes admin automatically. Subsequent users are regular users. Admins have access to storage configuration. Regular users can only manage their own files.
A dedicated Users page lets admins invite new accounts, promote or demote admins, and remove users — all from the UI, with no database access required.
Admins configure the storage backend entirely through a UI — no SSH access, no config file editing. Test the connection before saving. Credentials are never exposed in the UI after saving.
On first login, the admin is guided through a step-by-step storage setup wizard. Non-admin users see a friendly message until storage is configured.
All API endpoints are protected with a 200 req/min rate limit per IP. Authentication endpoints have stricter limits to prevent brute-force attacks.
Built for real-world production deployments.
A single install script sets up Docker if it's missing, generates secrets, and starts the whole stack — app server, PostgreSQL, everything — on your server.
Separate development (ts-node-dev with hot reload) and production (compiled JS, minimised image) stages. Production images use nginx to serve the frontend.
All metadata (users, files, storage config) is stored in PostgreSQL. Prisma ORM provides type-safe queries and zero-downtime migrations.
Source directories are volume-mounted into development containers. TypeScript changes in the backend restart instantly via ts-node-dev. Frontend changes use Vite HMR.
In production, a multi-stage Dockerfile builds the React app and serves it via nginx with correct SPA routing and long-lived asset caching.
Storage credentials are loaded from the database, not environment variables. Multiple backend instances can share the same database and storage configuration.