Magic Mirror made a really nice kitchen kiosk but it’s time to move on. I installed Raspbian on an old Raspberry Pi 2 and followed a nice tutorial at PiMyLifeUp to set up the kiosk using the Chromium browser. The browser will rotate through a set of web pages on a schedule. In this case it will be my Home Assistant pages.
I stumbled across a Magic Mirror forum post of a build by a non-programmer that used some modules, some custom modules, and a Google Calendar API written by ChatGPT. Very interesting! Installation begins with this.
The opportunity when off-grid is that there are several options for dealing with a limited supply of electricity. There are 12V and 120V needs.
My Sprinter Class C motorhome has a diesel engine. The onboard generator (Onan) runs on propane. The diesel version was unreliable and was discontinued. Therefore, when off-grid, the refrigerator, furnace, range and generator all run on propane. Running out of propane (40 lbs / 9 gal) would be a problem. The generator (120V AC) will run for about 20 hours at 50% load. Using the A/C requires 120V AC and using it for very long is not practical.
Propane Generator
Option one is to install an propane adapter and use a 20 lb supplimental propane tank. These tanks are easy to transport and easy to exchange. The onboard propane tank is permanently mounted hand has a 40 lb capacity. Transporting 20 lb tanks in the basement storage requires ventilation and is a safety concern.
“Suitcase” Generator(s)
Option two is to use “suitcase” inverter generators that use gasoline. A 2000 watt generator will run all appliances except the A/C and can charge the house batteries. A second 2000 watt generator can be run in parallel and will supply enough power to run A/C. A single 3600 watt generator will also work. Carrying gasoline cans in the basement storage is also a safety concern.
Solar / Engine Charging
Option three is to charge the house batteries using a DC to DC charger. This charger uses both solar power (future plan) and engine power to charge the house batteries. If propane is low, it’s a cloudy day and there’s no suitcase generator, this is a good fallback. Here’s a list of resources for implementation:
I have two 100 Ah LiFePO4 batteries for 200Ah total. Charging at 20A from empty to full would take 10 hours. Charging at 60A would take 3 hours and 20 mintues. While my house charger is rated at 60A, shore power is only 30A. Charging time should therefore be 6 hours and 40 minutes. The 2000 watt inverter generator should generate about 10A. It would take 20 hours for a full charge cycle at this rate. The generator should run as much as 10 hours with a light load. The low voltage cutoff is 8.8V.
My Sprinter alternator is rated at 220A. The maximum LiFePO4 battery charge rate is 100A. There is a Renogy 50A DC to DC charger that should charge my batteries in 4 hours.
I want to provide cheap remote surveillance for my motorhome that is in a storage facility. I think a wifi camera and mobile hotspot is the answer. I found a hidden T-Mobile 30gb hotspot plan for $10/month and a T-Mobile Franklin T9 mobile hotspot device for $20. I have a spare Blink Mini indoor camera. Both devices use minimal 12V power. So far, so good.
The problem is that the hotspot shuts down after a few days to save the battery. With the battery removed, the hotspot shuts down after a few days because it “charged too long”. Power cycling the hotspot fails because the power button must be manually pressed to restart the hotspot. Using a timer to charge only part of the day may work but that requires 120v. I want to use power from the 12v RV house batteries without using an inverter. This should extend how long the house batteries last.
It’s time to hack. Rooting and unlocking the T9 is a start. I hope hacking it yields a solution to my problem.
Quicken went to an annual subscription in about 2020 which is the year my version expired. Although I can no longer automatically synchronize Quicken with my financial accounts, I have chosen to update the transactions manually. This is not much of a burden when using memorized transactions.
I just got a new laptop with Windows 11. I installed Quicken 2017 and got a blank page when I tried to open a copy of my Quicken Data File. I was able to get it to work by installing QW2017R20.5MPatch and copying Quicken.ini from a working system to C:\Program Data\Intuit\Quicken\Config.
I ran out room on my computer table for my printer so I moved it to my “communications closet”. This means I need a print server. The Common Unix Printing System (CUPS) is the logical choice. PiMyLifeUp has a nice tutorial. I installed it on a Raspberry Pi 1 which should be adequate. Since I will use it from Windows, SAMBA is needed. The installation was straightforward. Adding my Brother HL-L2300D laser printer was the most difficult part on previous installations. Alexander Belov wrote an alternative driver that worked like a charm.
Update 10/25/25
I reinstalled CUPS and got stuck at adding the Brother printer, as usual. I asked ChatGPT for a script that automatically detected my printer and install the drivers on Debian Trixie (Raspberry Pi OS). It was successful and I was able to add my printer on CUPS with the drivers available in the standard ‘add printer’ routine.
Editor’s note: Well this one got away from me. VPN is not a choice. While I learned a lot from the exercise, a reverse proxy seems to be the solution. I’ve also used this post to document several of the small things I learned along the way.
I have an easy way to implement a home VPN with my ProxMox server or so it would seem. PiVPN with WireGuard seems to be the go-to solution regardless of platform. I recently switched to T-Mobile Home Internet to save a few bucks a month. However, the router has no advance features such as IP reservations and port forwarding. Nor can you turn off DHCP.
To use advanced features, I connected the T-Mobile router (192.168.12.1) to the WAN port of my Asus RT-AC68U (192.168.1.1) which is a full function router. I use it for DHCP and IP reservations. This adds an extra hop (router) to access the internet that doesn’t seem to have much extra overhead. I don’t think this extra hop will interfere with port forwarding to the VPN server on the Asus router.
I’ve also read that T-Mobile Home Internet has frequent public IP address changes (Dynamic DNS). This makes it important to implement a routine to maintain the DNS entry for lynnhargrove.com and update it frequently. Since a DNS change for my IP address can take up to 48 hours to propagate from NameCheap, the lag may be too great to be effective. We’ll see.
I am going to use ddclient to update my Dynamic DNS entry. Dima’s Blog has a nice tutorial that just happens to also use NameCheap. It’s a simple routine that I will install on my Transmission VM.
Transmission is an Ubuntu 22.10 server that’s idle most of the time. However, I failed to recognize that when you install the latest version of Ubuntu, it’s only supported for nine months. The LTS version (22.04) is released every two years with five years of full support and five mor years of extended support.
Ubuntu 22.10 expired and I need to upgrade it. I’m a believer now. Its LTS from now on. To upgrade an expired version, edit /etc/apt/sources.list and change each occurance of ‘us.archive’ to ‘old-releases’. Then do an ‘update’ and ‘upgrade’. Next do a ‘do-release-upgrade’. This will disable some third party entries in sources.list. Re-enable them after the upgrade with the ‘software-properties’ tool.
When upgrading EOL releases, change ‘us.archive’ or just ‘archive’ to ‘old-releases’ in sources.list. Also, change release code name to the next code name in succession. For example, change ‘kinetic’ to ‘lunar’.
I had one interesting problem on the PiHole upgrade. I had installed it on a minimal Ubuntu server that had expired. I could not install an editor and the only thing resembling a text editor is sed. This is the command that made the upgrade possible:
sudo sed -i s/us.archive/old-releases/ /etc/apt/sources.list
I have executed “sudo apt update && sudo apt upgrade -y” so many times, I want a shell script named up.sh. I made a directory ~/bin and put this command string in ~/bin/up.sh with shebang (#!/bin/bash) on the first line and made it executable. Now I added ~/bin to my path with “export PATH=$PATH:$HOME/bin”. One more lazy step: I removed the .sh from up.sh. Everything in the ~/bin directory is a shell script anyway. Now up works!
While I’m on a lazy streak, I want to use PuTTY without entering my password. I will use SSH key-based authentication with this tutorial. It uses a private key on the client and a public key on the server. In keeping with good practices the private key should be generated on the client and not moved around.
To view the ssh log use this:
journalctl -u ssh
Add this line to /etc/ssh/sshd_config:
PubkeyAcceptedAlgorithms +ssh-rsa
Use PuTTYgen to create private and public keys and protect the private key. Copy and paste to concatenate the public key to .ssh/authorized-keys.
Expand LVM Disk on Proxmox
I ran out of space so I’m going to expand the Proxmox VM:
1. add increment by clicking device and then resize using ProxMox GUI 2. lsblk shows the device with ubuntu (sda3) 3. cfdisk should show free space, df -h shows sizes 4. cfdisk select device (/dev/sda3) then resize using all freespace (default) then write 5. vgdisplay shows space not added yet 6. pvresize /dev/sda3 7. lvdisplay to get lv path 8. lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv 9. lvdisplay to see new size 10 df -h shows old size 11. resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv (from df -h) 12 df -h shows new size
Note: If not using LVM, simply resize with GUI then resize2fs.
This time, ‘do-release-upgrade’ worked to upgrade from Ubuntu 22.10 to 23.04. Another ‘do-release-upgrade’ upgraded to Ubuntu 23.10 which is the current release.
Why not go all the way. It’s time to upgrade Proxmox from release 7 to release 8. This is the official upgrade document. I missed two changes
Well, scratch ddclient. T-Mobile internet uses Carrier-Grade NAT (CGNAT). It allows carriers to share an IP (IPv4) address among several users. I found that my public IP address changed every few minutes between ones in Oklahoma City and Houston. LocalXpose is a reverse proxy and appears to be the best solution. Its free for 15 minutes sessions for http and https only. For $6/month, the plan removes time limits and adds udp and tcp.
LocalXpose
I’ll install LocalXpose in a new ProxMox VM (using Ubuntu 2304 LTS!). I’ll try this tutorial for the installation. I think that Chrome Remote Desktop will satisfy my need to control my local network since it uses https (port 443).
Now I have a new VM named localxpose. I used ‘snap install localxpose’ to install it. I downloaded the Linux version from Windows and transferred it to the localxpose Ubuntu VM with
OpenVPN Access Server on AWS
I am trying to install OpenVPN (/WireGuard?) on a free tier AWS server with an Amazon Marketplace free server. It appears to allow 750 hours/month. In theory I can set up a tunnel from my home network to the VPN server which will have a static IP address. I can establish a tunnel to the VPN server and thus have remote access to my home network. Sounds good!
One solution involves connecting to a PFSense router I assume with a VPN client installed. I wonder if a local copy of an OpenVPN/WIreGuard server would work.
This is the setup for my new 10 gallon aquarium. I got the Aquarium Starter Kit from Walmart. Jason from Prime Time Aquatics is my go-to for all my questions. He has a fantastic series on how to manage an aquarium starting with Part 1. After a few hours of looking at tanks, accessories and fish, I acquired much of the stuff needed to get started.
You can clean the outside with Windex and the inside with a damp cloth. A black background really sets off the inside of the aquarium. Jason even has a video on how to paint the back aquarium panel with DecoArt Lamp Black acrylic paint. These are the first two steps as he lays out in Part 3.
Next, the substrate goes in. I’m using brown gravel but Jeff likes black gravel because it’s easier to keep (look) clean. Then the rocks/castles/cave structures go in. Now the plants go in – tall in back and short in front. Add water that’s about 78 degrees with a conditioner that removes chlorine. Rinse the filter and put it in the pump. Fill the pump with water if it needs priming. Add the heater near the pump. Use an external thermometer to regulate the temperature at about 78 degrees. Now add quick start that removes amonia and nitrite and adds nitrifying bacteria. It’s ready for fish.
Part 4 describes adding fish to your aquarium. To add fish, float the bag of new fish in the aquariam for 15 – 20 minutes to equalize the temperature. Turn off the tank light to make it easier for acclimation. Don’t use drip acclimation. Place fish net over a container and pour the bag with the new fish into the net. This prevents fish store water from entering your tank.
This is the configuration attempt that finally yielded good results. With the assistance of various videos, I have built a few dashboards including a tablet dashboard for my bedroom. It is primitive but it has several light switches and some indoor and outdoor temperatures. I think this was the effort that got me over the learning curve hump.
Integrations, devices and entities relate to manufacturing providers, their devices, and the attributes of those devices. Dashboards can have multiple views witch are simply a group of dashboards. Dashboard (views) contain cards that are a group entities that show values or states with the option to change the state. For instance a temperature entity simply shows the temperature. A lamp entity can indicate whether it is on or off and has the ablity to change the state such as with a toggle switch.
Next Up
It’s time for a todo list. I have a bunch of ideas running around in my head and I’m afraid they’ll take off and not come back.
Backup
I have a big enough investment so far that I need to save what I’ve done. This is an excellent how-to for backing up VMs. I backed up all my VMs in short order. I’ll delete and restore a test VM to validate the procedure.
I’m mostly concerned about a hard drive failure. I think the procedure will be to install ProxMox from scratch then restore all the VMs from the backup drive. I suppose this means defining the backup device prior to restoring the VMs.
Dashboards
I’m anxious to customize dashboards for each tablet kiosk in the house as well as my smart phone and the kitchen monitor which was Magic Mirror. I also need to get Fully Browser Plus on each tablet. I want to get to know and use HACS Frontends Mini-graph-card, Mushroom, Stack In Card, Swipe Card, Button-card and Card-mod.
There are a handful of YouTubers that publish really good tutorials for Home Assistant. Mark Watt is one of them. I have been using his tutorials to build a dashboard for a mobile phone. I started with this one and moved on to part 2. His video on integrating Alexa devices with Alexa Media Player is a good one. I’m hoping this will help, too.
This video on custom button cards is worth a look.
I have a Fire HD 8 tablet acting up and I’m going to start from scratch using Aaron’s Make It Work video. It uses the Fire Toolbox from XDA Developers and some custom Home Assistant scripts from xstrex. The first step is to do a factory reset on the Fire HD. Avoid registering it with Amazon by selecting a network, cancelling before entering passwork, then skipping registration.
Home Assistant Templates
As I struggle to build dashboards, I learned that templates were a valuable Home Assistant tool. Jeff at SlackerLabs has a great tutorial.
Offline Smart Home
I read an article that discussed issues that concern me and that I want to address. A lot of the devices I use are manufactured in China and they call home frequently. In particular, I would like to implement my Tuya devices using the Local Tuya HACS Integration. I need to investigate how to make my other devices work independent of an internet connection.
Wyze Cameras and RTSP
Wyzecam video is not available to Home Assistant although other attributes are. This amounts to waiting and hoping that a full integration will eventually be available or…
Blink cameras are also not well integrated with Home Assistant. My Reolink video doorbell, maybe. It look like Real Time Streaming Protocol (RTSP) is really friendly with HA. My WyzeCam V2s and WyzeCam Pan can be flashed with RTSP firmware and here are instructions. Here are Ed’s (Smart Home Junkie) instructions for adding RTSP cameras using WebRTC. Mark Watt might also have some helpful ideas.
Proxmox
Implement proxmoxbackup plan and resolve error: read-only proxmox system.
Routine for when I leave the house and arrive home.
Meross Integration
Meross devices are added to Home Assistant through a HACS integration. I have four plugs (MSS10), an outdoor duplex plug (MSS620) and a garage door opener (MSG100) from Meross. In order for HA to discover all my Meross devices, I removed them using the Meross mobile app and re-added them. One report suggested removing them using an iPhone, which I did, but I don’t think that mattered.
Once the devices were re-added, HA discovered them but required configuration. Device key was required and articles suggested getting them from the Meross Cloud. It wasn’t obvious, but I had to submit the updated configuration missing the device key. Then, I was prompted to retrieve the device key from the cloud. This was successful although I had to restart HA a couple of times to clear other errors.
Update: I’m not getting any Home Assistant reaponce from the Magic Cube so I’ll try to revive it with this video.
I read an article about the Aqara Cube T1 Pro and had to have one. It can trigger home automation tasks in 28 different ways such as shaking it or flipping it until a particular number is on top. Cool. I grabbed one on from Amazon for $23.
Then I wondered how to make it work. It’s a zigbee device that requires an Aqara $30-$50 hub which I don’t have. The bloggers seem to like the Sonoff Zigbee 3.0 USB Dongle (CC2652P + CP2102N) that can be flashed with improvements for $21.
Since I’m trying to migrate form SmartThings/ActionTiles to Home Assistant, I plugged the dongle into my Home Assistant server. It was discovered immediately as a Zigbee Home Automation integration. I opened the integration, selected devices then “+” to add device. I put the Cube in pairing mode and it was discovered. Selected the new device and was presented with the page to add a new Automation. I chose the “Device Shaken” trigger and “Toggle Den Lamp 1” as the action. It worked.
I solved one other problem along the way. I have several TreatLife (Tuya) WiFi Smart Light Bulbs that I added using the TreatLife app. I also have three other Smart (Tuya) devices that I added using the Smart Life app. The Smart Life devices are discovered by Home Assistant as Tuya devices but not the TreatLife devices. The TreatLife Light Bulbs can now be discovered by the Smart Life app. Once done, they are also discovered by Home Assistant.
An article by Rosie on the House suggests a plan to save on electricity if you have a tiered rate plan. Supercooling. Cool your house as much as you can stand during off-prime hours and allow the temperature to rise as much as you can stand during prime hours. Another idea is to pre-cool three degrees below normal for three hours before prime. Then allow temperature to rise to three degrees above normal during prime. You get the idea.
For me, 75 degrees is the ideal daytime temperature in the summer. It looks like I’ll be able to drop the temperature to 72 with one hour of pre-cooling. I’ll let it rise to 78 during prime hours which is a bit warm but still comfortable. Then it’s back to 75 before dropping to 72 for sleep.
I started from scratch (again) and installed Home Assistant Operating System as a VM under Proxmox using an excellent tutorial from TinkerDad. I previously installed Proxmox using an Andreas Spiess tutorial. He convinced me a Lenovo ThinkCentre with Proxmox was an excellent alternative to the Raspberry Pi for Home Assistant. He also recommend some post install tweaks.
Home Assistant Community Store
The next step was to install HACS. HACS is an HAOS integration for installing custom add-ons, integrations, etc. That’s where I found the Emporia Vue integration that I was anxious to install. Mark Watt Tech provided the guide for this installation. The Advanced SSH & Web Terminal add-on was needed for this install.
Home Power Monitoring with the Emporia VUE and Home Assistant
I joined my sister Dana, and her husband Gary on the beach in Biloxi, MS in my Solera moterhome. We moved on to Natchez, MS briefly and then they headed home. We stayed busy with sightseeing, beach combing, movie watching, game playing and seafood eating. It’s time to carry forth my remote electronics plan.
I really just want to watch some of my recorded movies. This is most simply done by plugging the USB drive with my movies into my TV. However, the recording format is not compatable with my Jensen TV. There are several simpler ways to do this, but I want to use my Chromecast for Google TV and Plex.
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).
On a network, 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).
For convenience, I use my AT&T modem/router’s DHCP server to dole out IP addresses. It provides permanent IP address reservations which is essential for servers. When I embarked on the hypervisor/virtual machine endeavor, I saw the benefit of installing one service on one server. Therefore, MQTT, Plex, Pihole and other services each have their own server. I learned this lesson the hard way. As I busily doled out servers, each with it’s own IP address reservation, I quickly hit the limit of 16 on my DHCP server.
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.
I’m ready to share some of my homelab services outside my home network. Personal photos and home videos are near the top of the list. With this in mind, I got a domain name from NameCheap – lynnhargrove.com. The Domain Name System (DNS) will convert my domain name to my ip address. I used this video to point lynnhargrove.com to my router. I don’t want to get caught with my shorts down so I used the port scanner from Gibson Research to see what ports are open into my network. My router did not respond to any of it’s probes. That’s good.
As a test,
Since I get a dynamic ip address from my internet provider, it can change periodically. That means I need to check occasionally and update my ip address when it changes. Dynamic DNS (DDNS) is the service that does this and ddclient is the program that makes it happen. I found this setup and installed ddclient on a server that is always on. It uses sendmail for success and failure notifications so I installed sendmail.
I have experience with KVM/Qemu on an Ubuntu server. ProxMox puts a solid frontend on KVM/Qemu. It is much easier to administer. After installing ProxMox for HomeAssist, I couldn’t stop adding useful VMs until I ran out of space.I shouldn’t have been surprised that I would run out of space on both systems. Then I decided to install ProxMox on my Plex server and make Plex a guest. I will use the second ProxMox (ProxMox2) server when I travel in my RV. Both systems are Lenovo M73 tiny computers that are easy to port and don’t require much power. I will migrate Proxmox from a 250GB SSD to a new 500GB SSD and ProxMox2 from a 120GB SSD to the 250GB SSD.
As usual, I searched for a good reference for the migration. I founda good one at OSTechNix and another one at Craft Computing.. I plugged a 500GB USB drive into ProxMox2 and mounted the drive using the node shell. My strategy is to backup all nodes on the original ProxMox cluster to an external drive and restore them to the new Proxmox cluster. It turned out to be surprisingly easy.
I used the Heimdall install which also installs docker before installing Heimdall.
Install Redux
I used the Pi My Life Up procedure to install the docker version of Heimdall. It required installation of docker on my Ubuntu 22.04 server.
Original Install
I did the Docker install that worked until I rebooted. I started over using the Variable How-Tos tutorial. This procedure installed PHP 7.4.3 but PHP 7.4.32 was required. I found the update process using the DigitalOcean procedure. It added the Personal Package Archives:ondrej/php or ppa:ondrej/php repository so I could include it as an additional software source. Then I was able to update/upgrade to php 7.4.33. I also had to install php7.4-cli to use the PHP command line.
I edited /etc/systemd/system/heimdall.service adding the suggest configuration. I changed the user, group and working directory to mine. I changed the –port to 8443 and added — host 0.0.0.0. The last catch was to not use https in the url: http://<ip addr>:8443. I think my previous Heimdall bookmark failed because I used https. Hopefullly, a lesson learned. This is my work in progress:
My ProxMox computer is a Lenovo M73 Tiny and is licensed for Windows 10 Pro. I want to use this Windows license for a VM on the same hardware. I upgraded the CPU but I don’t think that’s an issue with Windows licensing. I did try to install a new copy of Windows as a VM without the product key. I hoped this would activate as a reinstallation on the same hardware but it didn’t work. Next up is to try cloning the physical drive and importing it to ProxMox.
This assumes that PuTTY is used for SSH access to the servers.
The first step is to generate a public/private key pair. PuTTY Key Generator will do this. I used all defaults and clicked “Generate”. I “saved the public key” and “saved the private key”. The public key is concatenated to /user/home/.ssh/authorized_keys on the server. If it’s the first key, you’ll need to create this hidden directory and the authorized_keys file. The access permissions (chmod) are 700 for the .ssh directory and 600 for the authorized_keys file. It’s odd that the saved public key file is not the right format for concatenation to the authorized_keys file. Instead you must copy and paste the key from the Putty Key Generator Key. It’s identified as the public key for pasting into OpenSSH authorized_keys file. This is easiest done with a SSH session to the server.
Next, open the PuTTY entry for the server and add the user name under “Connection/Data”. Add the private key file to the Connection/SSH/Auth. It’s best to avoid moving the private key file around. Save the session.
The last step is to accept ssh-rsa public key algorithms on the server. Do this by editing /etc/ssh/sshd_config and adding “PubkeyAcceptedAlgorithms +ssh-rsa” to the bottom of the file. Restart ssh service.
Briefly
mkdir .ssh chmod 700 .ssh nano .ssh/authorized_keys <paste public key> sudo nano /etc/ssh/sshd_config PubkeyAcceptedAlgorithms +ssh-rsa sudo systemctl restart ssh.service add user name and private key to PuTTY
Troubleshooting
There are many tutorials on using SSH key files to log into a Linux server without a password. None of them worked for me. Here’s the problem I found and how I found the solution.
The error was “Server refused our key”. This led me to adding “LogLevel DEBUG3” in /etc/ssh/sshd_config. Then used the command “journalctl | grep key” or “journalctl -xe” to locate any issues when logging in with a private key. (The public key is stored on the server.) I found that “key type ssh-rsa not in PubkeyAcceptedAlgorithms” for the server. My key was an rsa key. I removed “LogLevel DEBUG3” from sshd_config and added “PubkeyAcceptedAlgorithms +ssh-rsa”. This fixed the problem. Oddly, this failed and was not needed for Raspbian. The mystery remains why none of the tutorials warned of this problem.
I turned to Linux Hint for this one. I used a previous post to setup the NFS share to media on file1 file server.
In order to add the Plex Media Server repository, I found the following to work from the Plex.tv website:
If the firewall is enabled, allow Plex with:
sudo ufw allow 32400
The problem with using a NFS share is that user plex has no rights on the file server and no password on the Plex server. I created user plex on the file server with a password to no avail. I brute-forced it by giving all files on the file server read access to everyone:
I have used Raspberry Pi file servers for several years. Of course this means attaching USB storage for files. My Lenovo M73 tiny computer has room for one 2.5″ hard drive which is an SSD with Ubuntu 22.10 Linux and minimal room for file storage. I’ll move 4TB and 5TB USB HDDs from my Raspberry Pi 4 to the M73. I’ll use a new tutorial from LinuxConfig to take me through the steps.
After installing Ubuntu server and updating it, I gave it a permanent ip reservation. My AT&T router only allows for 16 permanent ip reservations and I’ve hit the limit. It looks like some static ip addresses are in my future.
I attached the two USB3 drives to the M73. They will be outside the ProxMox storage pool and dedicated to the file server. To do this I modified the virtual machine to include new hardware. I added a USB passthrough device for each drive. Unfortunately, the M73 supports only one USB3 device so the second HDD will operate at USB2 speeds. On second thought, the two drives will go back on the Raspberry Pi server and a single 12TB USB3 drive will be storage for my file server.
I’m comfortable with the Samba install. It allows Windows computers to map drives to my file server. There’s a couple of other posts describing the Samba install.
Next, something I’m not so comfortable with. I need to share files with a Plex server (Linux) and a Transmission server (Linux). SMB shares are not as efficient as NFS shares that are native to Linux. I’ll again refer to a previous post for the how-to.
I love most of what the internet has to offer these days. It educates me, informs me and entertains me. It makes life much more interesting. For me though, social media not so much. I know it’s a great way to share your life with family and friends but I think it’s too much at times and misinforms at times. I mostly avoid it.
I’ve used videos and websites to resolve tons of everyday life issues – stuck doors, new car brakes, clothes washer error codes, health and diet issues, household finances, shopping, food recipies to name just a few.
I’m in the midst of virtualizing several servers on a hypervisor for a homelab. I’m using ProxMox on a 2013 Lenovo M73 ThinkCentre tiny computer. I’ve viewed hundreds of videos and articles that have gotten me well along with my project.
Much of my objective is to get biggest bang for the fewest bucks. I’m ecstatic with my progress and where I expect it to go. My expenses have been $50 for the computer, $45 for an SSD upgrade, $40 for a CPU upgrade and $30 for a memory upgrade totaling $165. I’ll have media servers, home automation, VPN, ad blocking, file servers and more. I’ll run more than a dozen virtual machines with processor power, memory and storage to spare for about a dollar a month of electricity.
I contrast, I just watched a fascinating video with some great ideas for a homelab. This guy had rack-mounted servers, networking gear, storage devices and more. He had 50 terabytes of RAID storage configured for speed and redundancy, redundant hypervisors and double or triple redundant servers. His home automation was not likely to fail! Guys and their toys! In my younger days, it was a Holley carbs, Hurst shifters, Edlebrock headers and ’57 Chevys that showed your masculinity. Times have changed! Then again, maybe I should pay more attention to Frank Thomas. The more I think about it, the more I like the idea of rack mounted servers and tens of terabytes of storage. Hmmm.
In any event, I’m really happy with my project and I think it will be really useful and fun. It makes me anxious to get up and get with it each morning.
I want to run Civilization 3 on a Chromebook. This is an old but special version of Civ and will only run on Windows 7 with a physical CD in the drive. I think I have a solution but it requires jumping through a few hoops.
Here’s the Plan
Install Windows 7 Pro from thie iso as a virtual guest on Proxmox without a product key and extend the trial period to one year.
Install Civ 3 on the Windows 7 guest with the CD in a physical CD drive passed through to the VM.
Enable Remote Desktop Protocol on Windows 7 and port forward the RDP port on my router to the Windows 7 machine.
Install Remote Desktop on the Chromebook.
The Details (soup-to-nuts):
Get a Lenovo M73 tiny computer on eBay for about $50, replace the HDD with an SDD, install Proxmox and run it 24/7. It uses about 12 watts which should cost less than $15/year to operate. This will also be a good platform for Plex server, a file server, Home Assistant, Pi-Hole, Nagios and trying out versions of Linux.
For the Windows 7 installation, skip product key and activation. Slmgr will give 120 days before activation and can be used three or four times.
My home entertainent system does not include a DVD or Blu-Ray drive nor do most of my current computers. Handbrake and MakeMKV (for Blu-Ray) are a couple of tools to rip and encode the movies so they can be added to Plex. A side benefit is that discs from other regions that will not play on U.S. drives can be ripped and encoded. Category5 Technology TV provides an excellent Handbrake tutorial. They also have a follow-on video for episodic disc sets. I think this video from Maraksot78 describes the Blu-Ray rip. DVDs resolution is 720 x 480 (480p) and Blu-Ray resolution is 1920 x 1080 (1080p).
DVD
To get started, open the source. I generally use one of the HQ presets such as HQ 480p30 Surround. Here, the 30 is frames per second and should match the source as closely as possible. I like to save the file as mp4 and using defaults except for the following changes. Use the H.264 video codec. Since I have an Nvidia graphics card, I use the H.264 (Nvidia NVEnc) codec. H.265 is slightly better but not as widely compatible. I like constant quality of 20. I also like to include subtitles when available.
When encoding an episodic disc, open the source and note the resolution and FPS after the Source: heading. If it’s anamorphic, note the resolution in parentheses. Under Summary select Web Optimized to allow better network playback. Under Dimensions confirm Display Size matches the (anamorphic) disc size from before. Under Video, set the FPS to match the disc with Constant Framerate.
Now add the first Title to the queue then individually each remaining Title. Start encoding.
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:
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
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.
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.
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>: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:
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.
My home automation is a mishmash of devices and software that has served me well. I use Google Assistant for my shopping list and information querries, Alexa for voice commands and SmartThings/ActionTiles for my tablet kiosks in each room.I’m ready to try a little consolidation using Home Assistant.
Mostly a stub for now:
I’m sensitive to the cost of electricity for a 24/7 server so I chose a $50 2015 Lenovo M73 tiny desktop which seems to get by on about 12 watts which is about $1 per month.
I’m reviewing a video from Make It Work that starts out with configuring Amazon Fire HD tablets as the kiosks. Fire Toolbox from XDA Developers is used to configure and remove ads from the tablet.
Well, I did it again. I got some LED strips for indirect lighting and want to turn them on and off with Sonoff switches, that is, integrate them with SmartThings and Alexa. I’ve done the before, but this time, I’m going to document the process.
I’m using the Sonoff14 switch flashed with Tasmota for the TV LED lights. I previously added Tasmota Connect to SmartThings. Next from that post:
Open SmartThings on mobile device
Under SmartApps, select Tasmota Connect
Under New Tasmota Device, select the Tasmota device you want to add
Fill in the IP address of the new device
Wait 15 or so minutes for the new settings to be effective.
Next, authorize the new devices with ActionTiles by going to My Locations/Home/Add Devices/Home, the select the new devices and click Authorize.
Now, go to the ActionTiles panel and add Hub Tiles for these devices. Rename them in Tile Settings.
Wrapping up Home Automation is like waiting for road upgrades and repairs to be complete; it’s a continual process.
Now, I want to press a button (tile) to start a Spotify playlist on the Livingroom (Den) stereo. The first step is to integrate my Logitech Harmony with SmartThings. Most help on the internet involves the SmartThings Classic mobile app that has been removed by Samsung. From the SmartThings Groovy IDE, select My SmartApps and create a new one from Template selecting “Logitech Harmony (Connect)”. Publish it then go to SmartApps on the SmartThings Mobile app. Select “Logitech Harmony (Connect)” and let it discover the Harmony Hubs and Activities. A SmartThings blog entry helped with this one.