Go to file
Kainoa Kanter 0aa3c601cd
Create CONTRIBUTING.md
2022-03-16 10:20:57 -07:00
.github/ISSUE_TEMPLATE Feature labels 2022-03-14 10:13:01 -07:00
backend Remove backend prettier 2022-03-15 10:18:32 -07:00
frontend Favicon 2022-03-16 09:56:22 -07:00
.gitignore Update .gitignore 2022-03-15 00:09:44 -07:00
.prettierrc.json Symlinks to copies 2022-03-15 10:15:38 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2022-03-16 10:19:36 -07:00
CONTRIBUTING.md Create CONTRIBUTING.md 2022-03-16 10:20:57 -07:00
Cartograph.md 🤓 2022-03-14 15:13:37 -07:00
LICENSE 🐦 2022-03-15 00:10:18 -07:00
README.md Update README.md 2022-03-16 10:12:10 -07:00
example.nginx I can't spell 2022-03-16 00:13:54 -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.6.0 🇺🇸 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 ≥ 9.6
  • 🦝 Nginx ≥ 1.18.0
    • 🥖 Brotli plugin reccomended
  • 📍 Domain linked to your server
  • 🐧 *nix OS (Linux, *BSD, etc)

Steps

🐋 Docker is coming soon™️

Please run each command one at a time!

# 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

Measured with Lighthouse and Firefox Network Performance Analysis

Homepage

image image

20 line paste

image image