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

66 pointsposted 2 days ago
by bhavnicksm

16 Comments

indigodaddy

2 days ago

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 :) )

mubou2

a day ago

People don't usually expose self-hosted services directly to the internet, even if they have a login page. You use a reverse proxy, that way they can be HTTPS, share port 443, and use subdomains (Caddy makes this really easy). And then adding auth becomes trivial, and you can even put your services behind some SSO sign-in if you want to.

If possible though it's best to use a VPN so that nothing needs to be accessible from the internet at all (not to mention then you can access your NAS shares w/o needing a web UI). That's why I actually prefer when self-hosted apps don't have their own auth system, or at least let me disable it. If everything's internal only, I don't need it anyway.

thunderbong

2 days ago

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.

indigodaddy

2 days ago

Ah, well that's kinda perfect actually

0_____0

2 days ago

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.

davidcollantes

2 days ago

HOWTO without CloudFlare, is it possible?

bhavnicksm

2 days ago

Hey!

Right now, some things are somewhat hard-coded to be Cloudflare compatible. If someone's willing, you can just deploy this without Cloudflare, but you'd need to dig into the code a little.

In the future releases, I'll make it possible to host it on VPCs and release a Dockerfile along with it, so that should help a little.

Thanks for checking the project out!

som

2 days ago

I use CloudFlare a lot for "self hosting" .. but I also run an old pi from home with Bun in place of workers. Suprisingly compatible and low lift.

Not exactly "without CloudFlare", but for true compat you can probably also self host workerd itself which is open source: github.com/cloudflare/workerd

thunderbong

2 days ago

pnpm run build

should do it

davidcollantes

2 days ago

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?

catapart

2 days ago

- 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

davidcollantes

2 days ago

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

Numerlor

2 days ago

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

mervz

2 days ago

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.

Tt6000

2 days ago

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

But Cloudflare is not self hosting!

bhavnicksm

2 days ago

Yes, that's quite fair re:Cloudflare!

I couldn't find the right words to describe this, in comparison to something like Github Gist. I suppose "Own-your-data" since the D1 db generated is yours completely.

Happy to change the branding to be more reflective of this!