2025-02-25 12:22:40 -05:00
2020-05-25 21:37:25 -04:00
2025-02-25 09:06:56 -05:00
2025-02-25 11:26:00 -05:00
2020-11-23 21:51:08 -05:00
2025-02-24 11:29:21 -05:00
2020-11-23 21:51:08 -05:00
2024-12-22 20:41:47 -05:00
2025-01-10 14:03:04 -05:00
2025-02-24 13:31:27 -05:00
2024-07-01 02:51:23 -04:00
2024-12-26 04:35:28 -05:00
2025-02-11 23:31:43 -05:00
2020-03-05 17:21:30 -05:00
2024-12-22 20:41:47 -05:00
2025-02-24 13:31:27 -05:00
2025-02-25 12:22:40 -05:00
2025-02-20 03:00:59 -05:00
2025-02-21 17:24:18 -05:00

MyDrive Homepage

☁️ MyDrive

MyDrive is an Open Source cloud file storage server (Similar To Google Drive). Host myDrive on your own server or trusted platform and then access myDrive through your web browser. MyDrive uses mongoDB to store file/folder metadata, and supports multiple databases to store the file chunks, such as Amazon S3, or the Filesystem.

Main myDrive website

🔍 Index

Features

  • Upload Files
  • Download Files
  • Upload Folders
  • Download Folders (Automatically converts to zip)
  • Multiple DB Support (Amazon S3, Filesystem)
  • Photo, Video Viewer and Media Gallery
  • Generated Photo And Video Thumbnails
  • File Sharing
  • PWA Support
  • AES256 Encryption
  • Service Worker
  • Mobile Support
  • Docker
  • Email Verification
  • JWT (Access and Refresh Tokens)

👨‍🔬 Tech Stack

  • React
  • Typescript
  • Node.js
  • Express
  • MongoDB
  • Vite

💻 Installation

Required:

  • Node.js (20 Recommended)
  • MongoDB (Unless using a service like Atlas)
  • FFMPEG (Optional, used for video thumbnails)

Setup (Non Docker Method):

Install Node Modules

npm install

Create Environment Variables:

You can find enviroment variable examples under:

backend/config -> Backend Enviroment Variables
src/config -> Frontend Enviroment Variables

Simply remove the .example from the end of the filename, and fill in the values.


Run the build command

npm run build

Start the server

npm run start

🐳 Docker

Setup:

Create Environment Variables:

You can find enviroment variable examples under:

backend/config -> Backend Enviroment Variables
src/config -> Frontend Enviroment Variables

Simply remove the .example from the end of the filename, and fill in the values.


Start the Docker image

npm run docker:production

📸 Screenshots

Modern and colorful design MyDrive Design

Upload Files MyDrive Upload

Download Files MyDrive Upload

Image Viewer Image Viewer

Video Viewer Video Viewer

Media Gallery Search

Share Files Share

Search For Files/Folders Search

Move File/Folders Move

Trash Trash

🎥 Video

I created a short YouTube video, showing off myDrives design and features: (Coming soon)

🕹️ Live demo

Demo: (Coming soon)

  • Note: The Upload and Download Features, and other core features, are disabled in the demo.

👾 Bug reports and Feature Requests

Contact Email: kyle.hoell@gmail.com

⬆️ Updating from a previous version of myDrive

If you are upgrading from myDrive 3 there is some data migration and scripts you must run for myDrive 4 to work properly.

Run the migration script
Note: Make sure you have env variables set

npm run migrate-to-mydrive4

Also, if you are updating from myDrive 3, or if you did not have video thumbnails enabled and would like to enable them now you can do so by running the following command:
Note: Make sure you have video thumbnails enabled in your env variables and FFMPEG installed.

npm run create-video-thumbnails
S
Description
No description provided
Readme GPL-3.0 78 MiB
Languages
TypeScript 74.8%
JavaScript 24.3%
SCSS 0.7%
HTML 0.1%