Files
quickdrop/README.md
Rostislav Raykov b43aafb089 fixed README.md
2024-10-26 00:20:06 +03:00

114 lines
2.7 KiB
Markdown

[![Build Status](https://jenkins.tyron.rocks/buildStatus/icon?job=quickdrop)](https://jenkins.tyron.rocks/job/quickdrop)
[![Live Status](https://img.shields.io/badge/status-live-brightgreen)](https://quickdrop.tyron.rocks)
[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
# 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**
1. Pull the Docker image:
```
docker pull roastslav/quickdrop:latest
```
2. 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
1. Clone the repository:
```
git clone https://github.com/RoastSlav/quickdrop.git
cd quickdrop
```
2. Build the application:
```
mvn clean package
```
3. Run the application:
```
java -jar target/quickdrop-0.0.1-SNAPSHOT.jar
```
4. 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 # days
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.