Open-Source modern UI for S3 Compatible Storage Services
Opndrive is a modern, open-source web UI for Amazon S3 and S3-compatible storage services. Think of it like Google Drive or Dropbox, but instead of giving up control, you connect your own storage backend - AWS S3.
- Your Data, Your Control - Files stored in YOUR S3 bucket, not ours
- Modern Interface - Built with Next.js 15, TypeScript, and Tailwind CSS
- Direct Upload - Browser-to-S3 uploads with multipart support for large files
- Responsive Design - Works perfectly on desktop, tablet, and mobile
- Beautiful UI - Clean, intuitive interface inspired by modern file managers
-
Clone and Install
git clone https://github.com/Opndrive/opndrive.git cd opndrive pnpm install cd frontend; pnpm install
-
Start the App
cd frontend pnpm dev -
Open Your Browser
- Go to http://localhost:3000
- Click Get Started
- Enter your AWS S3 credentials in the UI
- Start managing your files!
-
Run the Container
docker run -d --restart unless-stopped --name opndrive -p 3000:3000 opndrive/opndrive:1.0.0
-
Open Your Browser
- Go to http://localhost:3000
- Click Get Started
- Enter your AWS S3 credentials in the UI
- Start managing your files!
New to the Project? Start with our Beginner's Guide
Ready to Contribute? Check out our Development Setup
Opndrive uses a modern, feature-based architecture:
opndrive/
├── frontend/ # Next.js 15 web application
├── s3-api/ # S3 integration layer
└── docs/ # Comprehensive documentation
- Frontend: Next.js 15, React, TypeScript, Tailwind CSS
- Storage: Amazon S3 (or S3-compatible services)
- State Management: Zustand + React Context
- UI Components: Radix UI + Custom Design System
- File Uploads: Direct browser-to-S3 with multipart support
- Personal Cloud Storage - Secure file storage and sharing
- Team Collaboration - Share files with colleagues
- Media Management - Organize photos, videos, and documents
- Developer Assets - Store and manage project files and assets
- Business Documents - Secure document management for organizations
- File Browser - Navigate folders like a native file manager
- File Upload - button upload with progress tracking
- File Preview - View images, PDFs, and text files directly
- File Management - Rename, delete, download files
- Search - Find files quickly across your storage
- Multiple Upload Methods - Auto, signed-URL, multipart, concurrent
- Responsive Design - Works on all devices
- Dark/Light Theme - Choose your preferred interface
Our documentation is organized for different audiences:
- What You Need - Software requirements
- Quick Setup - Get running in 10 minutes
- Understanding the Code - Project tour
- Development Setup - Complete setup guide
- Project Structure - How code is organized
- Contributing Guide - How to contribute
- Frontend Architecture - Technical architecture
- Component Guidelines - Component patterns
We welcome contributions from developers of all skill levels!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Report bugs - Help us find and fix issues
- Suggest features - Share your ideas for improvements
- Improve docs - Help make our documentation better
- Design improvements - Enhance the user interface
- Add tests - Help improve code quality
- Translations - Help make Opndrive available in more languages
- Node.js 18+
- PNPM 8+
- Git
# Install dependencies
pnpm install
# Start development server
cd frontend && pnpm dev
# Run tests
pnpm test
# Check code quality
pnpm lintOpndrive frontend can be deployed to any platform that supports Next.js applications.
- All file operations use secure AWS API calls
- No files pass through our servers - direct browser-to-S3 communication
- Your AWS credentials are stored locally in your browser
- Open source - you can audit all code yourself
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
- Built with Next.js and React
- Styled with Tailwind CSS
- CRUD operations powered by AWS SDK for JavaScript v3
- UI components from Radix UI, Shadcn UI
- Icons from Lucide, React Icons
- Documentation: Check our docs folder
- Bug Reports: Create an issue
- Contact: Create an issue for any questions
If you find Opndrive useful, please consider giving us a star on GitHub!
Made with ❤️ by the Opndrive Team