| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008 |
- version: 3
- resources:
- # ============================================================================
- # Hardware
- # ============================================================================
- - kind: Server
- ram:
- size: 128
- mts: 3200
- ipmi: true
- cpus:
- - model: AMD EPYC 7302P
- cores: 16
- threads: 32
- drives:
- - type: ssd
- size: 1024
- - type: ssd
- size: 1024
- ports:
- - type: rj45
- speed: 1
- count: 2
- - type: sfp+
- speed: 10
- count: 2
- name: proxmox-node01
- - kind: Server
- ram:
- size: 96
- mts: 2666
- ipmi: true
- cpus:
- - model: Intel Xeon Silver 4210
- cores: 10
- threads: 20
- drives:
- - type: ssd
- size: 1024
- - type: hdd
- size: 4096
- ports:
- - type: rj45
- speed: 1
- count: 2
- - type: sfp+
- speed: 10
- count: 1
- name: proxmox-node02
- - kind: Server
- ram:
- size: 64
- mts: 2666
- ipmi: true
- cpus:
- - model: Intel Xeon E-2236
- cores: 6
- threads: 12
- drives:
- - type: hdd
- size: 8192
- - type: hdd
- size: 8192
- - type: hdd
- size: 8192
- - type: hdd
- size: 8192
- ports:
- - type: rj45
- speed: 1
- count: 1
- - type: sfp+
- speed: 10
- count: 1
- name: truenas-storage
- - kind: Server
- ram:
- size: 32
- mts: 3200
- ipmi: false
- cpus:
- - model: Intel Core i5-1240P
- cores: 12
- threads: 16
- drives:
- - type: ssd
- size: 1024
- ports:
- - type: rj45
- speed: 2.5
- count: 1
- name: docker-host
- - kind: Firewall
- model: Netgate-6100
- managed: true
- poe: false
- ports:
- - type: rj45
- speed: 1
- count: 4
- - type: sfp+
- speed: 10
- count: 2
- name: pfsense-fw
- - kind: Router
- model: Ubiquiti-ER-4
- managed: true
- poe: false
- ports:
- - type: rj45
- speed: 1
- count: 4
- - type: sfp+
- speed: 10
- count: 1
- name: core-router
- - kind: Switch
- model: UniFi-USW-Enterprise-24
- managed: true
- poe: true
- ports:
- - type: rj45
- speed: 1
- count: 12
- - type: rj45
- speed: 2.5
- count: 8
- - type: sfp+
- speed: 10
- count: 4
- name: core-switch
- - kind: Switch
- model: UniFi-USW-16-PoE
- managed: true
- poe: true
- ports:
- - type: rj45
- speed: 1
- count: 16
- - type: sfp
- speed: 1
- count: 2
- name: access-switch
- - kind: AccessPoint
- model: UniFi-U6-Pro
- speed: 2.5
- name: lounge-ap
- - kind: AccessPoint
- model: UniFi-U6-Lite
- speed: 1
- name: basement-ap
- - kind: Ups
- model: APC-SmartUPS-2200
- va: 2200
- name: rack-ups
- - kind: Desktop
- ram:
- size: 64
- mts: 3600
- cpus:
- - model: AMD Ryzen 9 5900X
- cores: 12
- threads: 24
- drives:
- - type: ssd
- size: 1024
- - type: ssd
- size: 2048
- gpus:
- - model: NVIDIA RTX 3080
- vram: 10
- ports:
- - type: rj45
- speed: 1
- count: 1
- name: workstation-linux
- - kind: Desktop
- ram:
- size: 32
- mts: 3200
- cpus:
- - model: Intel Core i7-12700K
- cores: 12
- threads: 20
- drives:
- - type: ssd
- size: 1024
- gpus:
- - model: NVIDIA RTX 3070
- vram: 8
- ports:
- - type: rj45
- speed: 1
- count: 1
- name: gaming-pc
- - kind: Laptop
- ram:
- size: 32
- mts: 5200
- cpus:
- - model: Intel Core i7-1260P
- cores: 12
- threads: 16
- drives:
- - type: ssd
- size: 1024
- name: dev-laptop
- # ============================================================================
- # Systems
- # ============================================================================
- # Hypervisors / baremetal hosts
- - kind: System
- type: Hypervisor
- os: proxmox
- cores: 16
- ram: 128
- drives:
- - size: 1024
- - size: 1024
- ip: 192.168.1.10
- name: proxmox-cluster-node01
- runsOn:
- - proxmox-node01
- - kind: System
- type: Hypervisor
- os: proxmox
- cores: 10
- ram: 96
- drives:
- - size: 1024
- - size: 4096
- ip: 192.168.1.11
- name: proxmox-cluster-node02
- runsOn:
- - proxmox-node02
- - kind: System
- type: Baremetal
- os: truenas-scale
- cores: 6
- ram: 64
- drives:
- - size: 8192
- - size: 8192
- - size: 8192
- - size: 8192
- ip: 192.168.1.20
- name: truenas-core-os
- runsOn:
- - truenas-storage
- - kind: System
- type: Baremetal
- os: debian-12
- cores: 12
- ram: 32
- drives:
- - size: 1024
- ip: 192.168.1.30
- name: docker-host-os
- runsOn:
- - docker-host
- # IPMI / BMC management
- - kind: System
- type: Baremetal
- os: idrac
- cores: 1
- ram: 1
- ip: 10.0.0.30
- name: ipmi-proxmox-node01
- runsOn:
- - proxmox-node01
- - kind: System
- type: Baremetal
- os: ipmi
- cores: 1
- ram: 1
- ip: 10.0.0.31
- name: ipmi-proxmox-node02
- runsOn:
- - proxmox-node02
- - kind: System
- type: Baremetal
- os: ipmi
- cores: 1
- ram: 1
- ip: 10.0.0.32
- name: ipmi-truenas-storage
- runsOn:
- - truenas-storage
- # Network appliances
- - kind: System
- type: Baremetal
- os: pfsense
- cores: 4
- ram: 8
- drives:
- - size: 32
- ip: 10.0.0.1
- name: firewall-os
- runsOn:
- - pfsense-fw
- - kind: System
- type: Baremetal
- os: edgeos
- cores: 4
- ram: 4
- drives:
- - size: 4
- ip: 10.0.0.2
- name: router-os
- runsOn:
- - core-router
- - kind: System
- type: Baremetal
- os: unifi-os
- cores: 2
- ram: 2
- drives:
- - size: 8
- ip: 10.0.0.10
- name: unifi-core-switch-os
- runsOn:
- - core-switch
- - kind: System
- type: Baremetal
- os: unifi-os
- cores: 2
- ram: 2
- drives:
- - size: 8
- ip: 10.0.0.11
- name: unifi-access-switch-os
- runsOn:
- - access-switch
- - kind: System
- type: Baremetal
- os: unifi-firmware
- cores: 2
- ram: 1
- drives:
- - size: 4
- ip: 10.0.0.20
- name: unifi-lounge-ap-os
- runsOn:
- - lounge-ap
- - kind: System
- type: Baremetal
- os: unifi-firmware
- cores: 2
- ram: 1
- drives:
- - size: 4
- ip: 10.0.0.21
- name: unifi-basement-ap-os
- runsOn:
- - basement-ap
- # Virtual machines
- - kind: System
- type: VM
- os: hassos
- cores: 2
- ram: 4
- drives:
- - size: 64
- ip: 192.168.20.10
- name: vm-home-assistant
- runsOn:
- - proxmox-node01
- - kind: System
- type: VM
- os: ubuntu-22.04
- cores: 4
- ram: 8
- drives:
- - size: 500
- ip: 192.168.10.20
- name: vm-media-server
- runsOn:
- - proxmox-node02
- - kind: System
- type: VM
- os: debian-12
- cores: 2
- ram: 4
- drives:
- - size: 64
- ip: 192.168.10.30
- name: vm-monitoring
- runsOn:
- - proxmox-node01
- - kind: System
- type: VM
- os: debian-12
- cores: 4
- ram: 8
- drives:
- - size: 128
- ip: 192.168.10.40
- name: vm-k3s-master
- runsOn:
- - proxmox-node01
- - kind: System
- type: VM
- os: debian-12
- cores: 4
- ram: 8
- drives:
- - size: 128
- ip: 192.168.10.41
- name: vm-k3s-worker-01
- runsOn:
- - proxmox-node02
- - kind: System
- type: VM
- os: debian-12
- cores: 4
- ram: 8
- drives:
- - size: 128
- ip: 192.168.10.42
- name: vm-k3s-worker-02
- runsOn:
- - proxmox-node02
- # LXC containers (lightweight service hosts)
- - kind: System
- type: LXC
- os: debian-12
- cores: 2
- ram: 4
- drives:
- - size: 32
- ip: 192.168.10.50
- name: lxc-arr
- runsOn:
- - proxmox-node02
- - kind: System
- type: LXC
- os: debian-12
- cores: 2
- ram: 4
- drives:
- - size: 32
- ip: 192.168.10.51
- name: lxc-downloads
- runsOn:
- - proxmox-node02
- - kind: System
- type: LXC
- os: debian-12
- cores: 2
- ram: 2
- drives:
- - size: 16
- ip: 192.168.10.60
- name: lxc-network
- runsOn:
- - proxmox-node01
- - kind: System
- type: LXC
- os: debian-12
- cores: 2
- ram: 2
- drives:
- - size: 16
- ip: 192.168.10.61
- name: lxc-auth
- runsOn:
- - proxmox-node01
- - kind: System
- type: LXC
- os: debian-12
- cores: 2
- ram: 4
- drives:
- - size: 64
- ip: 192.168.10.62
- name: lxc-files
- runsOn:
- - proxmox-node02
- - kind: System
- type: LXC
- os: debian-12
- cores: 1
- ram: 2
- drives:
- - size: 16
- ip: 192.168.10.63
- name: lxc-dashboard
- runsOn:
- - proxmox-node01
- # ============================================================================
- # Services
- # ============================================================================
- # --- Smart home (IoT VLAN) ---
- - kind: Service
- network:
- ip: 192.168.20.10
- port: 8123
- protocol: TCP
- url: http://homeassistant.lan:8123
- name: home-assistant
- runsOn:
- - vm-home-assistant
- - kind: Service
- network:
- ip: 192.168.20.10
- port: 1883
- protocol: TCP
- url: mqtt://homeassistant.lan:1883
- name: mosquitto
- runsOn:
- - vm-home-assistant
- - kind: Service
- network:
- ip: 192.168.20.10
- port: 8080
- protocol: TCP
- url: http://homeassistant.lan:8080
- name: zigbee2mqtt
- runsOn:
- - vm-home-assistant
- # --- Media stack ---
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 32400
- protocol: TCP
- url: http://plex.lan:32400
- name: plex
- runsOn:
- - vm-media-server
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 8096
- protocol: TCP
- url: http://jellyfin.lan:8096
- name: jellyfin
- runsOn:
- - vm-media-server
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 8083
- protocol: TCP
- url: http://audiobookshelf.lan:8083
- name: audiobookshelf
- runsOn:
- - vm-media-server
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 4533
- protocol: TCP
- url: http://navidrome.lan:4533
- name: navidrome
- runsOn:
- - vm-media-server
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 2283
- protocol: TCP
- url: https://immich.lan
- name: immich
- runsOn:
- - vm-media-server
- - kind: Service
- network:
- ip: 192.168.10.20
- port: 2342
- protocol: TCP
- url: http://photoprism.lan:2342
- name: photoprism
- runsOn:
- - vm-media-server
- # --- *arr stack & downloads ---
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 8989
- protocol: TCP
- url: http://sonarr.lan:8989
- name: sonarr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 7878
- protocol: TCP
- url: http://radarr.lan:7878
- name: radarr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 8686
- protocol: TCP
- url: http://lidarr.lan:8686
- name: lidarr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 6767
- protocol: TCP
- url: http://bazarr.lan:6767
- name: bazarr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 9696
- protocol: TCP
- url: http://prowlarr.lan:9696
- name: prowlarr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.50
- port: 5055
- protocol: TCP
- url: http://overseerr.lan:5055
- name: overseerr
- runsOn:
- - lxc-arr
- - kind: Service
- network:
- ip: 192.168.10.51
- port: 8080
- protocol: TCP
- url: http://qbittorrent.lan:8080
- name: qbittorrent
- runsOn:
- - lxc-downloads
- - kind: Service
- network:
- ip: 192.168.10.51
- port: 8081
- protocol: TCP
- url: http://sabnzbd.lan:8081
- name: sabnzbd
- runsOn:
- - lxc-downloads
- # --- Network services ---
- - kind: Service
- network:
- ip: 192.168.10.60
- port: 80
- protocol: TCP
- url: http://adguard.lan
- name: adguard-home
- runsOn:
- - lxc-network
- - kind: Service
- network:
- ip: 192.168.10.60
- port: 5335
- protocol: TCP
- url: udp://unbound.lan:5335
- name: unbound
- runsOn:
- - lxc-network
- - kind: Service
- network:
- ip: 192.168.10.60
- port: 81
- protocol: TCP
- url: http://npm.lan:81
- name: nginx-proxy-manager
- runsOn:
- - lxc-network
- - kind: Service
- network:
- ip: 192.168.10.60
- port: 51820
- protocol: UDP
- url: wg://wireguard.lan:51820
- name: wireguard
- runsOn:
- - lxc-network
- # --- Auth & secrets ---
- - kind: Service
- network:
- ip: 192.168.10.61
- port: 9000
- protocol: TCP
- url: https://auth.lan
- name: authentik
- runsOn:
- - lxc-auth
- - kind: Service
- network:
- ip: 192.168.10.61
- port: 8000
- protocol: TCP
- url: https://vault.lan
- name: vaultwarden
- runsOn:
- - lxc-auth
- # --- Files & productivity ---
- - kind: Service
- network:
- ip: 192.168.10.62
- port: 443
- protocol: TCP
- url: https://nextcloud.lan
- name: nextcloud
- runsOn:
- - lxc-files
- - kind: Service
- network:
- ip: 192.168.10.62
- port: 8384
- protocol: TCP
- url: http://syncthing.lan:8384
- name: syncthing
- runsOn:
- - lxc-files
- - kind: Service
- network:
- ip: 192.168.10.62
- port: 8000
- protocol: TCP
- url: http://paperless.lan:8000
- name: paperless-ngx
- runsOn:
- - lxc-files
- # --- Monitoring & ops ---
- - kind: Service
- network:
- ip: 192.168.10.30
- port: 9090
- protocol: TCP
- url: http://prometheus.lan:9090
- name: prometheus
- runsOn:
- - vm-monitoring
- - kind: Service
- network:
- ip: 192.168.10.30
- port: 3000
- protocol: TCP
- url: http://grafana.lan:3000
- name: grafana
- runsOn:
- - vm-monitoring
- - kind: Service
- network:
- ip: 192.168.10.30
- port: 9093
- protocol: TCP
- url: http://alertmanager.lan:9093
- name: alertmanager
- runsOn:
- - vm-monitoring
- - kind: Service
- network:
- ip: 192.168.10.30
- port: 3100
- protocol: TCP
- url: http://loki.lan:3100
- name: loki
- runsOn:
- - vm-monitoring
- - kind: Service
- network:
- ip: 192.168.10.63
- port: 3001
- protocol: TCP
- url: http://uptime.lan:3001
- name: uptime-kuma
- runsOn:
- - lxc-dashboard
- - kind: Service
- network:
- ip: 192.168.10.63
- port: 7575
- protocol: TCP
- url: http://homarr.lan:7575
- name: homarr
- runsOn:
- - lxc-dashboard
- - kind: Service
- network:
- ip: 192.168.10.63
- port: 8080
- protocol: TCP
- url: http://dozzle.lan:8080
- name: dozzle
- runsOn:
- - lxc-dashboard
- # --- Dev / source / CI ---
- - kind: Service
- network:
- ip: 192.168.10.40
- port: 3000
- protocol: TCP
- url: http://gitea.lan:3000
- name: gitea
- runsOn:
- - vm-k3s-master
- - kind: Service
- network:
- ip: 192.168.10.40
- port: 80
- protocol: TCP
- url: http://drone.lan
- name: drone-ci
- runsOn:
- - vm-k3s-master
- - kind: Service
- network:
- ip: 192.168.1.30
- port: 9000
- protocol: TCP
- url: http://portainer.lan:9000
- name: portainer
- runsOn:
- - docker-host-os
- - kind: Service
- network:
- ip: 192.168.1.30
- port: 5000
- protocol: TCP
- url: http://registry.lan:5000
- name: docker-registry
- runsOn:
- - docker-host-os
- - kind: Service
- network:
- ip: 192.168.1.30
- port: 9001
- protocol: TCP
- url: http://minio.lan:9001
- name: minio
- runsOn:
- - docker-host-os
- # --- Storage UI ---
- - kind: Service
- network:
- ip: 192.168.1.20
- port: 443
- protocol: TCP
- url: https://truenas.lan
- name: truenas-webui
- runsOn:
- - truenas-core-os
- # --- Network admin UIs ---
- - kind: Service
- network:
- ip: 10.0.0.1
- port: 443
- protocol: TCP
- url: https://firewall.lan
- name: firewall-webui
- runsOn:
- - firewall-os
- - kind: Service
- network:
- ip: 10.0.0.2
- port: 443
- protocol: TCP
- url: https://router.lan
- name: router-webui
- runsOn:
- - router-os
- - kind: Service
- network:
- ip: 10.0.0.10
- port: 443
- protocol: TCP
- url: https://unifi.lan
- name: unifi-controller
- runsOn:
- - unifi-core-switch-os
- # ============================================================================
- # Connections (physical port wiring)
- # ============================================================================
- connections:
- # WAN ─ firewall ─ router (uplink chain)
- - a:
- resource: pfsense-fw
- portGroup: 1
- portIndex: 0
- b:
- resource: core-router
- portGroup: 1
- portIndex: 0
- label: WAN uplink
- # router ─ core-switch (10G trunk)
- - a:
- resource: core-router
- portGroup: 1
- portIndex: 0
- b:
- resource: core-switch
- portGroup: 2
- portIndex: 0
- label: core trunk
- # core-switch ─ access-switch (1G uplink)
- - a:
- resource: core-switch
- portGroup: 0
- portIndex: 0
- b:
- resource: access-switch
- portGroup: 1
- portIndex: 0
- label: uplink
- # core-switch ─ proxmox-node01 (10G)
- - a:
- resource: core-switch
- portGroup: 2
- portIndex: 1
- b:
- resource: proxmox-node01
- portGroup: 1
- portIndex: 0
- label: 10G
- # core-switch ─ proxmox-node02 (10G)
- - a:
- resource: core-switch
- portGroup: 2
- portIndex: 2
- b:
- resource: proxmox-node02
- portGroup: 1
- portIndex: 0
- label: 10G
- # core-switch ─ truenas-storage (10G)
- - a:
- resource: core-switch
- portGroup: 2
- portIndex: 3
- b:
- resource: truenas-storage
- portGroup: 1
- portIndex: 0
- label: 10G
- # core-switch ─ docker-host (2.5G)
- - a:
- resource: core-switch
- portGroup: 1
- portIndex: 0
- b:
- resource: docker-host
- portGroup: 0
- portIndex: 0
- label: 2.5G
- # access-switch ─ lounge-ap (PoE)
- - a:
- resource: access-switch
- portGroup: 0
- portIndex: 0
- b:
- resource: lounge-ap
- portGroup: 0
- portIndex: 0
- label: PoE
- # access-switch ─ basement-ap (PoE)
- - a:
- resource: access-switch
- portGroup: 0
- portIndex: 1
- b:
- resource: basement-ap
- portGroup: 0
- portIndex: 0
- label: PoE
- # access-switch ─ workstation-linux
- - a:
- resource: access-switch
- portGroup: 0
- portIndex: 2
- b:
- resource: workstation-linux
- portGroup: 0
- portIndex: 0
- # access-switch ─ gaming-pc
- - a:
- resource: access-switch
- portGroup: 0
- portIndex: 3
- b:
- resource: gaming-pc
- portGroup: 0
- portIndex: 0
|