Recent Technological Tinkering
The last few years have been pretty crazy. In addition to the COVID-19 pandemic that the world has been dealing with, I’ve had a lot of things going on in my personal life that have kept me quite busy. While the main focus of my blog here is history, from time-to-time I like to give an update on the things I’ve been exploring in the technology world – mainly because it’s one of those things that my boys and I love doing together. I continue to use the same kinds of open source software that sparked my love of computers in the first place, and that ecosystem has only gotten more robust in the last 20 years. The things my sons and I have set up now have given us a great platform to try out the possibilities and expand our understanding and creativity. It’s been a great way for us to bond.
Kids Stuff
The boys have been learning about Linux and all the related software by using Raspberry Pi single-board computers. We have quite a collection – and I’m glad because it’s quite hard to find them these days because of all the semiconductor shortages. We’ve had a few Pi 3Bs, a Pi 3B+, a Pi 3A+, and lots of Pi Zeros. Some family members got together to buy the boys a Pi 400 for Christmas the year before last, but it suffered a horrible death due to being transported around too much.
Sometimes, we experiment with microcontrollers, like the BBC micro:bit, Adafruit Circuit Playground, or even Arduinos, and it’s as much a learning experience for me as it is for the kids. If we do anything particularly notable there in the future, I’ll probably make a post about it.
The boys each have their own laptops – courtesy of their maternal grandfather, who has a knack for collecting used computers and reselling them online. Every time we visit, the boys want to “go shopping” in Baba’s basement warehouse for new-to-them pieces of tech gear.
John currently has a Toshiba Satellite L75D-A7283 with 6GB of RAM and a 512GB SATA SSD that we installed together. He has it partitioned so that he can boot into either Zorin OS or Windows 10. His biggest issue with the computer is that there is no motherboard / BIOS support for the virtualization technologies that the built-in AMD A4 should possess. This keeps him from using newer versions of VirtualBox to play with. Probably his favorite thing to do with the computer is play the PC Building Simulator video game.
Isaac’s laptop is an Asus X54C with 4GB of RAM and a 500GB HDD. Like his brother, he can boot into Windows 10, but prefers to use KDE neon. Isaac likes to code silly things with Scratch and Microsoft MakeCode – sometimes he loads his creations onto one of our microcontrollers.
Main Webserver
I don’t know that I ever really announced it here, but I’m back to self-hosting this website after using a provider for a number of years. The current iteration runs on a Pine A64+ – a really awesome little single-board computer with a quad-core, 64-bit ARM chip and 2GB of RAM – running the Ubuntu Server variant of Armbian Linux. For resource efficiency reasons, I moved from Apache to nginx for the webserver a few years ago. The site is still built with WordPress. I also host a few other things on this box, including my kids’ websites.
Networking
By accident just walking around my local Microcenter one day, I discovered the Ubiquiti EdgeRouter X and couldn’t believe how powerful it looked for the price. I just had to pick one up, and it is now my main router. This has enabled me to run multiple different LANs and segment network traffic in my home to keep IoT devices away from the rest of my computers. While networks seem to intimidate a lot of people, I’ve found the EdgeRouter to be pretty simple and even fun to set up and use. Ubiquiti’s products are great for anyone who wants to take their home network to the next level.
VPN Server
Along the lines of networking, I wanted to have a VPN set up so that I could have secure access back to my home network if I needed to modify anything on the go, or just to encrypt my traffic for security reasons if I had to use public wi-fi. I set up OpenVPN on a dedicated server for this purpose and have absolutely no complaints about the way it performs.
Docker
I’m certainly no expert on containers – I’ve only begun playing with Docker recently on a Raspberry Pi 4 with 8GB of RAM that I’m running as a server – but I can see why it’s become a popular technology. Managing the containers through a web interface – I use Portainer – has made it much easier to understand what is going on. The boys and I have played with a few things in Docker:
- Guacamole – An open source VNC / RDP / SSH gateway that can run on basically anything with a modern web browser. Very cool technology, but it was a bit of a resource hog on the Pi.
- PiHole – I’m a little bit paranoid about “smart” TVs, so in addition to running a totally separate network segment for my IoT devices, I also funnel their network requests through this DNS filter to cut down on the amount of spying that these devices are capable of (or even like to do). This also has the benefit of cutting down on the amount of ads we see on websites, and I have it configured to protect us from other harmful stuff out on the Internet.
- Habitica – A tool for making real life self-improvement into something like a video game. The “open source” version forces you to clone their entire website – including all their payment processing code – and really seems to be intended for people who want to help them fix their bugs. That said, this was a little too clunky to be useful as a self-hosted thing in our case.
- Grocy – We set this up as a home inventory system for groceries. Still experimental for us at this point. I love the idea of being at the grocery store and knowing how many cans of soup we have at home, but keeping the inventory up-to-date is where we have a problem.
I haven’t quite gotten to the point where I feel comfortable running the things I really care about within containers, but maybe that will come some day.
Proxmox
The REAL fun has been in exploring Proxmox – an open source hypervisor server based on Debian. Admittedly, virtual machines are definitely heavier on resources than containers, but they provide a lot more flexibility in my mind. Through a web interface, we can now quickly spin up virtual servers to play with different operating systems, software, and even network configurations – and it’s a lot easier to tear them down once we’ve finished.
I’m running Proxmox on a second-hand Dell XPS 8300 Desktop with 16GB of RAM and that has been plenty for our purposes. So far, I’ve kept a dedicated FreeBSD VM running on it, as well as a VM for playing with Kali Linux. The boys have also used it for test driving different Linux distros before they each chose one for their own laptops.