Opndrive is an open-source web UI for Amazon S3 and S3-compatible storage. Think Google Drive or Dropbox, but instead of your files living on someone else's servers, they live in a bucket you own and control.
Most cloud storage products ask you to trust them with your files. Opndrive
inverts that: you connect your own S3 bucket, and every file operation happens
directly between your browser and AWS. There's no Opndrive-operated server in
between, and no Opndrive-operated database - your AWS credentials live in your
browser's localStorage, nowhere else.
- A file browser that behaves like a native file manager: folders, grid/list views, search.
- Upload with progress tracking, including multipart uploads for large files and multiple upload strategies (see Uploading Files).
- In-browser preview for images, PDFs, and text files, both as a quick modal and as a shareable full-page route (see Previewing Files).
- Rename, delete, and move for files and folders.
- Dark and light themes.
- Support for any S3-compatible endpoint - AWS, MinIO, DigitalOcean Spaces - not just AWS itself.
graph LR
Browser["Your Browser"] -->|renders| Frontend["frontend/<br/>Next.js 15 app"]
Frontend -->|imports| S3API["s3-api/<br/>@opndrive/s3-api<br/>(workspace package)"]
S3API -->|signed requests| S3[("Your S3 Bucket")]
There's no backend server. Local development is tied together by
pnpm-workspace.yaml, so the frontend uses the local @opndrive/s3-api
workspace package. See
Repository Structure for the full map.
Tech stack: Next.js 15, React 19, TypeScript, Tailwind CSS, Zustand + React Context for state, Vitest for testing.
| I want to... | Go to |
|---|---|
| Run Opndrive and upload a file | Installation |
| Deploy it somewhere | Deployment |
| Understand the codebase | Codebase Tour |
| Make my first code contribution | First Contribution |
| Understand the release/branch process | Maintainers |