Skip to content

Opndrive/opndrive

opndrive

Opndrive

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.

What Makes Opndrive Special?

  • 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

Quick Start

For Users (Just Want to Use It)

Option 1: Run Locally

  1. Clone and Install

    git clone https://github.com/Opndrive/opndrive.git
    cd opndrive
    pnpm install
    cd frontend; pnpm install
  2. Start the App

    cd frontend
    pnpm dev
  3. Open Your Browser

    • Go to http://localhost:3000
    • Click Get Started
    • Enter your AWS S3 credentials in the UI
    • Start managing your files!

Option 2: Run with Docker

  1. Run the Container

    docker run -d --restart unless-stopped --name opndrive -p 3000:3000 opndrive/opndrive:1.0.0
  2. Open Your Browser

    • Go to http://localhost:3000
    • Click Get Started
    • Enter your AWS S3 credentials in the UI
    • Start managing your files!

For Developers

New to the Project? Start with our Beginner's Guide

Ready to Contribute? Check out our Development Setup

Architecture

Opndrive uses a modern, feature-based architecture:

opndrive/
├── frontend/           # Next.js 15 web application
├── s3-api/            # S3 integration layer
└── docs/              # Comprehensive documentation

Tech Stack

  • 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

Use Cases

  • 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

Features

Current Features

  • 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

Documentation

Our documentation is organized for different audiences:

Getting Started (Perfect for Beginners)

Development (For Contributors)

Architecture (Technical Deep Dive)

Contributing

We welcome contributions from developers of all skill levels!

Quick Contribution Steps

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test your changes
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Ways to Contribute

  • 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

Development

Prerequisites

  • Node.js 18+
  • PNPM 8+
  • Git

Local Development

# Install dependencies
pnpm install

# Start development server
cd frontend && pnpm dev

# Run tests
pnpm test

# Check code quality
pnpm lint

Vercel/Netlify

Opndrive frontend can be deployed to any platform that supports Next.js applications.

Security

  • 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

License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

Acknowledgments

Support


If you find Opndrive useful, please consider giving us a star on GitHub!

Made with ❤️ by the Opndrive Team