Introducing HAVEN - The Ultimate Relay For Sovereign Individuals

HAVEN (High Availability Vault for Events on Nostr) is the next evolution of personal relays that take self sovereignty and decentralization to the next level.

https://github.com/bitvora/haven

It's a 4-in-1 Relay with:

- Private Relay - for your drafts, ecash/nutsacks and anything else only you should be able to see

- Chat Relay - for your web of trust to be able to send you DMs or to host private group chats.

- Inbox Relay - for people to send reactions, zaps and likes to your notes. It also pulls these notes from other relays in real time. Protected by web of trust

- Outbox Relay - for others to read from. This will contain all the notes that only you publish. Anyone can read, only you can write. Every note sent to your outbox relay will be BLASTR'd to other relays.

It also has many SMART relay features, including:

- It imports all your old notes to your outbox relay, and imports any note you're tagged in to your inbox relay

- It protects your relays using your Web of Trust

- It automatically backs up all your notes to a 3rd party cloud (currently only AWS S3 support - more soon™)

- It blastr's your notes to other relays

Amethyst users will love this relay because it gives you every relay you need to complete the relay configuration.

It is my hope with this relay that we can significantly increase the decentralization of Nostr by giving people an extremely powerful and reliable personal relay that gives them control over the longevity and privacy of their notes. With more people running personal relays, clients should be more inclined to implement the outbox/inbox model.

You can see HAVEN in action on my personal relay:

- wss://relay.utxo.one/outbox

- wss://relay.utxo.one/inbox

- wss://relay.utxo.one/chat

- wss://relay.utxo.one/private

I am extremely excited about this release and can't wait to see what the nostriches think of it!

To get started, follow the instructions in the README here:

https://github.com/bitvora/haven

Reply to this note

Please Login to reply.

Discussion

🔥🔥

Running HAVEN

When can we see a package shipped to Start9's community registry from the devs?

Thanks to the replyguy 😂

Boom!

This is amazing. When do you sleep? Answer: never.

Is the overall idea that one could use only HAVEN relay?

You will still need other public relays to read about other people, the idea is everything in your graph (your notes, and reactions/replies/zaps to your notes) are highly available to the entire network and backed up

It also should make dms and group chats more private on nostr

So when clients want to show information about you, they have the perfect single relay with all the information

Yes, fantastic work. Thank you publishing.

What about file storage? Do we already have a way to break dependency to external file servers like nostr.build for images and small videos, or is there a way for your relay to also safeguard these resources?

This is my next feature trying to figure out with blossom

Always on top of the game! ☺️

based

nostr is winning

Decentralization always wins

Fucking based 👀 would love to see a version packaged on start9 or umbrel

yes!

Is this something that’s only useful in a client like Amethyst? I’ve seen briefly in screenshots that it has slots for different types of relays (I’ve seen dm relays in 0xchat) but I haven’t seen this in clients like Damus or Nostur. Is it useful for them as well?

Clients will eventually catch up 😉

Got it. Only for clients who support multiple types of relays, for now

Not necessarily, just having your own relay with all your notes and backing them up ar a huge benefit even if you don't use the individual relays

Ah so I can still use all the smart features, even if I’m using a client like Damus. That’s good to know. Thanks!

yep, this stuff is about controlling who uploads to it not how

Thank you for the hard work and the deep thought that I do know went into this. And thank you for a user friendly breakdown. Creation is divinity. 🫡

Sir, im trying to work here (not really). Save the releases for after regulat business hours

Ah well

i'm so dumb. i ran this in a container and didnt even consider "where's the db/data??" smh. I will have to check this out after work

It seems like you're not working on Nostr full-time. Explain yourself.

Im just a pleb in the fiat mines

Happy mining 🍻 don't forget to purple pill your boss

I wish we actually ran a private node to simplify apis between applications/teams but i don't understand nostr enough to push for that

😝😝😝

Nice! Excited to try!

Thank you!

Can it filter the Nip05 only? Like nostr:nprofile1qqsqgc0uhmxycvm5gwvn944c7yfxnnxm0nyh8tt62zhrvtd3xkj8fhgprdmhxue69uhkwmr9v9ek7mnpw3hhytnyv4mz7un9d3shjqgcwaehxw309ahx7umywf5hvefwv9c8qtmjv4kxz7gpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7s3al0v did on his relay?

No, I don't like this method

But why not add the option others like it you don't have to use it 😅

If others want to code that up that's fine, I'm focused on different things

Will test it asap 👏👏👏

?cid=2154d3d7zu9t89jerr37gt7tndcvqt9cg7eoepk2w4goild8&ep=v1_gifs_search&rid=giphy.gif&ct=g

reply guy was unleashed to have nostriches figure out the right relays .. this is one of them !

thank you nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8

nostr:nevent1qvzqqqqqqypzpckv7l8jqspl8u4y54dn9rcduwlrs4v2040nxce0m2h0cunvrj8tqqsqqqqqsf8d788gexacn8cqzgflu8ul6zvd93xdl3z3zak427gu2mg00y5t0

https://github.com/bitvora/haven/pull/1

Haven is now running as a hidden service and I am testing everything. Best of all with Amethyst. I just quickly created a PR for Docker.

nostr:nevent1qvzqqqqqqypzpckv7l8jqspl8u4y54dn9rcduwlrs4v2040nxce0m2h0cunvrj8tqqsqqqqqsf8d788gexacn8cqzgflu8ul6zvd93xdl3z3zak427gu2mg00y5t0

Yeeees, more exploration of All-in-1 relay (and even media server) solutions!

Here for it 😍.

Can't wait for setups like these that integrate monetization and scale to the community level.

Is there anything (besides client UX/UI) stopping people from setting a price for their Chat Relay?

Competition from "free" relays and many of us chatting on other networks.

I'm not looking at those relays for my DM inbox though (and everybody can see that, since I sign an event to say where I'm looking).

I would very much like to set a price for a private line of contact with me (for npubs not in my contacts/follows) and I'm nobody. Imagine the more valued npubs.

People might pay to scream at me, that's true. Then I wouldn't have to run away and hide, as I could monetize their hate. 😂

There's more to come

👀

A Nix Flake would be great. I can help with this.

Does the S3 support also work with minio?

👀

nostr:note1qqqqpqjwmuww3jdm3x0sqysnlc0el5yc6tzvmlz9z9md24u3c4ksla9wl9

Aand here we are :) wss://wot.nostr.sats4.life/

Great job nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8 !!!

Your nip05 is not verified

And now you see why I don't like it

I missed something here... Were you talking about nip05 or about myself??

Nip05 as spam prevention strategy

Yep sure. Totally!

Thanks! I broke the NIP05 when enabling the relay. Now it is back.

Can’t wait to try it out

Vamos a probarlo utxo 👏🫡

IM NOT A DEV...

With a ready to go docker compose and everything. Thanks! I'll be trying it soon :).

Cool. Look like a Dockerfile just showed up in the repo. I’ll try that.

Is it posible to run un start 9?

Not yet but maybe someone will build it

Quick noob question: What is the best practice for relay keys? Should I generate 3 new key pairs (one for each type of relay)?

Nah I don't, but if you wanted your relay to be more anonymous it might be a good option

Thanks. Out of curiosity, what are you doing? Are you using your Nostr account key for all relays?

Yep my npub on all of them

Awesome. Is this a sequel to wot-relay or a completely new project?

Completely new

WoT relay is to run a public relay for the network

Haven is a personal relay that revolves around you

When you say aws S3, it means any compatible API such as minio, or just aws S3 an nothing more?

Right now just s3, I hope people will add more with PRs

I probably won't be able to check it out until the weekend. 😭. Too much to do on my day job...

This reminds me, I'm not using an S3-compatible solution for backup. So far, I've had to set the backup provider to a placeholder value and the interval to a large number to avoid the '🚫 We only support AWS at this time' errors. Is there a better way to disable backups through the settings? Otherwise, I'm happy to contribute a flag to disable backups altogether.

It's on my to-do list to handle "none" or something or enabled=true or something, but would be happy if someone PRd this

Will do if you don't get to it first :). Thanks!

Fuck yeah brother 🤙

Anyway to run on a Mac or these are Linux only?

It probably runs on Mac but haven't tried

I managed to run a containerised deployment with Podman/Podman Compose on macOS Sequoia. It builds fine and should work on bare metal, but I haven't tested that yet.

🤯

If I want to package this on StartOS, would I be allowed to? Anyone want to help?

MIT license you are free to do anything 🐸🧑‍💻✅

Okay, cool. I'm currently trying to use llama3 to make a service.yaml file to package it for StartOS.

Bloody legends.

I came to see if StartOS was an option.

god i love open source culture. big up yourself nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8🤗

I like this. I’ll try it out. Any recommendations for an iOS client that will support this setup?

By chance did the name come from Metal Gear?

Yay! Running mine just now. haven.girino.org

lets' see how badger behaves this time.

More and more reasons to set up own server for nodes and relays

nostr:note1qqqqpqjwmuww3jdm3x0sqysnlc0el5yc6tzvmlz9z9md24u3c4ksla9wl9

Ooh nice! My next personal project

✌🏼✌🏼

Great! Excited to see Haven boosts Nostr’s decentralization!

This makes me happy. Thank you 🙏 😊

Hey utxo,

I'm running multiple NICs with a dual-stack network, and unfortunately, the hardcoded binding to 0.0.0.0:3355 is causing issues for me. Would you be open to contributions if I created a small PR to make the binding address and port configurable (while still defaulting to 0.0.0.0:3355)?

Fantastic! can't wait to try it out!

same!

nostr:npub1ktt8phjnkfmfrsxrgqpztdjuxk3x6psf80xyray0l3c7pyrln49qhkyhz0 this looks cool, is it something laymen like me can / should be running?!

Sorry, on vacation so haven’t checked nostr in a while. I haven’t looked at this but shouldn’t be too hard for ya to set up🤙

Hey nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te009skyafwd4jj7qgswaehxw309ahx7um5wghx6mmd9ux0xprj you are outdated about nostr relays we have relays that communicate with other relays here is one example

nostr:nevent1qqsqqqqqsf8d788gexacn8cqzgflu8ul6zvd93xdl3z3zak427gu2mgpzdmhxue69uhhwmm59e6hg7r09ehkuef0qgsw9n8heusyq0el9f99tveg7r0rhcu9tznatuekxt764m78ymqu36crqsqqqqqpyqd7xf

Go ahead and smack me for saying this but when will I find Haven in the Umbrel app store?

Private is asking for authentication, how do i authenticate to it? which clients have support for authentication?

Amethyst, nostrudel, coracle

Definitely needs auth

Do i have to configure something for the authentication to occur? or does the client do it for me? nostrudel just tells me sending to it failed, because it requires auth. couldn't find a way to authenticate.

Clients should do it for you. The first version of Haven has an auth bug, please update to latest and try if you haven't

that's probably it then. will update when i get home!