mirror of
https://github.com/RoastSlav/quickdrop.git
synced 2026-01-04 21:50:06 -06:00
114 lines
2.7 KiB
Markdown
114 lines
2.7 KiB
Markdown
[](https://jenkins.tyron.rocks/job/quickdrop)
|
|
[](https://quickdrop.tyron.rocks)
|
|
[](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.
|