rwaltr/home-ops

February 19, 2026 Β· View on GitHub

rwaltr/home-ops

Universal Blue uCore homelab infrastructure with Terraform/Pulumi cloud management

Discord pre-commit

πŸ“– Overview

This is a monorepo to manage my personal homelab infrastructure. Running Universal Blue uCore (Fedora CoreOS-based immutable OS) on the main host ("mouse") with Terraform/Pulumi for cloud resource management. The infrastructure provides object storage (RustFS), monitoring (Netdata), and backup capabilities (Backblaze B2).

πŸ”§ Infrastructure Components

πŸ”΅ uCore

Universal Blue uCore provides immutable, container-first host configuration. Configuration in infra/ucore/ using Butane β†’ Ignition.

Entry point: infra/ucore/butane/

☸️ Kubernetes (k0s)

Single-node k0s cluster planned for mouse. Configuration managed via k0sctl.

Entry point: infra/k0s/

🌐 Terraform

Terraform manages cloud resources (maintenance mode β€” migrating to Pulumi):

  • Cloudflare: DNS and domain management (infra/terraform/cloudflare/)
  • Backblaze B2: Backup storage provisioning (infra/terraform/backblaze/)
  • Terraform Cloud: Workspace management (infra/terraform/tf-cloud/)

πŸš€ Pulumi

Pulumi stubs created for migrating cloud resources from Terraform (Go-based):

  • Backblaze: B2 provisioning (infra/pulumi/backblaze/) β€” has initial Go code
  • Cloudflare: DNS management (infra/pulumi/cloudflare/) β€” stub
  • Terraform Cloud: Workspace management (infra/pulumi/tf-cloud/) β€” stub

πŸ” SOPS

Age-based secrets management for encrypting sensitive configuration values inline with repository files.

πŸ–₯️ Current Host

mouse (uCore)

Primary infrastructure host running:

  • Storage: ZFS pools
  • Object Storage: RustFS (S3-compatible, Rust-based)
  • Monitoring: Netdata for system metrics

Configuration: infra/ucore/butane/hosts/mouse.bu

🌐 Cloud Integrations

Cloudflare

DNS and domain management for multiple domains (familylegacy, legacy, prof, public zones)

Backblaze B2

S3-compatible backup storage for long-term data retention

πŸ–ŠοΈ Finding TODOS

Uses the TODO: format in line


🧰 Tools

ToolUseActive
uCoreOperating Systemβ˜‘οΈ
SOPSSecrets Managementβ˜‘οΈ
TerraformCloud Resource Managementβ˜‘οΈ
PulumiCloud Resource Management🚧
ZFSStorage & Snapshotsβ˜‘οΈ
RustFSS3-compatible Storageβ˜‘οΈ
NetdataSystem Monitoringβ˜‘οΈ
k0sKubernetes (single-node)🚧
Pre-commitCode Quality Automationβ˜‘οΈ
miseTask Runner & Tool Mgmtβ˜‘οΈ

🀟 Thanks

Thank you to the below for inspiration

  • onedr0p
  • anthr76
  • danmanners

🌐 Communities

K8s-at-Home

Discord


πŸ“¬ Contact Me

  • Github Issues
  • Email

πŸ“œ Changelog

See commit history