mirror of
https://github.com/RoastSlav/quickdrop.git
synced 2025-12-30 11:09:59 -06:00
2.7 KiB
2.7 KiB
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
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.