- infrastructure/proxmox/: CT provisioning configs - infrastructure/fabric/gitops/: GitOps layer - fleet.yaml: GPU inventory (Dell GTX 1050 vfio-pci passthrough) - firmware/: ESP32 firmware tree (67 files, 6.9MB) - realms/savearth/: Savearth team realm with heteronyms - lab-gateway: ESP client + manager - CI: Forgejo + GitHub Actions workflows Co-authored-by: Álvaro de Campos <campos@portugalfuturista.org>
374 lines
9.8 KiB
YAML
374 lines
9.8 KiB
YAML
# ============================================================================
|
|
# Portugal Futurista — Unified Fleet Inventory
|
|
# ============================================================================
|
|
# Single source of truth: Proxmox CTs/VMs + Hetzner cloud VMs treated equally.
|
|
# Consumed by:
|
|
# - pfctl (unified CLI)
|
|
# - Ansible (inventory plugin)
|
|
# - Prometheus (scrape targets)
|
|
# - pfctl dashboard (TUI)
|
|
#
|
|
# Generated from live cluster state on 2026-07-30.
|
|
# Regenerate: python3 scripts/pfctl sync-inventory
|
|
# ============================================================================
|
|
|
|
fleet:
|
|
# ── Physical hosts (bare-metal Proxmox nodes) ──────────────────────────
|
|
hosts:
|
|
asus:
|
|
ip: 192.168.0.38
|
|
provider: proxmox
|
|
role: hypervisor
|
|
specs: { cpu: "Ryzen 7", cores: 16, ram_gb: 31, disks: "various" }
|
|
wireguard_ip: 10.99.0.1
|
|
notes: "Cluster primary, Cloudflare tunnel, WireGuard hub"
|
|
|
|
gigabyte:
|
|
ip: 192.168.0.104
|
|
provider: proxmox
|
|
role: hypervisor
|
|
specs: { cpu: "Ryzen 1600", cores: 12, ram_gb: 46, gpus: ["RTX 3070", "RTX 3070"] }
|
|
notes: "Media stack, CT223 data layer, Docker"
|
|
|
|
dell:
|
|
ip: 192.168.0.41
|
|
provider: proxmox
|
|
role: hypervisor
|
|
specs: { cpu: "Intel i7", cores: 8, ram_gb: 31 }
|
|
notes: "Savearth fleet, Forge+Stage target"
|
|
|
|
lattepanda:
|
|
ip: 192.168.0.200
|
|
provider: proxmox
|
|
role: hypervisor
|
|
specs: { cpu: "Intel N100", cores: 4, ram_gb: 16 }
|
|
notes: "Edge services, monitoring"
|
|
|
|
# ── Cloud VMs (Hetzner) ────────────────────────────────────────────────
|
|
cloud:
|
|
pf-edge:
|
|
ip: 94.130.24.119
|
|
provider: hetzner
|
|
type: cx22
|
|
role: public-edge
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 38 }
|
|
wireguard_ip: 10.99.0.2
|
|
cost_eur_month: 4.50
|
|
location: nbg1
|
|
notes: "Media reverse proxy (Caddy) + WireGuard to ASUS"
|
|
|
|
pf-aurelio:
|
|
ip: null # filled when provisioned
|
|
provider: hetzner
|
|
type: cpx31
|
|
role: aurelio-core
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 160 }
|
|
wireguard_ip: 10.99.0.3
|
|
cost_eur_month: 8.50
|
|
location: nbg1
|
|
status: planned
|
|
notes: "Gabinete, Bot-rs, fabricd, MCP gateway, sub-agent harness"
|
|
|
|
# ── Containers / VMs (managed workloads) ───────────────────────────────
|
|
# Each entry: provider tells pfctl how to manage it (pct vs ssh vs hcloud)
|
|
nodes:
|
|
|
|
# ── GIGABYTE CTs ──
|
|
"223":
|
|
name: pf-forja-do-conhecimento
|
|
host: gigabyte
|
|
ip: 192.168.0.125
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 2, disk_gb: 439 }
|
|
role: aurelio-data-layer
|
|
status: running
|
|
services: [gbrain, gbrain-rest-proxy, gabinete, bot-rs, fabricd, mcp-servers, kimi-swarm, lifestream, identity, plane, outline, minio]
|
|
notes: "GOD CONTAINER — needs splitting"
|
|
|
|
"200":
|
|
name: pf-saas-hil
|
|
host: gigabyte
|
|
ip: 192.168.0.220
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 16 }
|
|
status: running
|
|
|
|
"201":
|
|
name: pf-saas-mcp
|
|
host: gigabyte
|
|
ip: 192.168.0.212
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 1, disk_gb: 8 }
|
|
status: running
|
|
|
|
"211":
|
|
name: pf-dev-unified
|
|
host: gigabyte
|
|
ip: 192.168.0.203
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 16, disk_gb: 125 }
|
|
status: running
|
|
|
|
"218":
|
|
name: pf-arquivo-de-orpheu
|
|
host: gigabyte
|
|
ip: 192.168.0.26
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 29 }
|
|
status: running
|
|
|
|
"219":
|
|
name: pf-agy-lsp
|
|
host: gigabyte
|
|
ip: 192.168.0.25
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 16 }
|
|
status: running
|
|
|
|
"221":
|
|
name: pf-media-heavy
|
|
host: gigabyte
|
|
ip: 192.168.0.21
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 8, disk_gb: 62 }
|
|
status: running
|
|
|
|
"222":
|
|
name: pf-bolsa-do-mundial
|
|
host: gigabyte
|
|
ip: 192.168.0.20
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 20 }
|
|
status: running
|
|
|
|
"210":
|
|
name: pf-vision-build
|
|
host: gigabyte
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 8, disk_gb: 32 }
|
|
status: stopped
|
|
|
|
# ── DELL CTs ──
|
|
"213":
|
|
name: pf-immich
|
|
host: dell
|
|
ip: 192.168.0.23
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 16 }
|
|
status: running
|
|
|
|
"231":
|
|
name: pf-homeassistant
|
|
host: dell
|
|
ip: 192.168.0.156
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 31 }
|
|
status: running
|
|
|
|
"234":
|
|
name: pf-marketplace
|
|
host: dell
|
|
ip: 192.168.0.235
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 8, disk_gb: 31 }
|
|
status: running
|
|
|
|
"235":
|
|
name: pf-orchestrator
|
|
host: dell
|
|
ip: 192.168.0.12
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 8, disk_gb: 31 }
|
|
status: running
|
|
|
|
"236":
|
|
name: pf-savearth
|
|
host: dell
|
|
ip: 192.168.0.54
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 31 }
|
|
status: running
|
|
|
|
"237":
|
|
name: pf-iot-stack
|
|
host: dell
|
|
ip: 192.168.0.9
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 2, disk_gb: 94 }
|
|
status: running
|
|
|
|
# ── ASUS CTs ──
|
|
"209":
|
|
name: pf-media-library
|
|
host: asus
|
|
ip: 192.168.0.119
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 59 }
|
|
status: running
|
|
|
|
"216":
|
|
name: pf-management
|
|
host: asus
|
|
ip: 192.168.0.126
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 31 }
|
|
status: running
|
|
|
|
"217":
|
|
name: pf-hermes
|
|
host: asus
|
|
ip: 192.168.0.27
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 31 }
|
|
role: hermes-gateway
|
|
status: running
|
|
notes: "Hermes 24/7 gateway — Signal/Telegram/Matrix"
|
|
|
|
"203":
|
|
name: pf-iot-stack
|
|
host: asus
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 40 }
|
|
status: stopped
|
|
|
|
"208":
|
|
name: pf-forja-do-conhecimento
|
|
host: asus
|
|
provider: proxmox-lxc
|
|
specs: { cores: 4, ram_gb: 2, disk_gb: 50 }
|
|
status: stopped
|
|
notes: "OLD HUB — superseded by CT223 on Gigabyte"
|
|
|
|
"220":
|
|
name: pf-bolsa-do-mundial
|
|
host: asus
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 20 }
|
|
status: stopped
|
|
|
|
# ── LATTEPANDA CTs ──
|
|
"230":
|
|
name: pf-payments
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 196 }
|
|
status: running
|
|
|
|
"242":
|
|
name: pf-marketplace
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 1, disk_gb: 8 }
|
|
status: running
|
|
|
|
"243":
|
|
name: pf-monitoring
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 1, disk_gb: 8 }
|
|
role: monitoring
|
|
status: running
|
|
|
|
"244":
|
|
name: pf-print-server
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: running
|
|
|
|
"245":
|
|
name: pf-matrix
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 1, disk_gb: 8 }
|
|
status: running
|
|
|
|
"246":
|
|
name: pf-aurelio-web
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 6, disk_gb: 31 }
|
|
status: running
|
|
|
|
"250":
|
|
name: pf-sources
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 31 }
|
|
status: running
|
|
|
|
"300":
|
|
name: pf-aurelio-multi
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 2, disk_gb: 16 }
|
|
status: running
|
|
|
|
"302":
|
|
name: pf-aurelio-savearth
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 31 }
|
|
status: running
|
|
|
|
"241":
|
|
name: pf-indico
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 2, ram_gb: 4, disk_gb: 20 }
|
|
status: stopped
|
|
|
|
"301":
|
|
name: pf-aurelio-test-client
|
|
host: lattepanda
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: stopped
|
|
|
|
# ── QEMU VMs ──
|
|
"100":
|
|
name: devvm-arch
|
|
host: gigabyte
|
|
provider: proxmox-vm
|
|
specs: { cores: 4, ram_gb: 4, disk_gb: 80 }
|
|
status: running
|
|
|
|
# ── GCLOUD PER-ACCOUNT BOXES (planned) ──
|
|
"400":
|
|
name: pf-gcloud-base
|
|
host: gigabyte
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: stopped
|
|
role: gcloud-template
|
|
notes: "Template LXC with minimal gcloud CLI. Do not run; clone per account."
|
|
|
|
"401":
|
|
name: pf-gcloud-fabio-gmail
|
|
host: gigabyte
|
|
ip: 192.168.0.151
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: running
|
|
role: gcloud-account
|
|
notes: "fabiorcoutada@gmail.com"
|
|
|
|
"402":
|
|
name: pf-gcloud-fabio-alt
|
|
host: gigabyte
|
|
ip: 192.168.0.154
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: running
|
|
role: gcloud-account
|
|
notes: "fabiorcdcunha@gmail.com"
|
|
|
|
"403":
|
|
name: pf-gcloud-fabio-savearth
|
|
host: gigabyte
|
|
ip: 192.168.0.153
|
|
provider: proxmox-lxc
|
|
specs: { cores: 1, ram_gb: 0.5, disk_gb: 8 }
|
|
status: running
|
|
role: gcloud-account
|
|
notes: "fabio@savearth.io (Workspace)"
|