Files
quickdrop/README.md

2.8 KiB

Build Status Live Status MIT License

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.