Due to an ongoing discussion about the private use of bitcoin with HD wallets and the advantages that running your own node provides, I've decided to create a really simple guide to help those who are less experienced with Linux. During the discussion some members expressed their desire to run their own node, but were intimidated by having to learn a new OS. Well, rest assured, this guide takes the path of least resistance and is intended for you.
The node system I've chosen for this guide is
Umbrel, largely because of how easy it is to install and operate, the options it provides, and because it can be installed on just about anything that can run on a Linux kernel.
Disclosure: Keep in mind that Umbrel is not "Open Source" software. It is transparent, available for peer review, can be forked, modified, and redistributed, but commercial use of Umbrel is limited. It also offers applets that may not be open-source. More information here:
https://github.com/getumbrel/umbrel/blob/master/LICENSE.mdWhile writing this guide I have made some assumptions:
- You're a Windows user, with a PC or Laptop running Windows and connected to the local network.
- Your node will be running on separate hardware dedicated to the node, (we'll call this hardware the "node server").
- You will interact with the node server remotely.
One of the advantages of Umbrel is that it can be managed remotely by using your favorite web browser from any device that's connected to the same local network, even a phone. This is what makes Umbrel so easy to use and such a practical solution for those who don't care to develop Linux system management skills, but still want to run a full node.
PreparationWe'll get started with a list of what you'll need:
- A USB drive with 4GB capacity.
- A very basic computer with these minimum requirements
- 4GB of RAM (8GB recommended)
- 1TB of storage space (a SSD is recommended, a fast HDD will work fine)
- A temporary terminal (a monitor and a keyboard)
Step 1: Prepare the USB drive:To keep this as simple as possible, I've chosen to use Ubuntu Server as my base OS. Other Linux operating systems will work fine (in fact I prefer Debian,) but out-of-the-box Ubuntu comes configured with all settings which will make this super easy for a newbie. Umbrel will provide the graphical interface, so to keep the install as light as possible all we need is the server package, which does not include a desktop environment. A Linux distro with a desktop environment will also work, but I find this to be redundant and will tax our hardware unnecessarily.
- Download the latest stable (LTS) version of Ubuntu Server's ISO: https://ubuntu.com/download/server
- Use an imaging tool (balenaEtcher, for example) to write the ISO file onto the USB drive.
Step 2: Install the base OS:Next, we'll install a minimized Ubuntu Server as our base OS for the node server.
- Insert the USB drive into an open USB port on the node server.
- Boot the node server to the BIOS boot options page.
- For most Intel mother boards press F8 while the bios is loading, F12 for most Dell machines.
- Once the boot option page loads select the USB drive which contains Ubuntu Server.
- Select "Try or Install Ubuntu Server".
- Follow the guided install to choose your language and region preferences.
- Select "Ubuntu Server (minimized)".
- Enter your profile information.
- [Optional, recommended] Install SSH Server if you want to be able to manage the base OS remotely.
- Do not install any of the "Featured Server Snaps," Umbrel will install the required versions of it's dependencies, including Docker.
- Wait for the base OS to finish installing, then reboot the node server.
- Login with the profile credentials you created.
- Update and upgrade the server's new install with the following command:
sudo apt update && sudo apt upgrade
Step 3: Install and launch Umbrel:If you've gotten this far, you have concluded the most difficult part of our adventure. The rest is smooth sailing.
Umbrel provides a script that will perform the install automatically, start Umbrel, and create a service process that will start Umbrel automatically whenever the node server reboots.
Before we install Umbrel, we'll need to note the IP address of the node server. There are plenty of ways to obtain the IP address, here's one way: Once logged into the server type the following command and note the IP address of the machine:
The response should look something like this:
My example above looks a bit funny because I'm using a virtual machine for demonstration purposes. Typically the hardware issuing your local IP address will be entry number 2 and labeled
eno1, and typical local IPs will be
192.168.x.x or
172.16.x.x, not 10.0.2.15 as in my example.
Now that we have all the information we need, we can install Umbrel. To do so simply type the following command into your command line, and hit enter (Installing Umbrel requires admin privileges, you will be asked for your password):
curl -L https://umbrel.sh | bash
The install will take a few minutes. Once Umbrel is finished installing give it a couple of more minutes for the docker containers to get up and running. After a few minutes it should be ready to use. From another device connected to the same network, open a browser window and type in the IP address or the name we assigned to the node server. In my example above I named my node server "umbrel-node" so I would set this as my URL:
Or you can use the IP address you obtained by running
ip add, for example:
http://192.168.100.105:80
That's it! Now with a single click you can install applications such as Bitcoin Core, Electrs SPV server, Mempool, and much more using Umbrel's graphical interface.
Happy (private) Bitcoining!
Why this is a self-moderated thread:
Please keep the discussion on the topic of Full Node Operating Systems, including Umbrel, MyNode, RoninDojo, and other full node systems I have not mentioned, and how to run them on a machine with a Linux base OS (including Raspberry Pi.) Any posts deriding Windows users, shaming people for using Windows, or shaming people for not knowing more about Linux will be deleted without warning.