Go to file
Kainoa Kanter d5505eb846
🐦
2022-03-15 00:10:18 -07:00
.github/ISSUE_TEMPLATE Feature labels 2022-03-14 10:13:01 -07:00
assets Re-arrange assets 2022-03-13 22:44:52 -07:00
backend Remove unused import 2022-03-14 17:53:03 -07:00
frontend Change highlight color 2022-03-14 23:40:08 -07:00
.gitignore Update .gitignore 2022-03-15 00:09:44 -07:00
Cartograph.md 🤓 2022-03-14 15:13:37 -07:00
LICENSE 🐦 2022-03-15 00:10:18 -07:00
README.md Move API section 2022-03-15 00:09:05 -07:00
example.nginx Nginxfmt 2022-03-13 16:20:22 -07:00

README.md



Just a place to paste

Stargazers Issues License


Public instances

Submit your public instance here!

Website Expiration Max paste size Version Country
zer0b.in (not up yet) 7 days 40,000 chars vx.x.x ?
stepbro.voring.me 365 days 69,000 chars v0.3.1 🇺🇸 US

Technologies used

Frontend:

Backend:

Misc:

API

  • GET /api/p/:id - Get a paste by ID
  • POST /api/p/n - Post a new paste
  • GET /api/s - Get stats about the instance

Self-host instructions

Requirements

  • 🦀 Rust ≥ 1.58.0
    • 🚢 Cargo ≥ 1.58.0
  • 🐢 NodeJS ≥ 16.0
    • 🚀 NPM ≥ 8.0.0
  • 🐘 Postgresql ≥ 12.0
  • 🦝 Nginx ≥ 1.18.0
  • 🌄 Domain with SSL
  • 🐧 *nix OS

Steps

# export EDITOR=nano
git clone https://github.com/Domterion/zer0bin && cd zer0bin
$EDITOR example.nginx # Edit as appropriate
mv example.nginx yourdomain.tld
sudo cp ./yourdomain.tld /etc/nginx/sites-available
sudo cp ./yourdomain.tld /etc/nginx/sites-enabled
systemctl nginx restart # Or whichever process manager you use
cd frontend
cp config.example.json config.json
$EDITOR config.json # Edit as appropriate
npm i && npm run build
cd ../backend
psql -f schema.sql -U postgres zer0bin
cp config.example.json config.json
$EDITOR config.json # Edit as appropriate
cargo build --release
./target/release/zer0bin-bin # Preferably in a tmux session or as a service

Configuration

Key Values Description
server.backend_host 127.0.0.1 or 0.0.0.0 The host to run the backend on
server.backend_port Any open port The port to run the backend on
pastes.character_limit Number up to 2^64 - 1 The amount of characters allowed in a single paste
pastes.days_til_expiration Number up to 2^63 or -1 The days till a paste is to expire. If set to -1 then pastes will never expire
pastes.id_length Number up to 2^64 - 1 The length of the ID for each paste
databases.postgres_uri PostreSQL Connection URI The URI to use when connecting to a PostgreSQL database
ratelimits.seconds_in_between_pastes Number up to 2^64 - 1 The seconds between paste uploads
ratelimits.allowed_pastes_before_ratelimit Number up to 2^32 - 1 Amount of requests that can be made before they are blocked and have to wait

Benchmarks

This is on a paste with 200 lines!

Lighthouse

Lighthouse

Firefox network

Firefox Network