My Entire Homelab Is Code

How Terraform, cloud-init, Ansible, and Docker Compose turned recurring homelab work into a supervised, reviewable workflow.

Designing the Company Network

Designing the network architecture for Fetched & Far, including site connectivity, trust zones, segmentation, remote access and failure scenarios.

High-Level Architecture

In the previous chapter, we defined the business requirements for Fetched & Far GmbH. We now understand what the company needs and will now translate the requirements into an enterprise architecture. Architectural Goals Every architectural decision should support at least one business requirement. For Fetched & Far we defined those in https://philipp.guide/company/requirements/ and assigned each...

Requirements

In the previous chapter, we introduced Fetched & Far GmbH and established a set of design principles that will guide every architectural decision throughout this series. Now it's time to start designing the company's IT infrastructure. But before choosing technologies, we first need to understand what the business actually requires. My responsibility in this fictional...

The Company

Before designing an IT infrastructure, we first need to understand the business it is supposed to support. In the previous chapter, I introduced the idea behind this series. Rather than building a collection of self-hosted services, I'll design and implement the IT infrastructure of a fictional company based on real-world requirements and architectural principles. Before...

Building a Fictional Company - Enterprise by Design

Every enterprise starts with a business. Every IT architecture starts with requirements. Most homelabs begin with a new tool. "I want to try Kubernetes." "I want to self-host Immich." "I want to deploy Authentik." Mine started exactly the same way and this is not necessarily a bad thing. Over time, however, I noticed something. While...