Self-hosted home infrastructure managed with Infrastructure as Code (IaC). Minimize cloud reliance, maximize learning, and automate everything.
MIT License
This repository contains the Infrastructure as Code (IaC) configuration and documentation for my home infrastructure. The main goals of this ever-evolving setup are:
The key components of this infrastructure include:
The long-term goal is to reduce these dependencies and provide offline alternatives.
Name | Description | Remarks |
---|---|---|
Docker images | All services are running as containers | Downloaded on first use |
Plugins, Modules (e.g. Crowdsec) | Various plugins for services | Downloaded on first use. TODO create inventory |
Large Language Models | Optional, used by Ollama | Downloaded on first use |
OVHcloud (or other registrar) | Domain Name registration | Required for remote access and TLS certificates. TODO document fallback |
Cloudflare | DNS zone administration, tunnel | Optional, for remote access |
Let's Encrypt | TLS certificates (managed by Traefik) | Required. TODO document local CA setup for fallback |
Backblaze B2 | Backup storage | Optional, local backup also configured |
CrowdSec | Crowd-sourced IP blocklist | Optional, security service, can be disabled |
Azure | Temporal VM, storage | Optional, not used by any lab components |
Homepage Icons | Icon set for the services | Optional, hosted on a CDN. TODO host locally |
The recommended configuration is to setup Proxmox VE and install a Debian- or Ubuntu-based VM to host the Docker services.
-> See Getting Started
All development dependencies are available in the devcontainer or can be set up with an Ansible role.
Some development workflows:
Code quality scanning tools are set up via pre-commit.
Perform the checks by running task lint
(or pre-commit run --all-files
).
Create/update example .env
files: task create-example-env
.
Updating the container images is automated with Renovate.
A crowd-sourced guide to help techs help their non-tech spouses / partners / parents / kids when we are at the end-of-life.