Skip to content

Blog

RSS Feed

Relative Paths with Docker and Portainer

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)!

M2 Air Monitor Limitations

While I use a MacBook Pro for work, I use an M2 MacBook Air for personal projects around the house. I have used a Plugable Thunderbolt dock for the past few years to run the display for my gaming PC, work Mac, and any other system I may have sitting around. The monitor I use is a Samsung CRG9 49" "super" ultra wide. This size monitor is quite nice for a single monitor setup and allows me to have a good spread of windows throughout the day.

Grav Tag Filters

Info

Since you are currently reading this page, you may notice that this site isn't actually running GravCMS. While Grav is a good platform, a well written open source project, it didn't match what I was looking for in my personal site/blog. I'm currently running everything on Material for MkDocs, a pure markdown based static site generation tool.

Grav CMS! It is what is powering this site! As I work my way through understanding more about Grav, I hope to document some of the issues and fun things I run into.

Today's adventure is related to the Taxonomy List plugin, a nice plugin that allows custom tags to be applied to pages.

Linux Shell SSH/No Root One-Liner

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).

Grav CMS

Info

Since you are currently reading this page, you may notice that this site isn't actually running GravCMS. While Grav is a good platform, a well written open source project, it didn't match what I was looking for in my personal site/blog. I'm currently running everything on Material for MkDocs, a pure markdown based static site generation tool.

For the past few years I've been running my (mostly) inactive website via Gitlab pages, serving statically generated pages from Hugo. Static site generators like Hugo and Jekyll take markdown, join it with some images and CSS, convert it all to html, and there you have a website which can be served from just about anywhere. Small file sizes and no "moving parts" can result in a much faster and "secure" website. Of course there will always be security issues with the host, but you aren't serving content out of a database.

While this process worked for a while, especially since I don't put out much content, I wanted something a bit more interactive, not something as indepth as a Wordpress, but something a bit more involved. While I can deal with CSS, I don't want to. Enter Grav. Grav is a CMS like, Wordpress, but unlike Wordpress does't rely on a database component. All flat files.

Moving to Proxmox

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.

Hypervisor Options

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.

DNSTwist

If you manage domains for yourself or your organization, it might be a good idea to have an idea of similar looking/sounding domains from a security perspective. This blog isn't focused much on brand protection, although that is another use-case for being aware of similar domains to your own. There are a few methods for being aware of domains that are registered (or could be registered) that are similar to your own, one comprehensive method that requires a fair amount of work would be Rapid 7's Project Sonar data. This is a collection of datasets that are updated weekly (after you register for a free account) or monthly (downloadable without requiring any account registration). For our purposes the interesting one is the Forward DNS data which includes all A and AAAA records. Downloading this dataset is the easy part (assuming you have the harddrive space to store it, compressed the A record data is 22.9 GB as of August 2020), once you have it you need to do something with it. This involves additional parsing, storage, and notification, something that can certainly be done (and might be a fun project) but if we could shortcut getting the same or better result with a LOT less effort, well that would sure be neat...