Run Your Own Nostr Relay on Your Android Phone
- Step 1: Get Zap Store
- Step 2: Install and Configure Citrine
- Step 3: Expose Your Relay Over Tor with Orbot
- Step 4: Add Your Relay to Your Nostr Clients
- Step 5: Connect from Desktop
- You’re Done
You don’t need a server. You don’t need to pay for hosting. Your Android phone is enough to run a personal Nostr relay, accessible from anywhere, over Tor, for free.
This guide covers:
- Installing apps via Zap Store
- Setting up Citrine as your relay
- Exposing it over Tor with Orbot
- Connecting from desktop browsers using Tor + FoxyProxy
Step 1: Get Zap Store
Zap Store is a Nostr-native app store. Apps are published by their creators directly on Nostr, so you can follow the developer, see their other work, and zap them to support development, all without ads or shady monetization.
Discovery can take some getting used to, but there are genuinely useful apps there that you won’t find pushed by algorithm or paid placement. If someone you follow builds an app, you can find it on Zap Store and follow their work directly.
Install Zap Store first. We’ll use it to install the other apps in this guide.
Step 2: Install and Configure Citrine
Citrine is a Nostr relay that runs locally on your Android phone. It’s made by the same developer as Amber (the popular Nostr signer app), which is a good trust signal. Install it from Zap Store (or Play Store).
Once installed, you have a few options for how permissive your relay is:
Option A: Personal relay only
Only store events from your pubkey or events that mention you. Your relay stays small and relevant to you only. Good default for most people.
Option B: Open relay with auto-cleanup
Allow anyone to publish events to your relay, but run automatic cleanup so old events get deleted. You can configure it to never delete your own events while cleaning up everything else.
Option C: No filtering
Accept and keep everything. Generous, but be aware: your relay is open to spam and your storage will fill up over time.
Pick what fits your use case. After configuring, Citrine will start listening on
a local port (default: 4869). Note this port number — you’ll need it in the
next step.
Step 3: Expose Your Relay Over Tor with Orbot
Your relay is running, but it’s only accessible locally on your phone. To reach
it from other devices and networks, you’ll use Orbot to create a Tor hidden
service (.onion address).
Install Orbot from Zap Store or Play Store.
Create a hidden service
- Open Orbot
- Go to settings and find Hidden Services (or “Tor Hidden Services”)
- Add a new hidden service pointed at the port Citrine is using (e.g.
4869) - Orbot will generate a
.onionaddress. Save this, it’s your relay address
Whitelist Citrine in Orbot
In Orbot’s app list, enable Tor only for Citrine. This routes Citrine’s traffic through Tor but leaves all your other apps unaffected.
Set Orbot as Always-On VPN
Go to Android Settings → Network → VPN, find Orbot, and enable Always-on VPN. This makes Orbot start automatically when your phone boots, keeping your relay reachable without manual intervention.
Do not enable the “Block connections without VPN” / kill switch option. Since only Citrine is whitelisted, enabling it would cut internet access for all your other apps.
Your relay is now live. The .onion address works over mobile data, Wi-Fi, any
network, no port forwarding, no static IP needed.
Step 4: Add Your Relay to Your Nostr Clients
Your .onion relay address looks like: ws://youraddress.onion
Add it to your relay list in your Nostr client. Most mobile Nostr apps
(Yakihonne, Amethyst, etc.) have built-in Tor support and will connect to
.onion relays automatically once you add the address.
Step 5: Connect from Desktop
Most mobile apps work out of the box, but desktop browsers can’t resolve
.onion addresses natively. Fix this with Tor + FoxyProxy.
Install Tor
You need Tor running locally. Install it however you prefer. On macOS and Linux, Homebrew is the easiest way:
brew install tor
brew services start tor
Homebrew itself can be installed from brew.sh. Once running,
Tor listens on localhost:9050 (SOCKS5).
Install FoxyProxy
Install the FoxyProxy extension for Firefox or Chromium-based browsers.
Configure FoxyProxy
- Click the FoxyProxy icon → Options
- Go to Proxies → Add
- Fill in:
- Title: Onion Resolver (or anything you like)
- Type: SOCKS5
- Hostname:
127.0.0.1 - Port:
9050
- Scroll down to Proxy by Patterns → Add Pattern
- Title: onion
- Pattern:
*.onion
- Save
- Back in FoxyProxy popup, switch mode to Proxy by Patterns
Now your browser will route only .onion addresses through Tor, leaving all
normal traffic unchanged. The goal here is connectivity, not anonymity. You’re
just making .onion addresses resolvable.
Open your web-based Nostr client (e.g. Yakihonne web, Primal) and add your relay. It will connect.
You’re Done
You now have a personal Nostr relay running on your phone, reachable from anywhere in the world. No server, no fees, no central point of failure. Your data lives on your device.