4.2 KiB
4.2 KiB
Environment constraints
Date: 2026-01-10
Status: Living document
Author: Chester + FrankGPT
Purpose
This document defines the hardware, software, and network constraints of the homelab environment. All playbooks and roles must respect these constraints.
Network topology
Important
Current operational state is still a flat network on
10.0.0.0/24. VLAN segmentation and target zone allocations in this document are migration targets, not fully applied runtime state.
| Parameter | Value |
|---|---|
| Subnet | 10.0.0.0/24 |
| Gateway | 10.0.0.2 |
| Primary DNS | 10.0.0.2 |
| Secondary DNS | 8.8.8.8 |
| Domain | local (optional) |
IP allocation scheme
| Range | Purpose |
|---|---|
10.0.0.1 |
Reserved |
10.0.0.2 |
Gateway / Primary DNS |
10.0.0.3 - 10.0.0.199 |
DHCP / General devices |
10.0.0.200 - 10.0.0.209 |
Proxmox hosts (physical) |
10.0.0.210 - 10.0.0.219 |
Swarm managers (VMs) |
10.0.0.220 - 10.0.0.229 |
Swarm workers (VMs) / legacy AI nodes during migration |
10.0.0.230 - 10.0.0.239 |
AI workstations |
10.0.0.240 - 10.0.0.248 |
Reserved / Future |
10.0.0.249 - 10.0.0.250 |
NAS devices |
10.0.0.251 - 10.0.0.254 |
Docker hosts / Misc |
Host categories
Proxmox cluster (physical)
| Hostname | IP | Hardware | Notes |
|---|---|---|---|
pve01 |
10.0.0.201 |
Lenovo SFF, 16 GB RAM, 512 GB NVMe | First node, 2× NICs |
pve02 |
10.0.0.202 |
(future) | |
pve03 |
10.0.0.203 |
(future) | |
pve04 |
10.0.0.204 |
(future) | |
pve05 |
10.0.0.205 |
(future) |
Constraints:
- Proxmox VE 8.x or 9.x
ansible_user=rootfor provisioning- Python 3 available at
/usr/bin/python3
Swarm nodes (VMs on Proxmox)
| Role | Hostname pattern | IP range | Specs |
|---|---|---|---|
| Manager | swarm-manager-X |
.211 - .215 |
4 GB RAM, 2 vCPU, 32 GB disk |
| Worker | swarm-worker-X |
.221 - .225 |
4 GB RAM, 2 vCPU, 32 GB disk |
Constraints:
- Ubuntu 24.04 LTS (Noble)
- Docker CE installed via official repo
ansible_user=chester
AI workstations (physical)
| Hostname | IP | Hardware | Notes |
|---|---|---|---|
ai-lenovo |
10.0.0.220 |
Laptop, 12 GB GPU | Ubuntu Server |
Constraints:
- Ubuntu Server (not Desktop)
- GPU drivers managed separately
ansible_user=chester
Storage / NAS (appliances)
| Hostname | IP | Product | Notes |
|---|---|---|---|
synology |
10.0.0.249 |
Synology NAS | Proprietary Linux, limited shell |
terramaster |
10.0.0.250 |
TerraMaster NAS | Proprietary Linux, limited shell |
Constraints:
- Caution required — proprietary OS, not standard Ubuntu
- Use
ansible_scp_if_ssh=Truefor Synology - Avoid destructive commands; test in check mode first
- Limited Python support; prefer
rawmodule when needed
Controller (watchtower)
| Hostname | IP | Hardware | Notes |
|---|---|---|---|
localhost |
N/A | Raspberry Pi 5 | Ansible controller |
Constraints:
ansible_connection=local- Runs all playbooks from this host
- ARM64 architecture (consider when building containers)
Software standards
| Component | Version | Notes |
|---|---|---|
| Ansible | 2.15+ | Core automation |
| Python | 3.10+ | Required on all managed hosts |
| Docker CE | Latest stable | Swarm mode |
| Proxmox VE | 8.x or 9.x | Hypervisor |
| Ubuntu | 24.04 LTS | Guest OS for VMs |
Firewall / ports
| Port | Protocol | Purpose | Required on |
|---|---|---|---|
| 22 | TCP | SSH | All hosts |
| 8006 | TCP | Proxmox GUI | Proxmox hosts |
| 2377 | TCP | Swarm cluster mgmt | Swarm nodes |
| 7946 | TCP/UDP | Swarm node comm | Swarm nodes |
| 4789 | UDP | Swarm overlay network | Swarm nodes |
Documentation mandate
Important
FrankGPT core principle: Documentation is not optional.
- Every decision must be recorded in
documentation/standards/- Every playbook must have a header comment explaining usage
- Every variable must be documented in defaults or group_vars
- When in doubt, write it down
Change log
| Date | Change | Author |
|---|---|---|
| 2026-01-10 | Initial creation | Chester + FrankGPT |