overcuriousity / bitvault

A secure, configurable file-sharing and URL shortening web app written in Rust.
Other
5 stars 2 forks source link

image

BitVault

DISCLAIMER: This Repo is derived from the great Microbin Project. As the original Project seems to be abandoned, I made some minor updates to my taste - thus removing any telemetry and utilizing some more up to date rust libraries. I might or might not continue development from this point.

TL:DR: The Main Target of this Project is:

BitVault is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. It takes only a couple minutes to set it up, why not give it a try now?

TOR HiddenService for demonstration: http://bvaultb5wmxcxxapep7tnq2zrkjva6ry7uekfcsxpsxts2ve5qmf4iyd.onion/

Build from source

# Install rust and git if necessary (Arch Linux)
sudo pacman -S rust git

# clone repository & build w. cargo
git clone https://github.com/overcuriousity/bitvault
cd bitvault
cargo build --release
cargo run --release

# one-liner to build:
sudo pacman -S rust git && \
git clone https://github.com/overcuriousity/bitvault && \
cd bitvault && \
cargo build --release

Create systemd service to run it automatically:

# Example /etc/systemd/system/bitvault.service
[Unit]
Description=BitVault
After=network.target

[Service]
Type=simple
Restart=always
RootDirectory=/

# This is the user that will be used to run the executable
User=<insert username>
# This is where BitVault will save your data
WorkingDirectory=/home/<insert username>/
# This is the location of the compiled binary which we did with cargo before 
ExecStart=/home/<insert username>/bitvault/target/release/bitvault

Environment="BITVAULT_ADMIN_USERNAME=admin"
Environment="BITVAULT_ADMIN_PASSWORD=changeme
Environment="BITVAULT_PORT=8080"
Environment="BITVAULT_BIND=0.0.0.0"
Environment="BITVAULT_PUBLIC_PATH=https://bitvault.example.org"
# Environment="BITVAULT_SHORT_PATH=https://short.net"
Environment="BITVAULT_JSON_DB=false"
Environment="BITVAULT_EDITABLE=true"
Environment="BITVAULT_HIDE_HEADER=false"
Environment="BITVAULT_HIDE_FOOTER=false"
Environment="BITVAULT_HIDE_LOGO=false"
Environment="BITVAULT_NO_LISTING=false"
Environment="BITVAULT_READONLY=false"
Environment="BITVAULT_SHOW_READ_STATS=true"
Environment="BITVAULT_THREADS=2"
Environment="BITVAULT_GC_DAYS=90"
Environment="BITVAULT_WIDE=true"
Environment="BITVAULT_ETERNAL_PASTA=true"
Environment="BITVAULT_PRIVATE=true"
Environment="BITVAULT_HIGHLIGHTSYNTAX=true"
Environment="BITVAULT_QR=true"
Environment="BITVAULT_ENABLE_BURN_AFTER=true"
Environment="BITVAULT_ENABLE_READONLY=true"
Environment="BITVAULT_DEFAULT_EXPIRY=24hour"
Environment="BITVAULT_NO_FILE_UPLOAD=false"
Environment="BITVAULT_HASH_IDS=false"
Environment="BITVAULT_ENCRYPTION_CLIENT_SIDE=true"
Environment="BITVAULT_ENCRYPTION_SERVER_SIDE=true"
Environment="BITVAULT_MAX_FILE_SIZE_ENCRYPTED_MB=2048"
Environment="BITVAULT_MAX_FILE_SIZE_UNENCRYPTED_MB=2048"
# Environment="BITVAULT_BASIC_AUTH_USERNAME=something"
# Environment="BITVAULT_BASIC_AUTH_PASSWORD=something"
# Environment="BITVAULT_CUSTOM_CSS="https://myserver.com/custom.css""
Environment="BITVAULT_TITLE=BitVault"
[Install]
WantedBy=multi-user.target

On the original developers website microbin.eu you will find the following:

Features

What is an upload?

In BitVault, an upload can be:

When is BitVault useful?

You can use BitVault:

BitVault is available under the GPL-3 License, while the original Project was published under BSD 3-Clause License.

© Dániel Szabó 2022-2023, under BSD-3-Clause © Mario Stöckl, from 2024-05-27, under GPL-3 License.