43

Show HN: Pbnj – A minimal, self-hosted pastebin you can deploy in 60 seconds

I'm sure folks here have seen pastebins a thousand times. There's no innovation left in this space – and that's kind of the point.

When I wanted to self-host a pastebin, every option I found was too much. Git-based version control, OAuth, elaborate admin panels. I just wanted something I could deploy in under a minute with a CLI that actually works.

So I built pbnj (yes, like the sandwich).

What it is:

- A minimal, beautiful pastebin with syntax highlighting for 100+ languages

- One-click deploy to Cloudflare (free tier gives you ~100,000 pastes)

- CLI-first: pbnj file.py → get a URL, copied to clipboard

- Memorable URLs: crunchy-peanut-butter-sandwich instead of x7f9a2

- Private pastes with optional secret keys

- Web UI for when you're not in a terminal

What it isn't:

- No accounts, no OAuth, no git integration

- No multi-user support (fork it and run your own)

- No expiring pastes, no folders, no comments

- Not trying to replace Gist or be a "platform"

Why not just use Gist? Maybe you want to own your data. Maybe you enjoy self-hosting things. Or maybe you're a little autistic like me and just like having your own stuff.

Live demo: https://pbnj.sh GitHub: https://github.com/bhavnicksm/pbnj CLI: npm install -g @pbnjs/cli

If this scratches an itch for you, I'd appreciate a star on GitHub. Happy to answer any questions!

This is really well done, but the problem I have with (most) selfhosted bins is that anyone can use it, and I don’t want to be responsible for the content that might show up.

This is super neat though, and could almost be used as a blog replacement (if of course I could prevent others from using it/posting to it :) )

6 hours agoindigodaddy

Usually, for these kind of programs, I put them behind a proxy with basic auth.

Also, when I tried to add something on the demo site, it asked me for an auth key.

Looking at the code, the package.json file has an entry for AUTH_KEY (in the Cloudflare config) to prevent random people from pasting stuff.

4 hours agothunderbong

Ah, well that's kinda perfect actually

3 hours agoindigodaddy

I'm planning to set up a VPN into my home network for stuff like this. Services, NAS, etc. that I want remote access to but don't want exposed to the deep dark ocean of the internet.

5 hours ago0_____0

[dead]

5 hours agoslack2450

Hey there, first of all congratulations, it's really nice and minimal and Illove it!

But Cloudflare is not self hosting!

4 hours agoTt6000

HOWTO without CloudFlare, is it possible?

4 hours agodavidcollantes

pnpm run build

should do it

4 hours agothunderbong

That creates `dist` with:

404.png .assetsignore _astro/ bread.png favicon.png favicon.svg jelly.png lock.png logo.png og-image.png pbnj.png peanut.png _routes.json styles/ _worker.js/

In it. What comes next?

3 hours agodavidcollantes

- navigate to dist directory

- run pnpm dlx http-serve

- navigate to one of the provided ip addresses

(this uses the tunnl.gg service and is not necessary for local network access)

- [optional, for access via internet] run ssh -t -R 80:[provided ip address including port] proxy.tunnl.gg

3 hours agocatapart

That gave me some other errors. I am giving up. Thanks for helping!

2 hours agodavidcollantes

Fwiw if you want a simple pastebin, I've been running pinnwand for a couple years without any issues off of a single short docker compose file, I think running it on host also shouldn't be complicated

an hour agoNumerlor

Crazy that people really need instructions on how to self-host stuff these days... this stuff used to be something most devs could figure out.

2 hours agomervz
[deleted]