diff --git a/github_images/homepage.png b/github_images/homepage.png new file mode 100644 index 0000000..ebfb847 Binary files /dev/null and b/github_images/homepage.png differ diff --git a/readme.md b/readme.md index e69de29..f2228cf 100755 --- a/readme.md +++ b/readme.md @@ -0,0 +1,192 @@ +#  + +# MyDrive + +MyDrive is an Open Source Cloud Server (Similar To Google Drive), the service uses mongoDB to store file/folder metadata, and supports multiple databases to store the file chunks, such as Amazon S3, the Filesystem, or just MongoDB. MyDrive is built using Node.js, and Typescript. The service now even supports Docker images! + +## Index + +* [Features](#features) +* [Installation](#installation) +* [Guided Installation](https://github.com/subnub/myDrive/wiki/Guided-Installation-Setup) +* [Guided Installation (Docker)](https://github.com/subnub/myDrive/wiki/Guided-Installation-Setup-(Docker)) +* [WebUI For Encryption Key](#webui-for-encryption-key) +* [Docker](#docker) +* [Environment Variables](#environment-variables) +* [Screenshots](#screenshots) +* [Wiki](https://github.com/subnub/myDrive/wiki) +* [Video](#video) +* [Demo](#demo) +* [Fund/Donate](#fund) + +## Features + +* Upload Files +* Download Files +* Share Files +* Multiple DB Support (MongoDB, S3, Filesystem) +* Photo Viewer +* Video Viewer +* Thumbnails +* One-time download links +* Move Folder/Files +* Mobile Support +* Docker Support +* Search/Filter Options +* AES256 Encryption + +## Installation + +Required: +- Node.js (13+ Recommended) +- MongoDB (Unless using a service like Atlas) + +Windows users will usually need both the microsoft visual build tools, and python 2. These are required to build the sharp module: +- Visual Tools: http://go.microsoft.com/fwlink/?LinkId=691126 +- Python 2: https://www.python.org/downloads/release/python-2717/ + +Linux users will need to make sure they have 'build-essential' installed: +```bash +sudo apt-get install build-essential +``` + +Setup: +>Install Node Modules +``` javascript +npm install +``` + +>Create Environment Variables, Users can use the built in command to easily create the needed Environment files, or view the Environment Variables section to see how to manually create the files. +``` javascript +npm run setup +``` + +>Run the build command +``` javascript +npm run build +``` + +>(Optional) Create the MongoDB indexes, this increases performance. MongoDB must be running for this command to work. +```javascript +npm run create-indexes-database +``` + +>Start the server +``` javascript +npm run start +``` + +## WebUI For Encryption Key + +MyDrive will first host a server on http://localhost:3000 in order to safely get the encryption key, just navigate to this URL in a browser, and enter the encryption key. + +If you're using a service like SSH or a Droplet, you can forward the localhost connection safely like so: +```bash +ssh -L localhost:3000:localhost:3000 username@ip_address +``` + +Note: You can also disable using the webUI for the encryption key by providing a key in the server environment variables (e.g. KEY=password), but this is not recommended because it greatly reduces security. + +## Docker + +MyDrive has built in Docker support, there are two options when using Docker, users can either use the Docker image that has MongoDB built in, or use the Docker image that just has the MyDrive image (If you're using a service like Atlas). + +Create the Docker environment variables by running the 'npm run setup' command as seen in the installation section. Or by manually creating the file (e.g. docker-variables.env on the root of the project, see the environment section for more infomation). + +Docker with mongoDB image: +```bash +docker-compose build +``` + +Docker without mongoDB image: +```bash +docker-compose -f docker-compose-no-mongo.yml build +``` +Start the Docker Image: +```bash +docker-compose up +``` + +## Screenshots + +Upload Files + + +Image Viewer + + +Video Viewer + + +Search For Files/Folders + + +Move File/Folders + + +Share + + +Folders + + +Mobile +
+