This commit is contained in:
Axel 2017-07-19 17:19:38 +02:00
parent 8c6218161c
commit 39bd8123be

View file

@ -7,24 +7,24 @@ Powered by Laravel
## Description ## Description
This PHP application based on Laravel 5.4 allows to share files like Wetransfer. You may install it on your own server. It does not require any database system, it works with JSON files in the storage folder. It is multilingual and comes with english and french translations for now. You're welcome to help. This PHP application based on Laravel 5.4 allows to share files like Wetransfer. You may install it **on your own server**. It **does not require** any database system, it works with JSON files in the storage folder. It is **multilingual** and comes with english and french translations for now. You're welcome to help.
It comes with a droplet (based on Dropzone.js). You may drag and drop some files or directories into the droplet, your files will be uploaded to the server as a bundle. It comes with a droplet (based on Dropzone.js). You may drag and drop some files or directories into the droplet, your files will be uploaded to the server as a bundle.
The bundle is a various number of files between 1 and infinite (based on your configuration). The bundle is a various number of files between 1 and infinite (based on your configuration).
The bundle has a 2 weeks expiry date after the creation of the bundle. This value is not editable yet, this is a todo. The bundle has a 2 weeks expiry date after the creation of the bundle. This value is not editable yet, this is a todo.
This application provides three links per upload bundle : This application provides three links per upload bundle :
- a bundle preview link : you can send this link to your recipients who will see the bundle content. For example: http://yourdomain/bundle/dda2d646b6746b96ea9b?auth=965242. The recipient can see all the files of the bundle, can download one given file only or the entire bundle. - a bundle preview link : you can send this link to your recipients who will see the bundle content. For example: http://yourdomain/bundle/dda2d646b6746b96ea9b?auth=965242. The recipient can see all the files of the bundle, can download one given file only or the entire bundle.
- a bundle download link : you can send this link yo your recipients who will download all the files of the bundle at once. For example: http://yourdomain/bundle/dda2d646b6746b96ea9b/download?auth=965242. - a bundle download link : you can send this link yo your recipients who will download all the files of the bundle at once. For example: http://yourdomain/bundle/dda2d646b6746b96ea9b/download?auth=965242.
- a deletion link : for you only, it invalidates the bundle. For example: - a deletion link : for you only, it invalidates the bundle. For example:
http://yourdomain/bundle/dda2d646b6746b96ea9b/delete?auth=ace6f22f5. http://yourdomain/bundle/dda2d646b6746b96ea9b/delete?auth=ace6f22f5.
Each of these links come with a auth code. This code is the same for the preview and the download links. It is however different for the deletion link. Each of these links come with a auth code. This code is the same for the preview and the download links. It is however different for the deletion link.
The application also comes with a Laravel Command (background task) who will physically removed expired bundle files of the storage disk. The application also comes with a Laravel Command (background task) who will physically removed expired bundle files of the storage disk. This command is included in Laravel scheduled commands.
Sorry about the design, I know it's ugly. You're welcome to help and participate. *Sorry about the design, I know it's ugly*. You're welcome to help and participate.
## Requirements ## Requirements
@ -44,19 +44,19 @@ The application also uses:
## Installation ## Installation
- configure your domain name. For example: files.yourdomain.com - configure your domain name. For example: files.yourdomain.com
- clone the repo or download the sources into the webroot folder - clone the repo or download the sources into the webroot folder
- configuration your webserver to point your domain name to the public/ folder - configuration your webserver to point your domain name to the public/ folder
- run a `composer install` - run a `composer install`
- run a `npm install --production` - run a `npm install --production`
- start the Laravel scheduler (it will delete expired bundles of the storage). For example `* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1` - start the Laravel scheduler (it will delete expired bundles of the storage). For example `* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1`
Use your browser to navigate to your domain name (example: files.yourdomain.com) and that's it. Use your browser to navigate to your domain name (example: files.yourdomain.com) and **that's it**.
## Development ## Development
If your want to modify the sources, you can use the Laravel Mix features: If your want to modify the sources, you can use the Laravel Mix features:
- configure your domain name. For example: files.yourdomain.com - configure your domain name. For example: files.yourdomain.com
- clone the repo or download the sources into the webroot folder - clone the repo or download the sources into the webroot folder
- configuration your webserver to point your domain name to the public/ folder - configuration your webserver to point your domain name to the public/ folder
- run a `composer install` - run a `composer install`
@ -65,10 +65,10 @@ If your want to modify the sources, you can use the Laravel Mix features:
## Roadmap ## Roadmap
There are many ideas to come. You are welcome to participate. There are many ideas to come. You are welcome to **participate**.
- make the expiry date editable per bundle - make the expiry date editable per bundle
- limit upload permission based on an IP address (or IP range) or by a password (or passwords) - limit upload permission based on an IP address (or IP range) or by a password (or passwords)
- ability to send link to recipients - ability to send link to recipients
## Licence ## Licence
@ -76,4 +76,4 @@ https://choosealicense.com/licenses/gpl-3.0/
## Welcome on board ## Welcome on board
If you want to participate or if you want to talk with me : sharing@mabox.eu If you want to **participate** or if you want to talk with me : sharing@mabox.eu