(^ that's how many files were ever uploaded to DropSpaces)
DropSpace is an easy way to self-host a file drop. Simply upload your file, and share the link. That's all!
DropSpace is built using Laravel.
Feature | Status |
---|---|
File upload (chunked using Resumable.js | ✅ |
Server side settings. (Max file size, default expiry, ...) | ✅ |
Protected uploads (With multiple users) | ✅ |
Rich embeds. (Video player or image display) | ✅ |
File checksum verification | ✅ |
File sharing in email | ✅ |
File protection | ✅ |
Set expiry based on download limit | ✅ |
Set expiry based on date | ✅ |
Auto delete based on date expiry | ✅ |
Auto delete based on download count | ✅ |
File download via curl (click-to-copy command) | ✅ |
File storage in S3 storage | ✅ |
File upload via CLI | ❌ |
Auto update | ❌ |
Automatic file compression on uploaded files | ❌ |
Clone the repository
git clone https://github.com/leventdev/dropspace.git
Go into the cloned repository
cd dropspace
Install php8.1
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
Install composer
sudo apt install composer
Install dependencies
sudo apt install php8.1-xml php8.1-gd php8.1-curl php8.1-mysql
Install up-to-date NPM
sudo apt install nodejs
curl -L https://npmjs.org/install.sh | sudo sh
Install composer dependancies
composer install
Install npm dependancies
npm install
Make an environment configuration based on the example and set it up
cp .env.example .env
nano .env
Set the app key
php artisan key:generate
Set up the tables
php artisan migrate
Set up permissions for the app
sudo chown -R www-data:www-data /root/to/dropspace
Set up the web server of your choice
And finish off by building the app
npm run prod
Add command to crontab
Replace /var/www/dropspace to DropSpace's location
*/5 * * * * cd /var/www/dropspace && php artisan schedule:run
If you discover a security vulnerability within DropSpace, please make a pull request and use the security vulnerability
tag.
The DropSpace is open-sourced software licensed under the MIT license.