Conventions
Conventions
naming
Container and VM IDs match the last octet of their IP address. New deployments use the next available sequential number.
operations
Three copies of data, on two different media types, with one copy offsite. The target standard for all critical homelab data.
Every HTTP service gets a *.hake.rodeo subdomain routed through Caddy with automatic TLS. Internal DNS is handled by Pi-hole local DNS records pointing to Caddy.
Every production container has DNS set to Pi-hole (10.1.99.100). Static IP containers need it set explicitly via `pct set` since they skip DHCP.
Every VM gets the QEMU guest agent installed and enabled. Required for proper shutdown, DNS injection via qm set, IP reporting, and filesystem-consistent backup snapshots.
security
API keys, passwords, tokens, and sensitive config are stored in Vaultwarden — never in plain text, env files, or code.
All IoT devices (smart plugs, cameras, sensors, doorbells, locks) go on VLAN 30. They are untrusted and firewalled from production and infrastructure VLANs.
LXC containers do not have SSH configured. All access goes through the PVE host via `pct exec`.
No ports are open to the internet. All remote access is through WireGuard VPN on the UDR 7. Services are internal-only.
All LXC containers run unprivileged. Only escalate (e.g., AppArmor unconfined) when a specific requirement demands it, like GPU passthrough.