A relay on your own PC: thinking out loud about FIPS and local sync
Last night Lez (lez@nostr.hu) left a reply that has stuck with me:

Please also consider FIPS and a relay running on the PC to sync with mobile. The advantage: when PC and mobile are on the same LAN, it connects directly, saving a round-trip to the Internet and back, which is a game changer when decrypting DMs for example.
I think Lez is right, and it lines up with something I have wanted for Omostrich for a while: reaching my own machines without leaning on Tailscale or a VPN. So I spent some time looking at what already exists. This is not an announcement. It is me thinking out loud, and I would love to hear from people who have tried any of this.
Why a relay on the PC makes sense
Right now most of us send every note, reaction and DM out to a relay somewhere on the internet, and then pull it back down onto the phone sitting next to the laptop. That works, but it is slow, it depends on someone else’s server being up, and it means your data is only as private as that relay.
A relay on your own computer flips that around. Your PC holds a full copy of your own events. Your phone talks to it directly when you are home, and everything syncs out to the public relays when it needs to. Decrypting a long DM thread from a box on the same desk is a very different experience from fetching it across the internet.
FIPS
FIPS (Free Internetworking Peering System) is a mesh network where each machine’s identity is a Nostr key. Every node gets a private IPv6 address tied to its npub, finds peers by publishing signed adverts on Nostr relays, and uses encrypted Nostr messages to punch through home routers. It can run over the internet, a LAN, Tor, Bluetooth, Ethernet and even radio. Ordinary tools like ssh or a ws:// relay URL just work on top of it.
It is exactly the shape of thing I had in mind. It is also young. The README says the protocol and APIs are not yet stable, a security audit is the top item on the roadmap, and the most recent release was mostly security fixes. That is healthy for a project at this stage, and it is moving fast, but I would not lean on it for anything important yet. I do want to run it on my own machines and help where I can with testing and bug reports.
Other options I looked at for the “reach my own machine” part:
- Tailscale or Headscale. Still the most reliable choice today. Headscale lets you run the coordination server yourself.
- Iroh. A mature Rust library (1.x) that connects directly when it can and falls back to a relay server you can host yourself. If Omostrich ever needs its own peer-to-peer link, this is probably where I would start.
- Yggdrasil and Reticulum. Older mesh projects. Reticulum is strong for radio and offline use. Neither uses Nostr identities.
- Tor onion services. Very mature and work through any router, but slow. Citrine on Android already offers this.
The relay part already mostly exists
The nice surprise is that the relay and sync side does not need much new work. NIP-77 (negentropy sync) lets two relays compare what they have and only send the difference.
- strfry can sync both ways with a relay in a single command, filtered to your own pubkey. FIPS even ships an example of running strfry reachable only over the mesh.
- Haven is a personal relay with import and backup built in.
- nostr-relay-tray is a desktop relay app, and as Lez points out, there is work there toward exactly this kind of syncing.
- Citrine does the same job on Android.
relay.pleb.one already answers NIP-77 sync requests, so pulling your history down to a local relay works today. Pushing back up works for members of the relay.
What I might do with this
Nothing is decided, and I am trying hard not to start new projects this month. But the first experiment is small and needs no new code:
- Run strfry on my own PC with a timer that syncs my events with relay.pleb.one.
- Point my phone at it over the LAN, and later over FIPS.
- If that holds up, package it as a simple “pleb.one local” setup for Omarchy so anyone on the relay can do the same.
I would only build something new if the existing tools fall short, and I suspect they will not.
Thank you to Lez for the nudge. If you are running a local relay already, or you have been testing FIPS, I would really like to hear how it is going.