Homelab Server

I’ve renewed my interest in setting up servers for various home automation tasks. I’ve taken the one-of-each approach to home automation which is fun but hard to get everybody to play together. I use the Amazon/Echo, SmartThings/ActionTiles and Google Home ecosystems. Amazon is mostly for voice control and routines and SmartThings/ActionTiles for tablet kiosks that conveniently cover the holes in the walls where the old intercom and speakers were. I was never able to make OpenHab fit in well in part because of the learning curve. I’m hoping to pull all this together with Home Assistant.

I pulled out the old ASUS AM1M-A/AMD Athlon 5370 APU system and fired it up again. I replaced the Ubuntu Workstation/KVM/QEMU setup with ProxMox which is a Debian based system also using KVM/QEMU with a nice GUI interface. I’m hoping I’ll manage the learning curve better.

This turned in to be a catchall installation for all the servers I run under ProxMox. I plan to enter a separate post for in-depth installaton procedures.

ProxMox

After a struggle to find some good video tutorials for installing ProxMox and virtual machine guests, I found a good place to start with a video by Andreas Spies. I have a few SBCs including a Raspberry Pi 4 file server but it’s really hard to get new ones. This video suggested a used Lenovo tiny computer instead. I already have an M73 running Plex. I liked the idea and found another M73 on Ebay for $50 so I got it. It is close to the price of a Raspberry Pi 4 and doesn’t use a whole lot more electricity and will run VM guests. One of the M73s will run ProxMox with several VM guests. The other will be a smaller travel version with Plex and a few other VMs. It is small enough to travel with me on RV trips.

BIOS settings to change are to enable CPU Virtualization, maximize C State Support and disable secure boot. Download the ProxMox ISO and burn it to a USB drive using BalenaEtcher. Boot from the USB drive and install. Browse to https://<ip address>:8006. Upload an ISO file selecting local storage group and ISO images.

Select the ProxMox server and Create VM using the uploaded ISO file. Use SeaBIOS and Qemu Agent. Be sure to select Windows OS when installing Windows. Go to Proxmox Helper Scripts to get rid of the “No valid subscription” nag screen. Edit: This has been moved to here. Choose Proxmox VE 7 Post Install. Here’s what it looks like today:

Home Assistant

My first VM is Home Assistant. I started out with it on the Rasbperry Pi 3. I’m going to be happier with the extra resources that are available on the ProxMox server. I was able to load this first VM with excellent help from The Tinker Dad’s video.

Download the KVM/ProxMox (.qcow2) file from the Home Assistant website and transfer it to Proxmox using WinSCP. Create the VM by right clicking the Proxmox node in the Proxmox GUI. Once the VM is created, import the image from the command line:

qm importdisk 100 /root/haos_ova-9.5.qcow2 local-lvm –format qcow2

Cockpit

Cockpit helps administer Ubuntu servers with a web-based GUI. Tech Republic helped with the installation.

Nagios

Nagios Core is a network monitoring tool that I’m anxious to explore.

I used the installation procedure from Its Linux Foss to install Nagios. This procedure was straightforward but did not install the current release. I’m checking Arkit for a procedure for the upgrade.

Starting Nagios Core

  1. Init Script: The easiest way to start the Nagios Core daemon is by using the init script like so: /etc/rc.d/init.d/nagios start.
  2. Manually: You can start the Nagios daemon manually with the -d command line option like so: /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg.

Pi-hole

Pi-hole is network-wide ad blocking program originally designed to run on a Raspberry Pi. It also functions as a DNS server for computer name resolution. With several computers on my network, I’m weary from looking up and typing so many ip addresses. Maybe this DNS server will let me use host names instead.

With resources to burn on the ProxMox server, I installed it as a VM. I used the installation procedure on the Pi-hole website. A lot of websites load noticeable faster using Pi-hole for DNS. Some websites detect it and beg or require you to let their ads show. This tutorial should help me get started with adding DNS records.

Wireguard

This will provide remote access to all my network. Here’s a tutorial from DigitalOcean and a video.

Home Networking

The Domain Name System (DNS) has been and still is mostly a mystery to me. What the heck are A records and cnames? I know it doesn’t work well for my homelab servers. I do appreciate the convenience of remembering and referencing a computer name versus a four-octet number (IP address).

When references to computer names are not reliable, fixed IP addresses are a requirement. An easy but unmanageable solution is to put server names and IP addresses in a Hosts file on each computer and to hard code static IP addresses on each computer. Using permanent IP reservations on the DHCP (dynamic host configuration protocol) server is a big improvement, but name resolution is still spotty. If you throw in a Microsoft computer on you network, it has a separate name resolution process – WINS (Windows internet name service). This can help for computers that talk “Microsoft” that are either Windows or have SAMBA (server message block networking protocol) installed (Linux computers).

I dislike the inconvenience of managing static IP addresses. However, fixed IP address for servers are really importantI’m hoping Pihole

I need to update my DNS entry for lynnhargrove.com at NameCheap.

Chrome OS

Try this.

Homelab Dashboard (Heimdall)

I’m going to give it a go with a little help from my friends. I used the the docker install from the Heimdall website – my first docker install. It didn’t make sense but it worked if to browse to https://<ip-address&gt;:8443

Audio Bookshelf

Gotta get it. Or booksonic or bookstack. Do I need filebrowser or handbrake or openwrt?

Unify by Ubiquity

Docker

Rancher

Kubernetics

Grafana

UrBackup

RSync/Grsync

Transmission

Navidrome

OpenWRT

OK, how hard can a BitTorrent server be to install? I eventually used a Raspberry Pi PiMyLifeUp tutorial to install Transmission. Fortunately, it was the current version – 4.0.0. Oh well… I just need to setup a file server VM and point to that for downloads.

Mosquitto

I’m eternally grateful to thousands probably millions of programmers that write useful software that’s available for free on the internet. I need to buy a few more cups of coffee. My frustration with an installation that I can’t make work is a kind of blessing. Installations and configurations that don’t come easy are really just puzzle solving. I love solving puzzles!

To wit: Transmission installation was not difficult, it just took a while to find the instructions. Mosquitto installation was easy but access to the new release not available anonymously or outside the local server. It wasn’t obvious to me. Long story, short – the following additions to mosquitto.conf solved my problem:

listener 1883
allow_anonymous true

That’s all there is to it.

Tiny10 (Stripped Down Windows 10)

Get it here.

Backups

Techno Tim with the professional homelab setup has a way to backup VMs to an NFS share on ProxMox.

Traefik

Need to review.

JellyFin

This seems to be the go-to app for music libraries rather than Plex. I tried the host website but had errors installing. Linux Shout had a simple installation that worked perfectly.

Tag audiobooks with mp3tag or audiobook cutter, also look at booksonic.

Webmin

I tried out Cockpit then decided Webmin would be more useful as a server administration tool. I tried to install it using the website. I had better luck downloading the .deb file from SourceForge and installing it with these commands from Stack Exchange.

Leave a comment