Run Your Own Nostr Relay on Your Android Phone

Run Your Own Nostr Relay on Your Android Phone

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:

  1. Installing apps via Zap Store
  2. Setting up Citrine as your relay
  3. Exposing it over Tor with Orbot
  4. 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

  1. Open Orbot
  2. Go to settings and find Hidden Services (or “Tor Hidden Services”)
  3. Add a new hidden service pointed at the port Citrine is using (e.g. 4869)
  4. Orbot will generate a .onion address. 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

  1. Click the FoxyProxy icon → Options
  2. Go to ProxiesAdd
  3. Fill in:
    • Title: Onion Resolver (or anything you like)
    • Type: SOCKS5
    • Hostname: 127.0.0.1
    • Port: 9050
  4. Scroll down to Proxy by PatternsAdd Pattern
    • Title: onion
    • Pattern: *.onion
  5. Save
  6. 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.


No comments yet.