Some checks failed
CI / skip-ci-check (pull_request) Successful in 6s
CI / lint-and-test (pull_request) Failing after 9s
CI / ansible-validation (pull_request) Failing after 6s
CI / secret-scanning (pull_request) Successful in 5s
CI / dependency-scan (pull_request) Successful in 8s
CI / sast-scan (pull_request) Failing after 5s
CI / license-check (pull_request) Successful in 11s
CI / vault-check (pull_request) Failing after 6s
CI / playbook-test (pull_request) Failing after 6s
CI / container-scan (pull_request) Failing after 6s
CI / sonar-analysis (pull_request) Failing after 2s
CI / workflow-summary (pull_request) Successful in 4s
Document pve10 static IPs, monitoring stack, and site LXCs; add portfolio to inventory; Mailcow mailbox automation; vault import/export scripts; security audit guides and UniFi DHCP reference. Co-authored-by: Cursor <cursoragent@cursor.com>
3.5 KiB
3.5 KiB
UniFi static DHCP (10.0.10.x homelab)
Controller: https://192.168.2.1/
Goal: Pin Proxmox VM MAC addresses to stable 10.0.10.x addresses so Caddy and Ansible inventory do not drift.
LXCs on pve10 (210, 215–219) are already static via pct set — no UniFi lease needed for those rows. This guide is for VMs (and pve201 guests) that still use DHCP.
Before you start
- Confirm guests get addresses on
10.0.10.0/24(not only192.168.2.x). In UniFi, open the network that faces Proxmoxvmbr0. - Gateway for homelab guests should be
10.0.10.1(or your router’s IP on that VLAN). - Use the MAC table in vm-static-ip-router-reservations.md.
Method A — From a connected client (easiest)
- Open https://192.168.2.1/ and sign in.
- Go to Clients (or UniFi Devices → Clients).
- Find the device (hostname like
gitea,vaultwarden, or MAC from Proxmoxqm config <vmid>). - Click the client → Settings (gear) or ⋮.
- Enable Fixed IP / Use fixed IP address.
- Set IP to the target from the table (e.g.
10.0.10.169for gitea). - Apply / Save.
- On the VM: renew DHCP or reboot:
sudo dhclient -r && sudo dhclient # or: reboot - Verify:
ip -4 addr showshows the reserved IP.
Method B — DHCP static mapping (manual MAC)
- Settings → Networks.
- Open the LAN/VLAN that serves 10.0.10.x (name varies:
Default,Homelab,10.0.10). - DHCP section → DHCP Static IP / Static leases → Create new.
- Enter:
- MAC address (from Proxmox, e.g.
BC:24:11:E9:BD:E5) - IP address (e.g.
10.0.10.169) - Name (optional, e.g.
giteaVM)
- MAC address (from Proxmox, e.g.
- Save. Repeat for each row in the reservations table.
- Renew DHCP on each VM or reboot.
Already static (skip UniFi DHCP)
| VMID | Name | IP | How |
|---|---|---|---|
| 210 | cal | 10.0.10.228 | pct set |
| 215 | caseware | 10.0.10.105 | pct set |
| 216 | auto | 10.0.10.59 | pct set |
| 217 | identity | 10.0.10.21 | pct set |
| 218 | monitoring | 10.0.10.22 | pct set |
| 219 | portfolio | 10.0.10.106 | pct set (iliadobkin.com) |
| 106 | caddy | 10.0.10.50 | static in /etc/network/interfaces |
Priority order — UniFi reservations (VMs / pve201)
| Order | Guest | IP | MAC | Notes |
|---|---|---|---|---|
| 1 | giteaVM | 10.0.10.169 | BC:24:11:E9:BD:E5 | |
| 2 | vaultwardenVM | 10.0.10.142 | BC:24:11:58:DB:DC | |
| 3 | n8n (WRA) | 10.0.10.154 | BC:24:11:61:DE:7A | |
| 4 | hermes | 10.0.10.36 | BC:24:11:51:1E:99 | |
| 5 | actual | 10.0.10.158 | BC:24:11:10:7B:64 | |
| 6 | jellyfin | 10.0.10.232 | BC:24:11:29:B8:84 | stopped until NAS OK |
| 7 | listmonk (pve201 VM 113) | 10.0.10.148 | BC:24:11:11:53:9A | |
| 8 | Mailcow (pve201) | 10.0.10.132 | BC:24:11:34:75:2D | |
| 9 | TrueNAS | 10.0.10.107 | BC:24:11:14:DE:B5 | optional pin |
| 10 | PVE.BU.SVR | 10.0.10.200 | BC:24:11:DA:95:3B | lab VM |
Full MAC table: vm-static-ip-router-reservations.md.
If you only see 192.168.2.x in UniFi
Your Mac may be on 192.168.2.0/24 while Proxmox guests use a separate 10.0.10.0/24 network. In that case:
- Add or edit a UniFi network/VLAN for
10.0.10.0/24, or - Ensure the router bridges/routes between
192.168.2.xand10.0.10.x, and - Put DHCP reservations on the network that actually serves the Proxmox bridge.
After reservations
Mark ✅ router in host-list.md for each guest.