A text-heavy personal blog about technology & computing, covering topics like Linux, scripting/programming (Python, Bash, Powershell, Go), DevOps, automation, and more.
200 Docker Compose Templates
I have been maintaining a git monorepo named docker_templates since sometime in 2023, and I recently added my 200th template (commit 7c112b7)! I thought back to 2015, when I started learning Docker and Docker Compose, and how transformative containers have been in the way I use my machines. There is something very satisfying about describing a runtime you want to work with and encapsulating everything you need to run an app or service the same way each time you run it, on any machine. In reality, there are some edge cases, but it’s a beautiful dream. ...
Leaving Google Photos
I have been using Google Photos to backup my pictures since it was released in May of 2015. The software works great, seamlessly backing up any picture or video I take on my phone and making it simple to share photos and albums with my friends. Like many people, I am trying to reduce my reliance on Google products. I have not gone as hard as some people, like the users of the DeGoogle subreddit, although I admire their efforts and agree with their philosophy. I have so, so many things tied to the Google/Gmail account I created in 2005. A younger me had no concept of being the product when a service is free, and I foolishly tied so much of my online life to my Gmail account. Extricating is a long, difficult process, and one I’m doing in baby steps. ...
Comparing backup solutions (why I picked Restic)
Having a good backup strategy is essential, especially when you host your own data. If you have not experienced the dread of realizing you’ve lost an important file, consider yourself lucky and keep reading to learn why you should have a backup strategy for your data. I have lost important data due to lack of sufficient backups a number of times in my life. It never gets any less devastating, but each time it’s happened I have inched closer to a sufficient backup strategy. ...
Blog Setup: Challenges
This post is part of a series: Blog Setup. I also faced some difficulties getting started with the blog. I spent way too much time creating the Github Action that deploys my content to Netlify. I failed so many times before getting it right, I exceeded Netlify’s free tier 🤡. Most of the difficulty actually came from the “extra” functionality with Lychee link checking and Vale linting. Although I was able to get both of these tools running well locally on my machine, I ran into challenges getting them to run in the pipeline. ...
Blog Setup: Tools
This post is part of a series: Blog Setup. Tools I am using Mise to handle installing all of the tools I need to develop/build the blog. The .mise.toml file in the repository defines these tools, so I can simply clone the repository, install Mise, and run mise trust && mise install on a new machine to get up and running. Mise is also useful in container environments and CI/CD pipelines, it can ensure I’m installing the same tools in every environment, with version pinning for ones I want to control upgrades for like the hugo CLI. ...
Blog Setup: Choices Made
This post is part of a series: Blog Setup. While setting up the blog I had to make a number of choices that affect the short and long term health of the blog. Deciding where and how to host the code and the static site, what tooling to add, how to structure the repository, etc. Git Forge Spoiler: I went with Github. I considered many options for where to host the source code for the blog. Github is an obvious frontrunner, partially becaause I am already active on Github, but also the network effect. While I don’t promote my blog, I also like the idea that I’m not just shouting into the void with my posts, and discoverability is best where the people are. ...
Blog Setup
Starting a blog has been an interest of mine for a long time. I have always envied people who began writing their tech blogs decades ago and still post to them today. I have written articles on Medium and other platforms over the years, but have never centralized them or made them “portable” in a meaningful way. I decided to finally start my blog, becaause each year that passes where I haven’t joined the ranks of nerd bloggers is another year I can’t look back on in this format. ...
Git Rewrite History
Code snippet or command reference
Host Hugo with Netlify
Hugo is a static site generator that enables you to write your website’s content as Markdown files, and render them to nice-looking websites using Hugo themes. The word “static” in this context means that the files Hugo renders are meant to be served as-is, there is no “backend” for the site (unless you add custom Javascript code). Static sites are perfect for many different kinds of websites, from personal blogs like this site to product sites (i.e. Brave browser’s website) to an organization’s home page (i.e. the LetsEncrypt project’s site) to documentation sites (i.e. DigitalOcean’s documentation). With a static site generator, you do not have to deal with web code like HTML or Javascript, but you still have the option of creating your own custom themes if that appeals to you. ...
First
Welcome to Techobyte, a personal blog about technology. This blog covers varied topics with no posting cadence or central theme. The blog’s content is text-heavy, although some articles may use images to enhance or clarify things. I write about tools I use and projects I work on in my homelab, and share the knowledge on this blog. In my free time I like to try new technologies and tools, and I love to share that knowledge with others. I hope the hours I spend struggling on certain things and choose to write about can get you over a hump. ...