Files
quickdrop/README.md
2024-10-17 22:37:29 +03:00

2.6 KiB

Build Status

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
  • Spring Framework
  • Spring Security
  • Spring Data JPA (Hibernate)
  • Spring Web
  • Spring Boot
  • Maven
  • Thymeleaf
  • Bootstrap
  • SQLite

Getting Started

Prerequisites

  • Java 21 or higher
  • Maven
  • SQLite

Installation

Installation with Docker

  1. Pull the Docker image:
docker pull roastslav/quickdrop:latest
  1. Run the Docker container:
docker run -d -p 8080:8080 roastslav/quickdrop:latest

Optional: Use a volume to persist the uploaded files or 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

  1. Clone the repository:
git clone https://github.com/RoastSlav/quickdrop.git
cd quickdrop
  1. Build the application:
mvn clean package
  1. Run the application:
java -jar target/quickdrop-0.0.1-SNAPSHOT.jar
  1. 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.