mirror of
https://github.com/RoastSlav/quickdrop.git
synced 2026-01-05 22:20:08 -06:00
356 lines
2.9 KiB
Markdown
356 lines
2.9 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.
|