I've previously written about how I run Docker at home. This infrastructure is a core component to running this site. In addition to Docker, Gitlab is the orchestrator for how I run many of my homelab services. In this post we will take a look at how I take Markdown, and with the power of Material for MkDocs, deploy the site you are currently reading.
I run docker workloads at home through Portainer. Some time ago I wanted to standardize on Docker Compose to manage container definitions via code, rather than configuring containers by hand in Portainer. Luckily, Portainer has the concept of "stacks", just their way of handling Docker Compose. Stacks can be used a few ways in Portainer, configured directly in Portainer or referenced from a Git repository, such as Gitlab. This is an attractive feature, even for a homelab, as it allows built in version control of your Docker Compose file, with a built in backup (sort of)!
Having a scripts for repeatable system administration saves times and reduces human errors. The following lines can be used in shell scripts (I tend to use bash) or in the cloud-init data of a cloud provider. I tend to have this script and the public key of an SSH key in a public Git repo that I just clone into a new VPS and execute. This should work on modern Debian and Red Hat Linux variants such as Ubuntu 22.02 and CentOS (RIP).
Virtualization is an important tool for a homelab, large or small. For many years I ran some iteration of VMWare, normally ESXi with vCenter. Last year I switched everything from VMWare to Proxmox, a "free" hypervisor platform. In 2022 there are quite a few homelab hypervisor platforms that we could take advantage of.
Homelabbers have plenty of options when it comes to running a hypervisor at home. If you are just getting started you might investigate something free like Oracle's Virtual Box, Microsoft's Hyper-V, or VMWare's Workstation Player. These products are often referred to as
Type 2 hypervisors, or hypervisors that virtualize on top of an operating system. These products work well as they allow you to just install the hypervisor directly on your existing operating system, the cost to get started is quite low, if it isn't for you or you feel that you want to move onto more advanced hypervisors, worst case you just uninstall the hypervisor (or in the case of Hyper-V, just turn off the Windows feature).
Hypervisors like VMWare's ESXi and Proxmox Virtual Environment are known as
Type 1 hypervisors, or hypervisors that are installed on bare metal. The benefit of
Type 1 hypervisors is that they are more performant, designed to run as servers, and include more enterprise-like features.