How to Run Nostr, Web3, and IPFS From a Single Home Server

🏠 How to Run Nostr, Web3, and IPFS From a Single Home Server

Want to own your data and host your own network? Here’s how you can use one home server to run a Nostr relay, Web3 site, and IPFS node — without renting cloud infrastructure or relying on big tech.


💡 What You’ll Be Hosting

On one self-controlled server (like a mini PC or Linux box), you’ll be running:

ServicePurposeTech Stack
Web ServerHosts your website or DApp frontendNGINX or Caddy
Nostr RelayDecentralized, censorship-resistant postsnostr-rs-relay
IPFS NodeDecentralized content storagego-ipfs
Web3 DomainPoint your .x domain to local contentUnstoppable Domains + IPFS

🌐 Your Connection: Use Dynamic DNS

Most home internet connections use a dynamic IP, which changes. To make your services available online:

  1. Register with a free Dynamic DNS provider like DuckDNS
  2. Set your router to forward ports:
  • 80 and 443 for web
  • 7447 for Nostr
  • 4001 for IPFS (optional)

Your server becomes accessible at:

https://yourdomain.duckdns.org
wss://yourdomain.duckdns.org/relay

🔧 Server Setup Overview

Install Ubuntu Server or any Linux distro, and set up the services:

1. 🖥️ Web Server (Caddy or NGINX)

Serve your main site and proxy to Nostr/IPFS:

Caddy Example:

yourdomain.duckdns.org {
  root * /var/www/html
  file_server

  reverse_proxy /relay localhost:7447
  reverse_proxy /ipfs/* localhost:8080
}

Caddy handles SSL automatically via Let’s Encrypt.


2. 🌐 IPFS Node

Install IPFS to host your site content:

curl -O https://dist.ipfs.io/go-ipfs/latest/go-ipfs.tar.gz
tar -xvzf go-ipfs.tar.gz
cd go-ipfs && sudo bash install.sh
ipfs init
ipfs daemon

Add your site:

ipfs add -r /var/www/html

Get the hash and point your .x domain to it on Unstoppable Domains.


3. ⚡ Nostr Relay

Run a personal or public Nostr relay using nostr-rs-relay:

sudo apt install git curl build-essential
curl https://sh.rustup.rs -sSf | sh
git clone https://github.com/scsibug/nostr-rs-relay.git
cd nostr-rs-relay
cargo build --release
./target/release/nostr-rs-relay

You can also run it with Docker:

docker run -d \
  --name nostr-relay \
  -p 7447:7447 \
  -v $HOME/nostr-data:/app/data \
  ghcr.io/scsibug/nostr-rs-relay:latest

🧠 Final Result

Once set up, you’ll have:

  • Your Web3 domain (like floridalocal.xmr) pointing to IPFS-hosted content
  • A live Nostr relay at wss://yourdomain.duckdns.org/relay
  • A full website or app served from your home IP, secured with HTTPS

🎯 Why Run It Yourself?

  • 💬 Control your own data and identity
  • 🛰️ Resist censorship
  • 🧱 Host decentralized web apps or communities
  • 💸 Eliminate monthly hosting fees
  • 🛠️ Learn and build real sovereign infrastructure

🧩 Tools You’ll Use

  • Caddy – HTTPS-ready web server
  • IPFS – Decentralized file sharing
  • Nostr – Decentralized communication protocol
  • DuckDNS – Free dynamic IP service
  • Unstoppable Domains – Web3 identity and domain

🛠️ Want Help?

Let me know if you want a starter config, script, or help integrating your own .x domain. This is how we build a free, resilient web — from the ground up.

Similar Posts