Bitcoin Node Setup with Umbrel OS
Setup your own Bitcoin node on a raspberry pi the easy way by leveraging Umbrel, a home server OS. This tutorial will also cover the installation of an Electrum server to easily connect your wallets.
This tutorial is ideal for beginners with basic or limited technical skills.
Hardware list
This is the hardware I use in this tutorial.
- Raspberry Pi 4 or 5, with 8GB of RAM
- 2TB external SSD with USB connectivity
- 32GB micro SD card
- micro SD adapter
- RJ 45 cable
You'll find that on Amazon or anywhere else.
You can also use an old PC instead if you have one. Make sure it has at least 8GB RAM, 1TB disk and 4 CPU cores.
You can use a 1TB SSD instead of 2TB but note that as of Jan 2025 the blockchain is 715GB.
The RJ 45 is optional if we want to input wifi credentials pre-boot.
Eventually you can also buy a protective case for the pi.
Flash Umbrel OS
Download
Download Page ⇒ https://github.com/getumbrel/umbrel/releases
Download either umbrelos-pi4.img.zip or umbrelos-pi5.img.zip depending on your pi model.
Once it's downloaded, unzip it and find the .img file.
Flash
Connect the micro SD to your computer via the adapter. Next, find your micro SD block device name:
lsblk -o NAME,FSTYPE,FSSIZE,FSAVAIL,MOUNTPOINT
We assume it's /dev/sda for this tutorial but make sure to replace by yours.
If the micro SD was automatically mounted, ensure you unmount it along with any potentially mounted partitions. For example:
sudo umount /dev/sda1
sudo umount /dev/sda2
sudo umount /dev/sda
Now we can flash the .img into the micro SD:
sudo dd if=/home/alex/Downloads/umbrelos-pi4.img of=/dev/sda bs=1M status=progress
Wait for the prompt to return, this can take a while. Once finished you can safely eject the micro SD.
Windows & MacOS users can use Etcher instead and follow this tutorial.
Assemble the hardware
Make sure you got everything from the Hardware list. Then assemble it as follow:
- Insert the microSD card into the Raspberry Pi.
- Connect the SSD to the Raspberry Pi via a USB 3.0 port.
- Use an RJ45 cable to connect the Raspberry Pi to your modem/router.
- Plug in the Raspberry Pi's power supply.
Once the Pi boots, wait for 10 minutes for Umbrel OS to install.
Umbrel will automatically detect the SSD and configure it as storage.
Setup Umbrel OS
Setup
From a computer on the same network, access your node at http://umbrel.local.
Follow the setup steps. Leave all settings at default and choose a strong password.
Remote access
For now, the node is only accessible on your home network. To enable remote access from anywhere, we'll use Tor. In Umbrel OS, go to Settings and turn on Remote Tor access.
A .onion address is generated and you can now access your node from anywhere through Tor.
Use Tor Browser on PC or Orbot on mobile to connect to your node remotely.
Install Bitcoin Core
Go to the Umbrel app store and download the Bitcoin Node application. This app is pretty much a wrapper of Bitcoin Core with a very nice GUI (sources here).
Launch it and go through the setup by simply leaving all settings at default. Your node will now connect to remote peers to download and verify the entire blockchain.
Processing will take longer as it approaches more recent years due to the larger number of transactions in later blocks.
Even with a great internet connection this will take from a few days to a week to complete. If you sync through Tor-only this can take even longer.
Install an Electrum Server
An Electrum server is an indexing layer built on top of Bitcoin Core. It enables more efficient blockchain queries and easier wallet connections. Most wallets support Electrum connections.
Download Electrs on the Umbrel app store. It's a Rust implementation of Electrum server (sources). Then launch it, leave all settings at default and let it synchronize with the blockchain.
The electrum server syncs and re-indexes the blockchain to enable more efficient queries. This process will take approximately 12 hours to complete.
Connect your wallet to your node
Choose a connection method
Open Electrs, you'll notice 2 methods of connecting: Local Network and Tor.
Local Network
If you connect via local network, your wallet won't be able to reach your node when you leave home. In addition SSL is disabled by default which means your data transits in clear on your local network.
We can solve this by enabling SSL and setting up port forwarding which I'll cover in the future.
Unless you do the above by yourself, I would recommend to avoid connecting this way. Your ISP and unexpected network guests could spy on you.
Tor
Tor is excellent for security and privacy. Additionally, by having our Electrum server behind an onion hidden service, we benefit from:
- End-to-end encryption
- Client and server anonymization
Connect your wallet to your node
Make sure your wallet supports connecting to Electrum servers. Most wallets do.
The setup is simple: just add your Electrum server's address and port to your wallet's node settings.
If you're connecting through Tor, you'll likely need to configure your wallet to use Tor's proxy (127.0.0.1:9050) and ensure Tor is running (unless your wallet comes bundled with it).
I will make a more detailed sections about connecting and configuring wallets in the future.