Umbrel bitcoin node build & install using Ubuntu Linux

Umbrel bitcoin node build & install using Ubuntu Linux

Umbrel on Linux Ubuntu

This post is a guide to installing Umbrel based upon an Ubuntu Operating System (OS). The quickest and easiest method to getting started with Umbrel is to use a Raspberry Pi 4, however at TheCryptoGarage we are all about building/tinkering and sometimes doing things the unorthodox way…and from any spare hardware that may be left lying around!

We must make it clear that the advertised recommendation from Umbrel is to install on a Raspberry Pi, however, Umbrel does support installation on any Linux based OS such as Ubuntu and Debian, be that virtualised or a host (physical) machine.

Our reason for choosing the Linux route is that we have loads of PC hardware lying about and can easily repurpose an old machine to build an Umbrel node. As long as you meet the minimum requirements for the Linux OS and Umbrel which we discuss below, there is nothing stopping you from building an Umbrel very cheaply!

Try to source an old pc from friends, family, work or even very cheaply from eBay. Our intention was also to modify the case to add a little garage touch (this literally involved spray paint found in the garage) because that’s what we’re about- getting dirty, geeky and techy in the garage!

The last thing to note before we dive into this, is that Umbrel is currently in beta and is not considered secure – the Umbrel team make this clear but also acknowledge that they have many more things to do! With so many people spinning up an Umbrel node they are likely to be beavering away to make Umbrel even more awesome!

Umbrel – become Bitcoin

This post assumes that you’re aware of Umbrel, what it provides and how you’re helping to support the decentralisation of the Bitcoin network! If you’re not aware of Umbrel you should head over to their website for detailed information, however here is a very quick rundown.

Umbrel is free and open-source software which means it’s available to anyone to install!

Umbrel Screen

This provides you with a personal Bitcoin and Lightning node, you can connect common wallets to your node and also access it from anywhere. Ultimately the node and network provide you with very quick transacting but also with very small fees.

Another awesome feature of Umbrel is the ability to install and run apps on your node. More on that in later posts!

Requirements

Our overall requirements are based upon the requirements of the OS and Umbrel, as detailed below. Reviewing each of these is the minimum you need in our proposed setup is the following:

  • 4GB+ RAM *Minimum required for Umbrel
  • 1Ghz CPU *Mimimum required for Ubuntu server
  • 602.5GB Disk space *600GB for Umbrel + 2.5GB for Ubuntu server however you need to consider additional applications which you may install on top of this

Umbrel

The first requirement is that of Umbrel itself considering our option to install on Linux that’s the requirement of the OS, in addition to this it requires 4GB+ of RAM and 600GB+ Hard Drive space (this is required to store the complete blockchain record, at this current time)

Umbrel requirements can be viewed on their GitHub page here.

Ubuntu

Our choice is to go with Ubuntu however we want to keep the OS to the bare minimum and therefore opting to use Ubuntu Server – Essentially you will not have a desktop to log into, but do you really need one? You will be logging into the Umbrel User Interface (UI) via another computer more than likely anyway.

The minimum requirement of an Ubuntu server is 1Ghz CPU, 1GB RAM, 2.5GB Hard Drive Space – if you choose to install the desktop version these requirements will increase dramatically!

Ubuntu server requirements can be reviewed on their site here.

Hardware Selection

With the requirements identified, you can set about selecting some hardware, as we mentioned you can probably run this from an old PC that is no longer used. See if a friend or a family member has one lying around which they no longer use or need. You can also search on eBay for example and find various small form factor PC’s Asus, HP and ACER have all produced these, you may be surprised at how cheap you can pick them up.

asus eebox umbrel

Selected Hardware

Our chosen hardware was an Asus EeeBox which was lying around. The spec on this box is not that great and does not get great reviews, however that’s more than likely to be based upon it running Windows (which these are shipped with) and we’re not interested in that!

The Ram was at 4GB, CPU over 1Ghz but we were unsure on the size of the drive as this seemed to be conflicting online. It is highly likely that this has been tinkered with before, so it is important to crack it open physically and check the hard drive. Also, it needs a blowout as our intention is for our Umbrel to stay on 24/7.

These small PC’s also run on very low power consumption which is an advantage.

Upgrading to meet hardware requirements

The only area which we were uncertain about was the size of the hard drive. Whilst we said that the minimum is 602.5GB, that does not give us much room for growth and use of any potential applications which could be installed on Umbrel through the app store – so we upgraded the box to 1TB as shown below. Yes for those tech-savvy we have swapped out an SSD, but it’s not big enough and we have just used parts that we have lying around. So whilst we could have purchased a lovely new SSD or external drive, so far the build has cost us nothing.

Asus EeeBox Old HDD
120GB SSD Currently Fitted

Asus EeeBox New HDD
Changed to 1TB HDD

Prepare for Umbrel Installation

Once the hardware is prepared, the next step is to look at the Umbrel installation itself. Prior to this we need the Linux OS on the device. Our chosen OS is Ubuntu server 21.04. The reason for choosing the server over the desktop version is to keep this as minimal as possible.

For our case use, we don’t need to use this as a PC so we don’t need a desktop screen or to even plug it into a screen once it’s installed, we just want it sitting pretty so we can look at our beautiful Umbrel node.

For the more technical ones or those that care, we are just installing the Linux Kernel, Basic Linux tools and Debian APT system which will enable us to install Umbrel onto.

Creating boot USB

In order to install Ubuntu onto the device we need to install it, for this we will create a boot USB. This will allow us to boot the device up with the USB which is actually the installation media for Ubuntu. We need two things in order to complete this as follows:

  • USB drive
    • You will need a USB drive which is at minimum 2GB
  • Ubuntu Server
    • You will need to download the Ubutnu server OS from here
  • Rufus boot creation utility
    • This is an application that will create the boot USB. Download from here, and then install

Once you have the three above requirements, we next want to create our boot USB. You can follow the screenshots and instructions below to create the boot USB.

Rufus_Ubuntu_Umbrel_Install
  1. Open the application which you downloaded and installed called Rufus
  2. Insert your USB Drive into the computer you opened Rufus
  3. Under Device pull down select the USB drive in this example it’s called ‘Ubuntu-Server 21.04.amd64’ you need to select the USB which you just inserted to create the boot disk
  4. Under boot selection you need to select the Ubuntu Server OS which you downloaded this will be named the same as shown to the left
  5. Hit start
  6. Once complete Rufus will tell you and you can close the application and remove the USB from your computer

Your boot disk is now ready!

Install Ubuntu

Next is to install the Ubuntu Server OS on the device. You can follow the steps below to complete this.

  1. Connect your device up with a keyboard/mouse, screen and with the boot USB inserted into the device but still powered off.
  2. With the USB inserted turn on your device, if it brings you to a Ubuntu screen then great move onto step 4, if not carry out the next step.
  3. If the device does not boot to a Ubuntu screen with the USB plugged in, we need to tell it to boot from USB rather than the internal hard drive. We make this change in BIOS but to get to there you will need to turn off and back on again. It should tell you when the device is turning on how to enter the ‘Boot Menu’ it’s likley to be by pressing F2, F10 or F12 – Once at in the BIOS find the boot priority and ensure that priority 1 is to boot from USB.
  4. You may arrive at a screen called ‘GNU GRUB’ if so select ‘Ubuntu Server’
  5. Next choose your desired language
  6. Allow it to detect or select you regional keyboard layout
  7. At the next stage it will like you to connect to the internet, the WiFi will not work at this stage so you will need to plug in via ethernet if not already done.
  8. Once connected to the inernet an IP address is shown on screen, press ‘Done’
  9. Unless you’re using a proxy on the next screen (Configure Proxy) press ‘Done’
  10. Leave the default Mirror address by pressing ‘Done’ on the (Configure Ubuntu Archive mirror) screen
  11. At the next screen ‘Guided Storage Configuration’ you can select the disk setup, the standard is to use the entire disk by pressing ‘Done’
  12. The next screen will confirm the file system summary click ‘Done’
  13. Ensure you have opted for the correct disk and confirm action at the pop-up screen
  14. At the profile screen you can provide your name, the servers name and provide the username
  15. At the SSH Setup screen, select to install OpenSSH server and select ‘Done’
  16. We did not opt to install any additional features at the next screen (Featured Server Snaps) this is to keep the Umbrel OS very lightweight click ‘Done’
  17. Once the install completes, the screen will show you (Install Complete!)
  18. Select ‘Reboot now’
  19. Remove the USB drive when it tells you and press ‘Enter’

This should now complete the Ubuntu installation stage, next we need to SSH to the server and set up Umbrel!

Connect to server via SSH

Ubuntu is now installed and we are going to connect the server via something called SSH. To do this we require an SSH client, there are many available however our weapon of choice is called Bitvise SSH Client – this can be downloaded from here and installed if you wish to use the same.

You will need to find the IP address of the server to connect to, you can do this by looking in your router and finding the device by its name – this should have an IP address and it’s probably a good idea to make it static IP whilst you’re in your router.

  1. Enter the IP adress of the device in host
  2. The port should be 22
  3. Enter your username which you setup for Ubuntu
  4. Hit ‘Log in’
  5. Accept the fingerprint
  6. Provide the password at the pop up screen
  7. Once logged in the icons to the left will change
  8. Click ‘Open new terminal’
  9. You now have a SSH connection into your server
Bitvise Umbrel SSH

Install Umbrel

The following instructions have been detailed whilst following the Umbrel installation guide which can be found here. The below commands can be copied and pasted into your SSH terminal directly.

Install Docker Engine

First, let’s check everything is up to date by running the following command

sudo apt-get update

Next, we install packages that ensure APT use repositories over HTTPS

sudo apt-get install apt-transport-https ca-certificates curl gnupg software-properties-common

Next, add GPUG key (used to sign repositories etc)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Add the repository to APT using the stable version

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Now install docker-engine

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

To test docker is installed *this should give you back the version and build

docker --version

To test docker can run a container *this should give you back the text “Hello from Docker”

sudo docker run hello-world

Install Docker Compose

Install docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

To test docker-compose has been installed correctly *This should give you back the docker-compose version installed

docker-compose --version

Install Remaining Umbrel Requirements

To finish the installation requirements before we install Umbrel, these are the remaining items to install

sudo apt-get install fswatch jq rsync curl

Install Umbrel

Create a new directory for Umbrel, if using an external hard drive you may want to create the directory on this drive at this time. If using an internal hard drive you can perform the following to make an Umbrel directory and then change into that directory to install Umbrel

mkdir umbrel
cd umbrel

Download Umbrel

curl -L https://github.com/getumbrel/umbrel/archive/v0.4.0.tar.gz | tar -xz --strip-components=1

Become Bitcoin and start Umbrel

sudo ./scripts/start

That’s it Umbrel should not start and you can follow the on-screen guidance with the IP address shown to login via the very cool User Interface

Re-starting Umbrel

If you need to re-start Umbrel for any reason, you will first need to SSH into the box and then ensure the service is running/started by using the following commands

cd Umbrel
sudo ./scripts/start

Login to your Umbrel

Now that you have completed your install, you can go ahead and log in to your Umbrel and set it up. We have not covered this here as Umbrel has made it very simple and easy to follow! Ultimately go to a browser (hope it’s Brave) and put the IP address into the URL bar. That’s it!

Summary

By the end of this guide, you should have successfully set up your own Umbrel node on hardware that you hopefully already had or found/purchased cheaply. The advantage of using Linux is that it gives you the option to install in many different ways, a small form factor PC, a PC itself or even to virtualise on your own desktop and run it.

Umbrel is designed to be kept on 24/7 or with the most uptime possible if you want to support the network and connect for not just yourself, but for others to route payments through your node.

We absolutely intended to have our Umbrel case modded, in fact, we spent time making a great template cut out of the Umbrel logo and set about spraying it on. It did not go to plan but not everything does! We would love to see your modded Umbrel nodes so do tag us in and let us take a look!

We have only covered getting an Umbrel up and running at this stage, we have not yet gone into the node and started to play around with channels and some of the apps, but we will be sure to do that and post all about it.

Enjoy your new Umbrel node, become bitcoin and be patient whilst the blockchain syncs… It can take a long time but is well worth it!