# Hetzner Setup Context paths: - hetzner/* - incusos/targets/hetzner/* ## Network Topology Hetzner dedicateds have a single public IP with MAC filtering. VMs cannot use public IPs directly. - **vmbr0**: Public interface (SSH + WireGuard only) - **vmbr1**: Private bridge (10.10.0.0/24) with NAT masquerading to internet - **wg0**: WireGuard tunnel (10.10.99.0/24) for workstation access - VMs get IPs in 10.10.0.x range, gateway 10.10.0.1 (Proxmox host) ### IP Ranges | Range | Purpose | |-------|---------| | 10.10.0.1 | Proxmox host (on vmbr1) | | 10.10.0.101-113 | IncusOS VMs | | 10.10.0.200+ | OVN external IPs (future) | | 10.10.10.0/24 | OVN overlay (future, inside VMs) | | 10.10.99.1 | WireGuard server | | 10.10.99.2+ | WireGuard clients | ### Key Differences from Beelink Target - **No VLAN** -- dedicated private bridge instead - **API method preferred** -- WireGuard adds latency to SSH sessions - **ZFS storage** -- local-zfs (ZFS pool) instead of local-lvm (LVM thin) - **Larger VMs** -- 8 cores, 16 GiB RAM, 100 GiB disk (vs 4C/4G/50G) - **WireGuard required** -- no direct LAN access to VMs ### proxmox-setup Script `hetzner/proxmox-setup` runs from the workstation over SSH. All commands executed via `ssh `. Follows same conventions as other scripts: setup_colors, info/warn/error, --dry-run, --yes flags.