Supercharge your home cloud with Umbrel OS and Raspberry Pi
The Cloud is just someone else's computer
- Anonymous
We are all familiar with the above sentence. But it does not tell the whole story about modern-day cloud infrastructure and its complexities that we rely on every day. When cloud computing gained traction, it only offered raw compute (e.g. Servers with CPU, RAM and Storage). We call this kind of cloud offering Infrastructure-as-a-Service (IaaS).
Built on top of IaaS, Platform-as-a-Service (PaaS) like managed databases, container hosting platforms emerged. Some popular examples are the GCP App Engine, AWS Elastic Beanstalk, Azure App Service etc.
Finally, we get to the Software-as-a-Service (SaaS) paradigm which is the most used format of Cloud Computing we use daily. Some examples are given below:
Category | Software |
Gmail, Outlook | |
Cloud Storage | Google Drive, Onedrive, Dropbox |
Social Media | Meta (Facebook, Instagram), X (formerly Twitter) |
Music Streaming | Spotify, YouTube Music, Apple Music (formerly iTunes) |
Productivity | Microsoft 365 (Word, Excel, Powerpoint, etc.), Google Workspace (Docs, Sheets, Slides, etc.) |
Messaging Apps | Whatsapp, Facebook Messenger, Telegram |
Video Conferencing | Google Meet, Zoom, Teams |
As we can see, we are surrounded by Cloud-based SaaS software and it is challenging to imagine modern life without them. In this blog, we will see how we can replace the impact of some of these services or improve how we use software with a low-cost home cloud solution. But first, we need to talk about network-attached storage or NAS devices.
What is a NAS?
Network Attached Storage or NAS is a device on your network that acts like a big shared storage device. NAS devices are very similar to desktop PCs, they contain a CPU, RAM, Storage and very good networking hardware, but they do not have a display attached - they are accessed via Web UI, SSH, NFS or SMB. Commercial dedicated NAS devices have 4+ hard drive bays and network support ranging from 2.5 GBps to 10 GBps. These devices usually have hardware RAID chips that offer data sharding, redundancy and failure recovery. The main idea of a NAS is mostly to offload your storage needs from personal devices to a dedicated and always online device. You can store documents, music, photos, 4K movies, local file backups, etc. in a NAS.
How can you assemble a NAS device?
As I mentioned before, NAS devices are desktop computers with some special power. If you assemble a similar desktop it can act as a NAS with some special OS.
Some of these open-source OSes are -
TrueNAS
OpenMediaVault
Rockstor
Apart from file storage, these OSes offer some PaaS and IaaS services. They can host container platforms and VMs with various levels of difficulty which depends on that particular OS.
Is assembling or purchasing a NAS worth it?
While the OSes that I mention abstract away a lot of underlying complexities, purchasing and maintaining a NAS device require low to high domain expertise depending on the application. If not configured correctly, it can leave your data vulnerable to cyber attacks (if your NAS is connected to the internet), or data loss due to drive failure can be very costly for you or your business.
Also, NAS devices do not make much sense in those countries (or regions) where cloud storage and internet costs are low. I live in India 🇮🇳, and here Internet is one of the cheapest in the world. So people prefer paying for Google One, iCloud or DropBox subscriptions rather than buying a NAS.
In my opinion, if you live in a region where the internet is expensive or slow, or you have a specific business need, then a NAS device makes sense for you. If you are a developer or a tinkerer, build your own NAS, otherwise, invest in a readymade one from any reputed brand like Synology or Asustor.
What if NAS devices offer some SaaS?
As discussed earlier, the Internet and our daily lives run on various SaaS products. What if there was a simple NAS device that we could build, which is way cheaper than any commercial NAS and does not need much expertise to set up, also can run some SaaS services along with basic file storage? Sounds too good to be true right?
I also did not believe it, until I used Umbrel. Some offering of Umbrel includes Nextcloud (self-hosted Google Drive alternative), Plex (Cross-platform media server), Home Assistant (IoT hub for complete home automation), Pi-hole (Network-wide ad blocker), Photoprism (Self-hosted photo and video library), LlamaGPT (Self-hosted GPT powered by Llama 2) and Portainer (Run thousands of apps as a docker container or make your app with a Dockerfile). Also, did I mention that the entire Umbrel platform is open-source, the OS and the apps, everything?
With Umbrel, NAS or Home Cloud suddenly made sense to me! While I made some introduction to Umbrel, let me quickly discuss how I set Umbrel up with a Raspberry Pi and an SSD.
My Humble Umbrel Setup!
Since I used parts from past projects, my Umbrel setup cost is different from the current price. I have included a breakdown of the key hardware and their estimated April 2024 price in Indian Rupees (₹) to help you build your own. If you're located outside of India, you can find similar components on your local Amazon or electronics store.
Item | Cost (including taxes) | Link |
Raspberry Pi 4 Model B (8 GB RAM) | 7199 ₹ | Official retailers |
WD Blue SA510 M.2 250GB | 2759 ₹ | Amazon |
ORICO Aluminum M.2 NVMe SSD Enclosure (Supports m.2 NVMe and SATA SSD) | 1399 ₹ | Amazon |
SanDisk Ultra microSD UHS-I Card 32GB | 369 ₹ | Amazon |
Raspberry Pi 4 Armor Case with Dual Fan | 1259 ₹ | Amazon |
Ethernet cable | 199 ₹ | Amazon |
Total | 13184 ₹ |
Some insights about the hardware
USB 3.0 Speeds: Raspberry PI 4 Model B does not support the full 5 Gbps (625 MBps) speed on its USB 3.0 ports because the USB controller chip is connected to the processor via a single PCIe 2.0 x1 lane which supports speeds of 4 Gbps (500 MBps). Any good branded NVMe PCIe 3.0 SSD(Samsung, WD, Crucial etc.) supports speeds up to 3000+ MBps. So if you are trying to build this, do not spend on a fast NVMe SSD if you only intend to use that SSD in a Raspberry Pi project.
SATA SSDs support speeds up to 6 Gbps. You can grab a 2.5-inch SATA SSD / m.2 SATA SSD and one 2.5-inch SATA SSD enclosure / m.2 SATA SSD enclosure which is cheaper. TL;DR SATA SSDs and their enclosures cost less than their NVMe cousins.
USB Cables: If your SSD enclosure comes with a USB C to USB A cable that supports 5 Gbps or 10 Gbps speeds, you can skip this point. If your SSD enclosure comes with only a USB C to USB C cable with speeds of 5 Gbps or 10 Gbps, you will need one USB C to USB A adapter that supports at least 5 Gbps speed like this. If you do not like the adapter solution, I suggest you find a good USB C to USB A 5 Gbps cable.
Memory variant of RPi: Raspberry Pi 4 Model B is available in 4 GB and 8 GB RAM variants. While UmbrelOS is supported for both, it is always better to get 8 GB of RAM for faster performance.
Power Supply: While the official Raspberry Pi power supply is recommended, you can use any USB-PD compatible mobile charger rated 2.5 A and above.
Installing UmbrelOS
There is a comprehensive installation guide available on the site of UmbrelOS. In short, the steps are following -
Download the UmbrelOS image for Raspberry Pi 4.
Download balenaEtcher to flash the image to the microSD card.
Connect the microSD card to Pi after flashing.
Connect the SSD to any USB 3.0 port (blue port) of your Pi. If you have any data on the SSD please take a backup because it will be erased by UmbrelOS during the setup process.
Connect one end of the Ethernet cable to your home router and another end to the Raspberry Pi. The router must have DHCP enabled for the LAN ports.
Connect the power supply and switch it on.
UmbrelOS will complete the setup within 5 minutes and will be available at http://umbrel.local/ or http://umbrel on Windows.
Once you enter your name and set your password, you will experience something like this -
Umbrel Ecosystem
The App Store
The app store in Umbrel OS has plenty of apps that cover a lot of ground when it comes to self-hosting applications. The categories range from productivity, media, networking, IoT, developer tools and AI. Here's a sneak peek of the app store -
You can browse the app store as a web page here: https://apps.umbrel.com/
My favourite apps
Of all of these available apps, some apps I liked and found very useful. I am listing them below -
Pi-hole: Pi-hole is a network-wide ad blocker and does not require any browser extensions. It can achieve this by blocking DNS queries for the domains where the ads are served. Just install Pi-hole on your Umbrel and configure your router to use the IP of Umbrel as the primary DNS server. Ads will now get blocked by Pi-hole and you get a squeaky clean web browsing experience.
Gitea: It is a self-hosted version control service like GitHub, BitBucket or GitLab. Written in Golang, it is very minimal and can easily run on a Raspberry Pi.
qBittorrent: One of the best open-source torrent clients, totally ad-free. Offload your torrent downloads to Umbrel and transfer them to your device when it is done. This app also comes with an alternative UI of qBitorrent called VueTorrent which is modern, responsive and sleek.
Cloudflare Tunnel: Connect to your Umbrel device from anywhere using Cloudflare Tunnel. This app runs a very lightweight daemon called
cloudflared
to maintain a tunnel, you can easily access your Umbrel apps from the Internet.Home Assistant: Self-hosted home automation system compatible with thousands of IoT devices and services like Amazon Alexa, Google Assistant, Samsung SmartThings or Apple HomeKit. Privacy first and local control makes it a safer home automation choice than cloud services.
Back that Mac Up: An extremely easy-to-use SMB or Samba server is made available to your local network by this app. Then it can be mounted and used as a time machine backup location and data can be restored when needed.
File Browser: A no-nonsense file browser for all your downloads and creations on Umbrel. You can preview basic files, and images, and download them to your machine with this app.
Immich: Self-hosted Google Photos alternative to store, view, edit, and organize your photos and videos. Comes with a companion mobile app for Android and iOS.
Snapdrop: An alternative to airdrop for your local network. Open Snapdrop on both devices that you want to transfer in between and transfer files just like Airdrop.
NextCloud: The most popular self-hosted file storage service. It comes with a beautiful web interface, file-sharing control and many more features. Nextcloud has a cross-platform (Android and iOS) companion app for easy file sync and backup.
Plex and Jellyfin: These are the best self-hosted media servers found on the Internet. Plex is a user-friendly media server with a wider range of features, client app support, and optional paid extras while Jellyfin is a free, open-source option that prioritizes privacy and gives you more control over your media.
MeTube: Download videos from YouTube and watch them later. As simple as that.
Chatpad AI: Alternative UI for ChatGPT with a lot of fine-grained control.
Portainer: This very powerful container hosting platform is intended for power users who are looking to extend Umbrel's capability. Run docker container, compose stacks and manage, monitor, and modify containers, networks and volumes with this. Using Portainer you can run any web app that can be containerized, on your Umbrel.
LlamaGPT (Special Mention): Self-hosted LLM on a Raspberry Pi with a ChatGPT-like UI. It takes 5 GB of RAM to run, so it is not suitable to run on the 4 GB RAM variant of the Pi. While great as a proof-of-concept, the generation is very slow (1 word / second) on the Pi 4 8 GB variant.
Crypto / Blockchain / Web3 Apps (Special Mention): I have avoided listing blockchain-driven apps because I have very limited knowledge of these technologies and have not tested any apps that are available on the Umbrel App Store. If you have used any of these apps, please leave a comment!
All Umbrel apps are containers
Umbrel is by design, container driven. It means every Umbrel app is a container. As the entire Umbrel software ecosystem is open-source, we can look into one of the most basic Umbrel apps - File Browser.
As we can see, it is not rocket science to run Umbrel apps. If you want to build and run your app on Umbrel, you can read the official documentation for Umbrel App Framework.
Umbrel Home
Umbrel sells its own hardware called 'Umbrel Home' with Umbrel OS preinstalled which has some pretty impressive specifications -
Intel N100 Quad-core CPU @ 3.4 Ghz
16 GB DDR5 RAM
2 TB SSD
Gigabit Ethernet
3x USB 3.0 ports
You can get this one if you are interested in a clean and easy-to-use device than my hacky Raspberry Pi setup!
No Hardware Install
If you do not have any hardware, you can run an older version(💡) of Umbrel on a virtual machine to try it out. Install and run a Debian 12 (Bookworm) or Ubuntu 22.04 (Jammy Jellyfish) in a virtual machine on VMWare Workstation, VirtualBox or any cloud platform (kind of beats the purpose of running Umbrel, but it's okay to test it out!).
After the OS is installed, run this command in the terminal and follow the instructions:
curl -L https://umbrel.sh | bash
Limitations
While very promising, as a new platform, it is not entirely free of bugs, as I have encountered a few while using it.
It does not yet have support for any data redundancy technology like RAID. If you are storing any important data on UmbrelOS, please be careful and keep a backup!
Wrapping it up
I never had so much fun exploring an OS before (saying as a former Linux distrohopper)! Umbrel brings along a very new and unique way of setting up a home cloud, and with it, we can somewhat beat internet censorship, and tracking, block ads, and offload some data and tasks from our computing devices! I would encourage all of you who own a Raspberry Pi to try Umbrel, tinker with it and share the experience.
If you are still here, thank you for reading! If you like this work of mine, give a like and please let me know your feedback below in the comment section! Also, share it with someone who might learn something from my work!
Shutting down....🤖
Subscribe to my newsletter
Read articles from Snehangshu Bhattacharya directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Snehangshu Bhattacharya
Snehangshu Bhattacharya
I am an Electronics and Communication Engineer passionate about crafting intricate systems and blending hardware and software. My skill set encompasses Linux, DevOps tools, Computer Networking, Spring Boot, Django, AWS, and GCP. Additionally, I actively contribute as one of the organizers at Google Developer Groups Cloud Kolkata Community. Beyond work, I indulge in exploring the world through travel and photography.