-
Notifications
You must be signed in to change notification settings - Fork 9
Self hosting
mellowmarshe edited this page Mar 22, 2022
·
6 revisions
π Docker is coming soon:tm:
- π¦ Rust β₯ 1.58.0
- π Yarn β₯ 1.0.0
- π PostgreSQL β₯ 9.6
- π¦ Nginx β₯ 1.18.0
- πΎ Brotli plugin recommended
- π§ Linux or π FreeBSD
- π Domain with SSL
- Clone the repo
git clone https://github.com/zer0bin-dev/zer0bin
cd zer0bin
- Edit
example.nginx
to fit your domain and location
(Instructions are inside the file)
- Add the nginx config to nginx
mv example.nginx yourdomain.tld
sudo cp ./yourdomain.tld /etc/nginx/sites-available
sudo cp ./yourdomain.tld /etc/nginx/sites-enabled
sudo nginx -t # Make sure everything's ok
systemctl nginx restart # Or whichever process manager you use
- Prepare
config.json
cd frontend
cp config.example.json config.json
-
Configure frontend by editing
config.json
| Key | Values | Description | | ------------------------------------------ | ------------------------ | ------------------------------------------------------------------------------ | | api_url | API URL | The URL of the API
| confetti_chance | Number β₯ 1 | The chance of confetti showing on save -
Build frontend
yarn
yarn run build
- Apply database schema and prepare
config.json
cd ../backend
psql -f schema.sql -U postgres zer0bin
cp config.example.json config.json
- Configure backend by editing
config.json
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 |
logging.on_post_paste | true or false | Log on new paste is made |
logging.on_get_paste | true or false | Log on paste get |
- Build and run!
cargo build --release
# tmux
./target/release/zer0bin-bin # In a tmux/multiplexer session or as a service