Nostr I2P Relay Tutorial
So I saw Ryan's post on how you can run your own Nostr relay over Tor using Citrine and figured I would try the same on I2P.
View quoted note →
It took quite a bit of trial error, but eventually I got it to work.
You will need:
- Android (unless Amethyst becomes available on iOS)
- Amethyst installed
- Citrine installed
- I2P installed
***Citrine Configuration***
First, you will need to set up your local relay on Citrine. The default port is 4869, but I changed it to 8080. You can change it to any port you want. You also need to put your npub as relay contact.

Once you have done that, you will also need to whitelist your npub in accept events signed by and events that refer to so you'll be allowed to post using the local relay.

It's also a good idea to enable authentication if you want WoT for your relay to lock things down.

***I2P Configuration***
Now that Citrine is configured. You must configure I2P so it can route Nostr traffic over the I2P network.
It doesn't matter what kind of I2P service you use for this step, but for my case, I preferred using I2Pd on Invizible Pro because it was the simplest way.
In your tunnels.conf, write the following configuration for your I2P Nostr relay:
/``````[Nostr Server]
type = server
host = localhost
port = 8080 # Same port that you used on Citrine
keys = nostr-server.dat
inbound.length = 8
inbound.quantity = 16
outbound.length = 8
outbound.quantity = 16
The configuration will be different if you use a different I2P iteration, such as I2P .
After doing this, I restarted I2Pd and then went to 127.0.0.1:7070 to get my address for my relay.

Once you see your relay, you have completed the steps on I2P.

***Adding relays to Nostr***
If you haven't already, add your Citrine relay to Amethyst by pressing your PFP and going to Relays. Once there, scroll down to Local Relays and add your Citrine relay, which will be ws://127.0.0.1:your-port

Once you've done, add your Nostr I2P relay address to your Public Outbox, Public Inbox, DM Inbox, and Private Home Relays. Your address will be in this format:
ws://your-address.b32.i2p:your-port
Once you have done that, hit Save and you are finished.
Now it may take a few minutes and you may start getting these errors, but they'll go away soon because I2P relays tend to be slower than Tor relays from my experience.
I have my own I2P Nostr relay if you want to try it out. I look forward to seeing how it functions over the next few days. Let just me know if you're interested and I'll add you to the whitelist. My relay is below.
ws://6skmgu3kgo527fpkofbi5srubrj4tqmxbozvn5ubrwh2jyo7lmva.b32.i2p:8080
Stay sovereign my friends!
#Nostr #Tor #I2P #I2Pd #Amethyst #Citrine #Tutorial #DIY #Zap #Citrine