I'm keeping this gist here for archival purposes only. It is completely out of date and I don't recommend messing with your Umbrel in that way. Both Umbrel and DietPi have seen extensive upgrades since I first wrote this.
Tested on DietPi v6.32.2
These two scripts aim to generalize the installation of Umbrel on a RockPro64 Single Board Computer using an awesome lightweight distro for SBCs: DietPi.
DietPi comes with dropbear (a lightweight ssh server) enabled, which means you can ssh into the RockPro64 out of the gate without any configuration from a computer on your local network, as long as the RockPro is connected to your router with an ethernet connection. Note that you'll need an IP scanner to discover the local IP address of the RockPro. You can of course also connect the RockPro to a screen and keyboard and work from there without sshing into it.
Prior to running the scripts you should:
- Flash the OS on an microSD card and pop it in the RockPro
- Make sure the RockPro is connected to your router with an ethernet cable
- Power it on!
- You'll need to have mounted an external ssd drive to the RockPro to host the chain data. You can easily set that up in the TUI provided by DietPi. Simply start the
dietpi-launcher
and use theDietPi-Drive_Manager
to format and mount your ssd.
The first step is to navigate to the root directory of your external ssd (that's probably /mnt/<name_of_your_ssd>/
). Running the first script from that location will ensure that the home directory for the umbrel
user created is not on the micro SD card that has the operating system on (which would be too small for the chain data). Make sure your external hard drive has enough space for your needs (a 1TB ssd is fine for a full mainnet node).
The process consists of running two scripts. The first one creates the umbrel
user with a home directory on the ssd drive and the second downloads all dependencies for Umbrel as well as the Umbrel software stack itself. You can use the formula curl hyperlink > filename.sh
to recreate both scripts on your RockPro and then inspect them with cat filename.sh
.
An important thing to remember is that you need to run the first script as root
and the second script as umbrel
.
# root@DietPi
# make sure you are in the root directory of the external drive you wish to use for Umbrel
curl https://gist.githubusercontent.com/thunderbiscuit/e7f83cb62619e1368d6728e42949d21d/raw/aefd701106ed96eace760d4274d39ca6fa49ca63/create-umbrel-user.sh > create-umbrel-user.sh
# inspect the script
cat create-umbrel-user.sh
# run the script
source create-umbrel-user.sh
Exit the ssh session and ssh back in with the umbrel
user (e.g. ssh umbrel@<ip_address>
).
# umbrel@DietPi
# make sure you are in the home directory for the umbrel user (it's called umbrelhome)
curl https://gist.githubusercontent.com/thunderbiscuit/e7f83cb62619e1368d6728e42949d21d/raw/b426e3a60252453ee6956dc8c8a4ed3a98c65920/install-umbrel-dietpi-rockpro64.sh > install-umbrel.sh
# inspect the script
cat install-umbrel.sh
# run the script
source instal-umbrel.sh
Once that is done, you'll need to reboot the RockPro for Docker to work:
sudo reboot
If the script above ran without any error, it will have created a directory called umbrel-node
. Make sure you are in that directory and start your node directly using the following commands:
sudo ./scripts/start # mainnet
sudo NETWORK=testnet ./scripts/start # testnet
sudo NETWORK=regtest ./scripts/start # regtest
sudo ./scripts/stop # stop node
The scripts prepare the distro for Umbrel by accomplishing 6 distinct tasks:
- Changing default
dietpi
user toumbrel
and moving its home directory into the external drive outside of the SD card where your DietPi operating system is (this is necessary because Umbrel will add chain data and the electrs database to your home directory, which would fill up the SD card immediatly if it was kept there). - Install docker
- Install docker-compose using pip3. This is necessary because docker-compose does not support the ARM architecture as of yet.
- Give docker-compose executable permissions
- Install other dependencies
- Create a directory for the umbrel software stack called
umbrel-node
and download umbrel into it
Would be great if this could be updated.
Some changes to repo and what's available e.g new 64bit bullseye, docker compose, etc.
I don't know enough to amend the script, but creating a separate account would be my pref, not replacing default user. Wouldn't all that impact on dietpi scripts and optimised software?