mirror of
https://github.com/RoastSlav/quickdrop.git
synced 2026-04-25 14:28:17 -05:00
681b6c26c1b8abdd8e5a82a046595671f0d19dec
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.
Live Application
The QuickDrop app is live and actively used by us! You can access the production version here.
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
Prerequisites
- Java 21 or higher
- Maven
- SQLite
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
- 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):
-
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB
server.tomcat.connection-timeout=60000
file.save.path=files
file.max.age=30 (In days)
logging.file.name=log/quickdrop.log
file.deletion.cron=0 0 2 * * *
app.basic.password=test
app.enable.password=false
- 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.
Languages
Java
40.9%
HTML
34.7%
JavaScript
22.3%
CSS
1.9%
Dockerfile
0.2%