How to Homelab: 3 awesome apps to run on your Raspberry Pi

YouTube player

Required Hardware

Since this video is focused on the Raspberry Pi, you’ll need the following:

A Raspberry Pi board

An SD card (preferably a fast one)

An AC adapter

Check out the LearnLinuxTV affiliate store (commission earned) for various hardware options, and to support the channel.

Optional Hardware

You may consider buying a case for your Raspberry Pi, to not only protect it, but to make it look cool as well. You might want so consider a rack case as well. In addition, you may benefit from a POE hat if you have a switch or router capable of powering ethernet devices.

Consider: Argon ONE V2 case GeeekPi Cluster Case POE Hat

Installing Raspberry Pi OS

I recommend the “Lite” edition of Raspberry Pi OS, but you can still use the desktop version if you want. It probably won’t make much difference unless your Pi has very little memory. You can download Raspberry Pi OS installation images here.

You can also check out the official Raspberry Pi Imager here.

Setting a Static IP or Static Lease

This is optional, but strongly encouraged! In your homelab, you won’t want the IP address of your Pi to change. You can set a static IP if you want, but I recommend instead setting a static lease (also known as a DHCP reservation) instead. This way, your Pi will always get the same IP address, even if you replace the SD card.

Enabling OpenSSH (optional)

I recommend enabling OpenSSH before you boot up your Pi for the first time. After flashing the SD card, reinsert it into your PC, then create an empty text file with the name “ssh” inside the volume labeled “boot”. This will cause OpenSSH to enable itself during first boot.

Enabling WiFi (optional)

If you can, it’s better to use Ethernet rather than WiFi. But if WiFi is your only option, then you can enable WiFi easily by using a config file.

First, visit this site to view your country code.

Next, on your SD card, save the following file in the root of the boot volume on your SD card:

wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<Alpha-2 code from the Wikipedia article>
 network={
   ssid="<WIFI NAME HERE>"
   psk="<WIFI PASSWORD HERE>"
 }

Installing Nextcloud

The entire process of setting up Nextcloud on the Pi is the exact same process as I covered in my Nextcloud video. Rather than repeat the same content, follow along with that video to set up Nextcloud. Even though we’re setting it up on a Pi, it doesn’t matter – that process is the same regardless of whether we are using Raspberry Pi OS, Debian or Ubuntu.

Installing OpenMediaVault

Installing OpenMediaVault

OpenMediaVault is very easy to install, it’s simply a single command:

wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash

Accessing OpenMediaVault

Access the IP address of your Pi in your browser. The default username is admin and the default password is openmediavault.

Formatting a storage drive

It’s recommended to have a dedicated storage drive. In the video, I used a 64GB flash drive. You can use fdisk to set up a new partition table on the flash drive, if you need to.

sudo fdisk /dev/<DEV NAME>

Inside the fdisk shell, create a new partition table on the drive:

 o, enter

Then create a new partition, taking up the entire drive:

 n, enter

Keep pressing enter until you’re back at the prompt, then finalize the changes:

 w, enter

Finally, format the new partition:

 sudo mkfs.ext4 /dev/<DEV NAME>

Installing pi-hole

As we’ve done with the other apps, perform the usual tasks of installing all the updates, setting the password and hostname, etc.

There’s actually just a few commands that are used to set up pi-hole:

sudo apt install git

git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole

cd "Pi-hole/automated install/"

sudo bash basic-install.sh

Accessing pi-hole

You can access pi-hole by entering the IP address or hostname of your Raspberry Pi into the address bar of a browser, and adding /admin to the end:

http://172.16.250.189/admin

The password for the admin interface was provided during installation.