Skip to content

dickyermawan/rufi

Repository files navigation

Rufi Logo

Rufi - S3 File Manager

Modern • Fast • Multi-Provider

A beautiful, high-performance S3 file manager built for speed and usability.
Manage your Cloudflare R2, AWS S3, and MinIO buckets with granular control.

Docker Version License Next.js TypeScript Prisma


📸 Screenshots

Desktop View (Grid) Mobile View (List)
Desktop View Mobile View

Experience a responsive design that adapts perfectly to any device.


✨ Key Features

🚀 Powerful Core

  • Multi-provider: Cloudflare R2, AWS S3, MinIO support.
  • Full Operations: Upload, download, delete, rename, copy/move.
  • Smart Search: Instant prefix search within folders.
  • Pagination: Handle folders with thousands of files effortlessly.

🎨 Modern UX

  • Drag & Drop: Full-screen drop zone for uploads.
  • File Previews: Native preview for Images, Video, Audio, PDF.
  • Code Editor: Edit text/code directly in browser.
  • Dark Mode: Easy on the eyes with auto-switching theme.

🛡️ Enterprise-Grade Management

  • Granular Permissions: 9 distinct permission levels per user per bucket.
  • Home Directories: Isolate users to specific folders.
  • Secure Sharing: Public links with password & expiry protection.

🐳 Quick Start (Docker)

Get up and running in seconds with our official Docker image.

1. Create docker-compose.yml

version: '3.8'

services:
  rufi:
    image: dickyermawan/rufi
    container_name: rufi
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
    environment:
      - NODE_ENV=production
      - DATABASE_URL=file:/app/data/rufi.db
      - APP_URL=http://localhost:3000
      - JWT_SECRET=change_this_to_secure_random_string
      - ENCRYPTION_KEY=change_this_to_32_chars_exactly!!!
      - ROOT_USERNAME=admin
      - ROOT_PASSWORD=admin123
    restart: unless-stopped

2. Launch

docker-compose up -d

Visit http://localhost:3000 and login with admin / admin123.


⚙️ Configuration

Environment Variables

Variable Description Required
JWT_SECRET Secret for session tokens
ENCRYPTION_KEY 32-char key for S3 credentials
ROOT_USERNAME Admin username (default: admin)
ROOT_PASSWORD Admin password (default: admin123)
DATABASE_URL SQLite path (default: file:/app/data/rufi.db)

🛠️ Development

Click to expand development instructions
  1. Clone & Install

    git clone https://github.com/dickyermawan/rufi.git
    cd rufi
    npm install
  2. Setup Env

    cp .env.example .env
  3. Database

    npx prisma migrate deploy
  4. Run

    npm run dev

📈 Star History

Star History Chart

🤝 Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.


Made with ❤️ by Dicky Ermawan S.

About

Rufi - S3 File Manager

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors