QuickDrop
QuickDrop is an easy-to-use file sharing application that allows users to upload files without an account, generate download links, and manage file availability, file encryption and optional password protection.
Features
File Upload **: Users can upload files without needing to create an account.
Download Links **: Generate download links for easy sharing.
File Management **: Manage file availability with options to keep files indefinitely or delete them.
Password Protection **: Optionally protect files with a password.
File Encryption **: Encrypt files to ensure privacy.
Whole app password protection **: Optionally protect the entire app with a password.
Technologies Used
Java **
SQLite **
Spring Framework **
Spring Security **
Spring Data JPA ( Hibernate) **
Spring Web **
Spring Boot **
Thymeleaf **
Bootstrap **
Maven **
Getting Started
Installation
Installation with Docker **
Pull the Docker image:
docker pull roastslav/quickdrop:latest
Run the Docker container:
docker run -d -p 8080:8080 roastslav/quickdrop:latest
Optional: Use a volume to persist the uploaded files or if you want to change the default configuration:
docker run -d -p 8080:8080 \
-v /path/to/db:/app/db \
-v /path/to/log:/app/log \
-v /path/to/files:/files \
quickdrop
Installation without Docker **
Prerequisites
Java 21 or higher
Maven
SQLite
Clone the repository:
git clone https://github.com/RoastSlav/quickdrop.git
cd quickdrop
Build the application:
mvn clean package
Run the application:
java -jar target/quickdrop-0.0.1-SNAPSHOT.jar
Using an external application.properties file:
Create an * * application.properties ** file in the same directory as the JAR file or specify its location in the start command.
-
Add
your
custom
settings,
for
example (
Listed
below
are
the
default
values):
file.save.path=files
file.max.age=30
logging.file.name=log/quickdrop.log
file.deletion.cron=0 0 2 * * *
app.basic.password=test
app.enable.password=false
max-upload-file-size=1GB
Run the application with the external configuration:
java -jar target/quickdrop-0.0.1-SNAPSHOT.jar --spring.config.location=./application.properties
License
This
project
is
licensed
under
the
MIT
License.
See
the
LICENSE
file
for
details.