Blog / Tutorials

Run a Monero Node on a VPS — Your Own Private XMR Endpoint

By the NoctHost TeamAugust 5, 20263 min read

When you use a Monero wallet with a default remote node, you are trusting someone else's server with your queries — which addresses you ask about, when, and from what IP. Running your own node removes that trust: your wallet talks only to a node you control, on a server that is yours.

This guide runs a Monero full node on a VPS with Docker, and connects a wallet to it. It is the natural companion to paying for things privately with Monero — own the payment and own the node.

What You Need

  • A VPS with 2 GB RAM and, importantly, enough disk — the pruned blockchain is well over 100 GB and grows
  • Ubuntu 22.04 or 24.04 with SSH
  • Patience for the initial sync (hours to a couple of days depending on the network and disk)

Disk is the real constraint here, not CPU. Size the plan for storage headroom, and prefer a pruned node unless you specifically need the full chain.

Step 1: Install Docker

curl -fsSL https://get.docker.com | sh

Step 2: Run monerod (Pruned)

A pruned node keeps what your wallet needs while cutting disk roughly in half. Save as docker-compose.yml:

services:
  monerod:
    image: sethsimmons/simple-monerod:latest
    restart: always
    volumes:
      - monero:/home/monero/.bitmonero
    ports:
      - "18081:18081"
    command: >
      --rpc-bind-ip=0.0.0.0
      --confirm-external-bind
      --prune-blockchain
      --restricted-rpc
      --no-igd

volumes:
  monero:

The --restricted-rpc flag is important: it exposes only the safe wallet-facing RPC methods, not administrative ones. Bring it up:

docker compose up -d

Step 3: Watch It Sync

The first sync is the slow part. Follow progress:

docker compose logs -f monerod

You are waiting for the height to catch up to the current network height. This is a one-time cost; after that the node stays current with minimal effort.

Step 4: Lock Down the RPC

Do not leave port 18081 open to the whole internet. Two good options:

  1. Firewall it to only your own IPs with ufw.
  2. Better, reach it over a WireGuard tunnel and bind the RPC to the VPN interface, exactly like the Pi-hole setup — your wallet connects through the tunnel, the node is invisible to everyone else.
Tip — A public restricted-RPC node is not the end of the world, but a private one is the point. If you went to the trouble of running your own node for privacy, do not then announce it to the internet.

Step 5: Point Your Wallet at It

In the official Monero wallet (GUI or CLI), set the daemon to your node:

Daemon address: your-server-ip:18081   (or the WireGuard address)

Your wallet now syncs against your own node. No remote server sees your queries, and you are contributing to the network's decentralization at the same time.

What It Costs

The node itself is light on CPU and RAM; disk is what you pay for. On NoctHost you pick a plan with enough storage headroom and pay hourly from a prepaid balance topped up with — fittingly — Monero, with no card and no KYC. Running your own XMR node on a server you funded privately closes the loop on payment privacy.

Spin one up in about a minute

Email signup, pay with crypto, hourly billing. Trying a box costs cents — destroy it when you are done.

Deploy a server

Frequently asked

How much disk does a Monero node need?
A pruned node is well over 100 GB and grows over time; a full node is roughly double. Storage, not CPU or RAM, is the sizing factor — leave headroom.
Do I need a full node or is pruned enough?
Pruned is enough for a personal wallet endpoint and uses far less disk. Run a full (unpruned) node only if you specifically need the complete historical chain.
Is running my own node more private than a remote one?
Yes. With a remote node, that operator sees your wallet's requests and your IP. Your own node keeps those queries on hardware you control — especially when you reach it over a VPN tunnel.
How long does the first sync take?
Anywhere from several hours to a couple of days depending on network conditions and disk speed. It is a one-time cost; after that the node stays current with little overhead.

Keep reading