Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/merlinfuchs/vaultbin
A blazingly fast and secure Pastebin alternative
https://github.com/merlinfuchs/vaultbin
actix e2e encryption gist hastebin pastebin rust
Last synced: about 1 month ago
JSON representation
A blazingly fast and secure Pastebin alternative
- Host: GitHub
- URL: https://github.com/merlinfuchs/vaultbin
- Owner: merlinfuchs
- License: mit
- Created: 2022-03-23T23:42:13.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-11T07:36:06.000Z (over 1 year ago)
- Last Synced: 2024-08-02T05:23:16.896Z (4 months ago)
- Topics: actix, e2e, encryption, gist, hastebin, pastebin, rust
- Language: Go
- Homepage: https://vaultb.in
- Size: 946 KB
- Stars: 21
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-blazingly-fast - vaultbin - A blazingly fast and secure Pastebin alternative (Rust)
- awesome-starred - merlinfuchs/vaultbin - A blazingly fast and secure Pastebin alternative (rust)
README
## vaultbin
[![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
[![Release CI](https://github.com/merlinfuchs/vaultbin/actions/workflows/release.yml/badge.svg)](https://github.com/merlinfuchs/vaultbin/releases)Vaultbin is a blazingly fast and secure alternative to Pastebin and Hastebin.
For each paste Vaultbin generates a random 128 bit AES key and encrypts the paste with it.
To identify the encrypted paste in the database it's using a hashed version of that key.
The encryption key is then used in the URL to request and decrypt the paste.
This way nobody with access to the database can read a paste unless they have the exact URL to that paste.Vaultbin compiles to a single binary and doesn't depend on an external database.
The binary includes everything you need to host an instance.This project was initially inspired by [zer0b.in](https://github.com/zer0bin-dev/zer0bin).
## Public Instances
| URL | Expiration | Max paste size | Location |
| ------------------------------ | ---------- | -------------- | -------- |
| [vaultb.in](https://vaultb.in) | 30 days | 69,420 chars | Germany |## API Routes
| Route | Method | Description | Parameters |
| ------------------------ | ------ | ----------------------------- | ----------------------------------- |
| `/api/pastes` | `POST` | Create a paste | `language`, `content`, `expiration` |
| `/api/pastes/{paste_id}` | `GET` | Get information about a paste | None |## Installation
### Prebuilt Binaries
You can find prebuilt binaries for the most common operating systems [here](https://github.com/merlinfuchs/vaultbin/releases).
### Build from source
To build this project from source you need [Go](https://go.dev/dl/) installed.
```shell
# Install from git directly (recommended)
go install github.com/merlinfuchs/vaultbin# Clone and build locally
git clone https://github.com/merlinfuchs/vaultbin
cd vaultbin
go build
```## Configuration
Vaultbin will look for a `vaultbin.toml` file in the directory where you start it.
The default config looks like this:```toml
port = "8080"
host = "localhost"paste_max_size = 69420 # max size of pastes in bytes
paste_ttl = 2592000 # (30 seconds) seconds after a paste will be deleted[database]
path = "vaultbin.db" # path where data is stored[ratelimit] # 5 request / 5 seconds
burst_size = 5 # number of request before subsequent request are block
per_second = 5 # seconds it takes to refill one request
reverse_proxy = false # if the backend is deployed behind a revers proxy -> this changes the way the peers IP is retrieved
```