Sfoglia il codice sorgente

Added rpk gif to the README

Tim Jones 2 mesi fa
parent
commit
d5b39cf4af

BIN
.DS_Store


+ 48 - 3
README.md

@@ -1,8 +1,53 @@
 # RackPeek
 
-RackPeek is a lightweight CLI tool for managing and documenting your IT infrastructure and home lab.
-Track servers, switches, routers, desktops, access points, UPS systems, and more — including software systems, services, and networks — all from the command line.
-It’s designed to help you inventory, configure, and audit your environment in a consistent, reusable way.
+RackPeek is a lightweight, opinionated CLI tool for documenting and managing home lab and small-scale IT infrastructure.
+
+It helps you track hardware, services, networks, and their relationships in a clear, scriptable, and reusable way without enterprise bloat or proprietary lock-in.
+
+RackPeek is open source and community-driven.
+Code, docs, ideas, bug reports, and real-world usage feedback are all massively appreciated.
+If you run a home lab, you belong here.
+
+## Philosophy
+RackPeek treats infrastructure documentation as living reference data rather than static paperwork.
+
+You should be able to document your environment as you build it, explore relationships between systems, and quickly understand how everything fits together, without drowning in unnecessary metadata or process.
+
+RackPeek is not a CMDB replacement. It’s a clean framework for understanding and maintaining your lab.
+
+[![RackPeek demo](./vhs/rpk-demo.gif)](./rpk-demo.gif)
+
+## Core Values
+
+**Simplicity**  
+RackPeek focuses on clarity and usefulness. Its scope is intentionally kept narrow to avoid unnecessary abstraction and feature creep.
+
+**Ease of Deployment**  
+The tool exists to reduce operational complexity. Installation, upgrades, and day-to-day usage should be straightforward and low-friction.
+
+**Openness**  
+RackPeek uses open, non-proprietary data formats. You fully own your data and should be free to easily inspect, migrate, or reuse it however you choose.
+
+**Community**  
+Contributors of all experience levels are welcome. Knowledge sharing, mentorship, and collaboration are core to the project’s culture.
+
+**Privacy & Security**  
+No telemetry, no ads, no tracking, and no artificial restrictions. What runs on your infrastructure stays on your infrastructure.
+
+**Dogfooding**  
+RackPeek is built to solve real problems we actively have. If a feature isn’t useful in practice, it doesn’t belong.
+
+**Opinionated**  
+The project is optimized for home labs and self-hosted environments, not enterprise CMDBs or corporate documentation workflows.
+
+## Release Status
+```
+[x] Ideation
+[~] Development
+[ ] Alpha Release
+[ ] Beta Release
+[ ] v1.0.0 Release
+```
 
 ## Command Tree
 

BIN
RackPeek.Web/config/.DS_Store


BIN
RackPeek/.DS_Store


+ 2 - 0
RackPeek/CliBootstrap.cs

@@ -267,6 +267,8 @@ public static class CliBootstrap
 
             config.AddBranch("desktops", desktops =>
             {
+                desktops.SetDescription("Manage Desktops.");
+
                 // CRUD
                 desktops.AddCommand<DesktopAddCommand>("add");
                 desktops.AddCommand<DesktopGetCommand>("list");

+ 11 - 0
notes.md

@@ -0,0 +1,11 @@
+```
+dotnet publish -c Release -r osx-arm64 --self-contained true -p:PublishSingleFile=true
+sudo mv bin/Release/net*/osx-arm64/publish/RackPeek /usr/local/bin/rpk
+sudo chmod +x /usr/local/bin/rpk
+
+```
+
+```
+cd vhs
+vhs ./rpk.tape
+```

+ 81 - 513
vhs/config/Services.yaml

@@ -1,585 +1,153 @@
 resources:
+  # --------------------------------------------------
+  # Smart Home
+  # --------------------------------------------------
   - kind: Service
-    name: immich
-    network:
-      ip: 192.168.0.4
-      port: 8080
-      protocol: TCP
-      url: http://immich.lan:8080
-    runsOn: proxmox-host
-
-  - kind: Service
-    name: jellyfin
+    name: home-assistant
     network:
       ip: 192.168.0.10
-      port: 8096
+      port: 8123
       protocol: TCP
-      url: http://jellyfin.lan:8096
-    runsOn: docker-host
+      url: http://homeassistant.lan:8123
+    runsOn: vm-home-assistant
 
+  # --------------------------------------------------
+  # Media & Photos
+  # --------------------------------------------------
   - kind: Service
     name: plex
     network:
-      ip: 192.168.0.11
+      ip: 192.168.0.20
       port: 32400
       protocol: TCP
       url: http://plex.lan:32400
-    runsOn: proxmox-host
+    runsOn: vm-media-server
 
   - kind: Service
-    name: home-assistant
-    network:
-      ip: 192.168.1.20
-      port: 8123
-      protocol: TCP
-      url: http://ha.lan:8123
-    runsOn: k8s-node-1
-
-  - kind: Service
-    name: pihole
-    network:
-      ip: 192.168.1.2
-      port: 53
-      protocol: UDP
-      url: http://pihole.lan/admin
-    runsOn: baremetal-rpi4
-
-  - kind: Service
-    name: unifi-controller
-    network:
-      ip: 192.168.1.5
-      port: 8443
-      protocol: TCP
-      url: https://unifi.lan:8443
-    runsOn: vm-cluster-1
-
-  - kind: Service
-    name: syncthing
-    network:
-      ip: 10.0.0.15
-      port: 8384
-      protocol: TCP
-      url: http://sync.internal:8384
-    runsOn: docker-host
-
-  - kind: Service
-    name: grafana
+    name: jellyfin
     network:
-      ip: 10.0.0.20
-      port: 3000
+      ip: 192.168.0.21
+      port: 8096
       protocol: TCP
-      url: http://grafana.internal:3000
-    runsOn: monitoring-node
+      url: http://jellyfin.lan:8096
+    runsOn: vm-media-server
 
   - kind: Service
-    name: prometheus
+    name: immich
     network:
-      ip: 10.0.0.21
-      port: 9090
+      ip: 192.168.0.22
+      port: 8080
       protocol: TCP
-      url: http://prometheus.internal:9090
-    runsOn: monitoring-node
+      url: http://immich.lan:8080
+    runsOn: vm-media-server
 
+  # --------------------------------------------------
+  # Storage & Backup
+  # --------------------------------------------------
   - kind: Service
-    name: loki
+    name: truenas-webui
     network:
-      ip: 10.0.0.22
-      port: 3100
+      ip: 192.168.0.30
+      port: 443
       protocol: TCP
-      url: http://loki.internal:3100
-    runsOn: monitoring-node
+      url: https://truenas.lan
+    runsOn: truenas-core-os
 
   - kind: Service
     name: minio
     network:
-      ip: 172.16.0.10
+      ip: 192.168.0.31
       port: 9000
       protocol: TCP
-      url: http://minio.storage:9000
-    runsOn: storage-node-1
-
-  - kind: Service
-    name: nextcloud
-    network:
-      ip: 172.16.0.11
-      port: 443
-      protocol: TCP
-      url: https://nextcloud.storage
-    runsOn: storage-node-2
-
-  - kind: Service
-    name: vaultwarden
-    network:
-      ip: 192.168.0.30
-      port: 8081
-      protocol: TCP
-      url: http://vault.lan:8081
-    runsOn: docker-host
+      url: http://minio.lan:9000
+    runsOn: vm-media-server
 
+  # --------------------------------------------------
+  # Monitoring & Ops
+  # --------------------------------------------------
   - kind: Service
-    name: traefik
-    network:
-      ip: 192.168.0.2
-      port: 80
-      protocol: TCP
-      url: http://traefik.lan
-    runsOn: k8s-node-1
-
-  - kind: Service
-    name: nginx-reverse-proxy
-    network:
-      ip: 192.168.0.3
-      port: 443
-      protocol: TCP
-      url: https://proxy.lan
-    runsOn: docker-host
-
-  - kind: Service
-    name: qbittorrent
+    name: prometheus
     network:
       ip: 192.168.0.40
-      port: 8080
+      port: 9090
       protocol: TCP
-      url: http://torrent.lan:8080
-    runsOn: proxmox-host
+      url: http://prometheus.lan:9090
+    runsOn: vm-monitoring
 
   - kind: Service
-    name: radarr
+    name: grafana
     network:
       ip: 192.168.0.41
-      port: 7878
+      port: 3000
       protocol: TCP
-      url: http://radarr.lan:7878
-    runsOn: docker-host
+      url: http://grafana.lan:3000
+    runsOn: vm-monitoring
 
   - kind: Service
-    name: sonarr
+    name: alertmanager
     network:
       ip: 192.168.0.42
-      port: 8989
-      protocol: TCP
-      url: http://sonarr.lan:8989
-    runsOn: docker-host
-
-  - kind: Service
-    name: prowlarr
-    network:
-      ip: 192.168.0.43
-      port: 9696
-      protocol: TCP
-      url: http://prowlarr.lan:9696
-    runsOn: docker-host
-
-  - kind: Service
-    name: sabnzbd
-    network:
-      ip: 192.168.0.44
-      port: 8085
-      protocol: TCP
-      url: http://sabnzbd.lan:8085
-    runsOn: docker-host
-
-  - kind: Service
-    name: frigate
-    network:
-      ip: 192.168.1.30
-      port: 5000
-      protocol: TCP
-      url: http://frigate.lan:5000
-    runsOn: k8s-node-2
-
-  - kind: Service
-    name: mosquitto-mqtt
-    network:
-      ip: 192.168.1.31
-      port: 1883
-      protocol: TCP
-      url: mqtt://mqtt.lan:1883
-    runsOn: docker-host
-
-  - kind: Service
-    name: zigbee2mqtt
-    network:
-      ip: 192.168.1.32
-      port: 8080
-      protocol: TCP
-      url: http://z2m.lan:8080
-    runsOn: docker-host
-
-  - kind: Service
-    name: postgres-main
-    network:
-      ip: 10.0.1.10
-      port: 5432
-      protocol: TCP
-      url: postgres://db.internal:5432
-    runsOn: db-node-1
-
-  - kind: Service
-    name: mariadb
-    network:
-      ip: 10.0.1.11
-      port: 3306
-      protocol: TCP
-      url: mysql://mariadb.internal:3306
-    runsOn: db-node-2
-
-  - kind: Service
-    name: redis-cache
-    network:
-      ip: 10.0.1.12
-      port: 6379
-      protocol: TCP
-      url: redis://redis.internal:6379
-    runsOn: cache-node
-
-  - kind: Service
-    name: elasticsearch
-    network:
-      ip: 10.0.2.10
-      port: 9200
-      protocol: TCP
-      url: http://es.internal:9200
-    runsOn: search-node
-
-  - kind: Service
-    name: kibana
-    network:
-      ip: 10.0.2.11
-      port: 5601
+      port: 9093
       protocol: TCP
-      url: http://kibana.internal:5601
-    runsOn: search-node
+      url: http://alertmanager.lan:9093
+    runsOn: vm-monitoring
 
+  # --------------------------------------------------
+  # Dev & Internal Tools
+  # --------------------------------------------------
   - kind: Service
-    name: uptime-kuma
+    name: gitea
     network:
       ip: 192.168.0.50
       port: 3001
       protocol: TCP
-      url: http://uptime.lan:3001
-    runsOn: docker-host
-
-  - kind: Service
-    name: wireguard-vpn
-    network:
-      ip: 192.168.1.100
-      port: 51820
-      protocol: UDP
-      url: wg://vpn.lan
-    runsOn: baremetal-rpi4
-
-  - kind: Service
-    name: openvpn
-    network:
-      ip: 192.168.1.101
-      port: 1194
-      protocol: UDP
-      url: ovpn://openvpn.lan
-    runsOn: vm-cluster-2
-
-  - kind: Service
-    name: adguard-home
-    network:
-      ip: 192.168.1.3
-      port: 3000
-      protocol: TCP
-      url: http://adguard.lan:3000
-    runsOn: docker-host
+      url: http://git.lan:3001
+    runsOn: vm-monitoring
 
   - kind: Service
-    name: gitlab
+    name: docker-registry
     network:
-      ip: 10.0.3.10
-      port: 443
-      protocol: TCP
-      url: https://gitlab.internal
-    runsOn: dev-node-1
-
-  - kind: Service
-    name: gitea
-    network:
-      ip: 10.0.3.11
-      port: 3000
-      protocol: TCP
-      url: http://gitea.internal:3000
-    runsOn: dev-node-2
-
-  - kind: Service
-    name: drone-ci
-    network:
-      ip: 10.0.3.12
-      port: 8080
-      protocol: TCP
-      url: http://drone.internal:8080
-    runsOn: dev-node-2
-
-  - kind: Service
-    name: harbor-registry
-    network:
-      ip: 10.0.3.13
+      ip: 192.168.0.51
       port: 5000
       protocol: TCP
-      url: http://harbor.internal:5000
-    runsOn: dev-node-3
-
-  - kind: Service
-    name: kubernetes-api
-    network:
-      ip: 10.0.4.1
-      port: 6443
-      protocol: TCP
-      url: https://k8s-api.internal:6443
-    runsOn: k8s-control-plane
-
-  - kind: Service
-    name: longhorn-ui
-    network:
-      ip: 10.0.4.20
-      port: 9500
-      protocol: TCP
-      url: http://longhorn.internal:9500
-    runsOn: k8s-node-3
-
-  - kind: Service
-    name: rook-ceph-dashboard
-    network:
-      ip: 10.0.4.21
-      port: 8443
-      protocol: TCP
-      url: https://ceph.internal:8443
-    runsOn: k8s-node-3
-
-  - kind: Service
-    name: samba-fileserver
-    network:
-      ip: 192.168.0.60
-      port: 445
-      protocol: TCP
-      url: smb://fileserver.lan
-    runsOn: storage-node-1
-
-  - kind: Service
-    name: nfs-server
-    network:
-      ip: 192.168.0.61
-      port: 2049
-      protocol: TCP
-      url: nfs://nfs.lan
-    runsOn: dell-c6400-node01
-
-  - kind: Service
-    name: iscsi-target
-    network:
-      ip: 172.16.1.10
-      port: 3260
-      protocol: TCP
-      url: iscsi://iscsi.storage
-    runsOn: storage-node-3
-
-  - kind: Service
-    name: calibre-web
-    network:
-      ip: 192.168.0.70
-      port: 8083
-      protocol: TCP
-      url: http://books.lan:8083
-    runsOn: docker-host
-
-  - kind: Service
-    name: paperless-ngx
-    network:
-      ip: 192.168.0.71
-      port: 8000
-      protocol: TCP
-      url: http://docs.lan:8000
-    runsOn: dell-c6400-node01
-
-  - kind: Service
-    name: openldap
-    network:
-      ip: 10.0.5.10
-      port: 389
-      protocol: TCP
-      url: ldap://ldap.internal:389
-    runsOn: dell-c6400-node01
-
-  - kind: Service
-    name: keycloak
-    network:
-      ip: 10.0.5.11
-      port: 8080
-      protocol: TCP
-      url: http://keycloak.internal:8080
-    runsOn: dell-c6400-node01
-
-  - kind: Service
-    name: ntp-server
-    network:
-      ip: 192.168.1.50
-      port: 123
-      protocol: UDP
-      url: ntp://ntp.lan
-    runsOn: baremetal-rpi3
-
-  - kind: Service
-    name: syslog-server
-    network:
-      ip: 10.0.6.10
-      port: 514
-      protocol: UDP
-      url: syslog://syslog.internal
-    runsOn: monitoring-node
-
-  - kind: Service
-    name: dhcp-server
-    network:
-      ip: 192.168.1.1
-      port: 67
-      protocol: UDP
-      url: dhcp://dhcp.lan
-    runsOn: router-appliance
-
-  - kind: Service
-    name: bind-dns
-    network:
-      ip: 10.0.7.10
-      port: 53
-      protocol: UDP
-      url: dns://dns.internal
-    runsOn: infra-node
-
-  - kind: Service
-    name: vault
-    network:
-      ip: 10.0.7.11
-      port: 8200
-      protocol: TCP
-      url: http://vault.internal:8200
-    runsOn: infra-node
-
-  - kind: Service
-    name: consul
-    network:
-      ip: 10.0.7.12
-      port: 8500
-      protocol: TCP
-      url: http://consul.internal:8500
-    runsOn: infra-node
-
-  - kind: Service
-    name: nomad
-    network:
-      ip: 10.0.7.13
-      port: 4646
-      protocol: TCP
-      url: http://nomad.internal:4646
-    runsOn: infra-node
-
-  - kind: Service
-    name: openhab
-    network:
-      ip: 192.168.1.40
-      port: 8080
-      protocol: TCP
-      url: http://openhab.lan:8080
-    runsOn: k8s-node-2
-
-  - kind: Service
-    name: mqtt-explorer
-    network:
-      ip: 192.168.1.41
-      port: 4000
-      protocol: TCP
-      url: http://mqtt-explorer.lan:4000
-    runsOn: docker-host
+      url: http://registry.lan:5000
+    runsOn: vm-monitoring
 
   - kind: Service
-    name: influxdb
+    name: portainer
     network:
-      ip: 10.0.8.10
-      port: 8086
-      protocol: TCP
-      url: http://influx.internal:8086
-    runsOn: monitoring-node
-
-  - kind: Service
-    name: telegraf
-    network:
-      ip: 10.0.8.11
-      port: 8125
-      protocol: UDP
-      url: statsd://telegraf.internal
-    runsOn: monitoring-node
-
-  - kind: Service
-    name: speedtest-tracker
-    network:
-      ip: 192.168.0.80
-      port: 8080
-      protocol: TCP
-      url: http://speedtest.lan:8080
-    runsOn: docker-host
-
-  - kind: Service
-    name: navidrome
-    network:
-      ip: 192.168.0.81
-      port: 4533
-      protocol: TCP
-      url: http://music.lan:4533
-    runsOn: docker-host
-
-  - kind: Service
-    name: photoprism
-    network:
-      ip: 192.168.0.82
-      port: 2342
-      protocol: TCP
-      url: http://photos.lan:2342
-    runsOn: docker-host
-
-  - kind: Service
-    name: dnsdist
-    network:
-      ip: 10.0.9.10
-      port: 53
-      protocol: UDP
-      url: dns://dnsdist.internal
-    runsOn: infra-node
-
-  - kind: Service
-    name: powerdns
-    network:
-      ip: 10.0.9.11
-      port: 8081
+      ip: 192.168.0.52
+      port: 9000
       protocol: TCP
-      url: http://pdns.internal:8081
-    runsOn: infra-node
+      url: http://portainer.lan:9000
+    runsOn: vm-monitoring
 
+  # --------------------------------------------------
+  # Network Services
+  # --------------------------------------------------
   - kind: Service
-    name: openproject
+    name: pihole
     network:
-      ip: 10.0.10.10
-      port: 8080
+      ip: 192.168.0.53
+      port: 80
       protocol: TCP
-      url: http://openproject.internal:8080
-    runsOn: dev-node-3
+      url: http://pihole.lan
+    runsOn: vm-monitoring
 
   - kind: Service
-    name: mattermost
+    name: firewall-webui
     network:
-      ip: 10.0.10.11
-      port: 8065
+      ip: 192.168.0.1
+      port: 443
       protocol: TCP
-      url: http://chat.internal:8065
-    runsOn: dev-node-3
+      url: https://firewall.lan
+    runsOn: firewall-os
 
   - kind: Service
-    name: rocket-chat
+    name: router-webui
     network:
-      ip: 10.0.10.12
-      port: 3000
+      ip: 192.168.0.254
+      port: 443
       protocol: TCP
-      url: http://rocket.internal:3000
-    runsOn: dev-node-3
+      url: https://router.lan
+    runsOn: router-os

+ 128 - 158
vhs/config/Systems.yaml

@@ -1,184 +1,154 @@
 resources:
+  # --------------------------------------------------
+  # Hypervisors (Bare Metal)
+  # --------------------------------------------------
   - kind: System
     type: Hypervisor
-    name: proxmox-host
+    name: proxmox-cluster-node01
     os: proxmox
     cores: 16
-    ram: 64gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: ContainerHost
-    name: docker-host
-    os: ubuntu
-    cores: 12
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: KubernetesNode
-    name: k8s-node-1
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: KubernetesNode
-    name: k8s-node-2
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
+    ram: 128gb
+    drives:
+      - size: 1tb
+      - size: 1tb
+    runsOn: proxmox-node01
 
   - kind: System
-    type: KubernetesNode
-    name: k8s-node-3
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: KubernetesControlPlane
-    name: k8s-control-plane
-    os: ubuntu
-    cores: 4
-    ram: 16gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Monitoring
-    name: monitoring-node
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Storage
-    name: storage-node-1
-    os: truenas
-    cores: 8
-    ram: 64gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Storage
-    name: storage-node-2
-    os: truenas
-    cores: 8
-    ram: 64gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Storage
-    name: storage-node-3
+    type: Hypervisor
+    name: proxmox-cluster-node02
+    os: proxmox
+    cores: 10
+    ram: 96gb
+    drives:
+      - size: 1tb
+      - size: 4tb
+    runsOn: proxmox-node02
+
+  # --------------------------------------------------
+  # Storage OS (Bare Metal)
+  # --------------------------------------------------
+  - kind: System
+    type: Baremetal
+    name: truenas-core-os
     os: truenas
-    cores: 8
+    cores: 6
     ram: 64gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Database
-    name: db-node-1
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Database
-    name: db-node-2
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Cache
-    name: cache-node
-    os: ubuntu
-    cores: 4
-    ram: 16gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Search
-    name: search-node
-    os: ubuntu
-    cores: 8
-    ram: 32gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Development
-    name: dev-node-1
-    os: ubuntu
+    drives:
+      - size: 8tb
+      - size: 8tb
+      - size: 8tb
+      - size: 8tb
+    runsOn: truenas-storage
+
+  # --------------------------------------------------
+  # IPMI / BMC Management
+  # --------------------------------------------------
+  - kind: System
+    type: Baremetal
+    name: ipmi-proxmox-node01
+    os: idrac
+    cores: 1
+    ram: 1gb
+    runsOn: proxmox-node01
+
+  - kind: System
+    type: Baremetal
+    name: ipmi-proxmox-node02
+    os: ipmi
+    cores: 1
+    ram: 1gb
+    runsOn: proxmox-node02
+
+  - kind: System
+    type: Baremetal
+    name: ipmi-truenas-storage
+    os: ipmi
+    cores: 1
+    ram: 1gb
+    runsOn: truenas-storage
+
+  # --------------------------------------------------
+  # Core Network Systems
+  # --------------------------------------------------
+  - kind: System
+    type: Baremetal
+    name: firewall-os
+    os: pfsense
     cores: 4
-    ram: 16gb
-    runsOn: dell-c6400-node01
+    ram: 8gb
+    drives:
+      - size: 32gb
+    runsOn: pfsense-fw
 
   - kind: System
-    type: Development
-    name: dev-node-2
-    os: ubuntu
+    type: Baremetal
+    name: router-os
+    os: edgeos
     cores: 4
-    ram: 16gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: Development
-    name: dev-node-3
-    os: ubuntu
-    cores: 6
-    ram: 24gb
-    runsOn: dell-c6400-node01
-
-  - kind: System
-    type: VirtualMachineCluster
-    name: vm-cluster-1
-    os: proxmox
-    cores: 12
-    ram: 48gb
-    runsOn: dell-c6400-node01
+    ram: 4gb
+    drives:
+      - size: 4gb
+    runsOn: core-router
 
   - kind: System
-    type: VirtualMachineCluster
-    name: vm-cluster-2
-    os: proxmox
-    cores: 12
-    ram: 48gb
-    runsOn: dell-c6400-node01
+    type: Baremetal
+    name: unifi-core-switch-os
+    os: unifi-os
+    cores: 2
+    ram: 2gb
+    drives:
+      - size: 8gb
+    runsOn: core-switch
 
   - kind: System
-    type: BareMetal
-    name: baremetal-rpi4
-    os: raspbian
-    cores: 4
-    ram: 8gb
-    runsOn: rack-edge
+    type: Baremetal
+    name: unifi-access-switch-os
+    os: unifi-os
+    cores: 2
+    ram: 2gb
+    drives:
+      - size: 8gb
+    runsOn: access-switch
 
   - kind: System
-    type: BareMetal
-    name: baremetal-rpi3
-    os: raspbian
-    cores: 4
+    type: Baremetal
+    name: unifi-lounge-ap-os
+    os: unifi-firmware
+    cores: 2
+    ram: 1gb
+    drives:
+      - size: 4gb
+    runsOn: lounge-ap
+
+  # --------------------------------------------------
+  # Virtual Machines
+  # --------------------------------------------------
+  - kind: System
+    type: VM
+    name: vm-home-assistant
+    os: hassos
+    cores: 2
     ram: 4gb
-    runsOn: rack-edge
+    drives:
+      - size: 64gb
+    runsOn: proxmox-node01
 
   - kind: System
-    type: Infrastructure
-    name: infra-node
-    os: ubuntu
+    type: VM
+    name: vm-media-server
+    os: ubuntu-22.04
     cores: 4
-    ram: 16gb
-    runsOn: dell-c6400-node01
+    ram: 8gb
+    drives:
+      - size: 500gb
+    runsOn: proxmox-node02
 
   - kind: System
-    type: NetworkAppliance
-    name: router-appliance
-    os: openwrt
+    type: VM
+    name: vm-monitoring
+    os: debian-12
     cores: 2
-    ram: 2gb
-    runsOn: network-rack
+    ram: 4gb
+    drives:
+      - size: 64gb
+    runsOn: proxmox-node01

+ 0 - 31
vhs/config/accesspoints.yaml

@@ -1,31 +0,0 @@
-resources:
-  - kind: AccessPoint
-    model: Unifi-Ap-Pro
-    speed: 1
-    name: lounge-ap
-    tags:
-  - kind: AccessPoint
-    model: Unifi-U6-Lite
-    speed: 1
-    name: office-ap
-    tags:
-  - kind: AccessPoint
-    model: TP-Link-EAP245
-    speed: 1
-    name: garage-ap
-    tags:
-  - kind: AccessPoint
-    model: Aruba-AP-515
-    speed: 2.5
-    name: upstairs-ap
-    tags:
-  - kind: AccessPoint
-    model: Unifi-U6-Mesh
-    speed: 1
-    name: guest-ap
-    tags:
-  - kind: AccessPoint
-    model: Cisco-Aironet-1832i
-    speed: 1
-    name: warehouse-ap
-    tags: 

+ 0 - 21
vhs/config/desktops.yaml

@@ -1,21 +0,0 @@
-resources:
-  - kind: Desktop
-    cpus:
-      - model: Intel(R) Core(TM) i5-9500
-        cores: 6
-        threads: 6
-    ram:
-      size: 16
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 512
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 1
-    gpus:
-      - model: RTX 3080
-        vram: 12
-    name: dell-optiplex
-    tags: 

+ 0 - 14
vhs/config/firewalls.yaml

@@ -1,14 +0,0 @@
-resources:
-  - kind: Firewall
-    model: pfSense-1100
-    managed: true
-    poe: true
-    ports:
-      - type: rj45
-        speed: 1
-        count: 8
-      - type: sfp
-        speed: 10
-        count: 2
-    name: pfsense
-    tags: 

+ 208 - 0
vhs/config/hardware.yaml

@@ -0,0 +1,208 @@
+resources:
+  # ------------------------
+  # Servers
+  # ------------------------
+  - kind: Server
+    name: proxmox-node01
+    cpus:
+      - model: AMD EPYC 7302P
+        cores: 16
+        threads: 32
+    ram:
+      size: 128gb
+      mts: 3200
+    drives:
+      - type: ssd
+        size: 1tb
+      - type: ssd
+        size: 1tb
+    nics:
+      - type: rj45
+        speed: 1gb
+        ports: 2
+      - type: sfp+
+        speed: 10gb
+        ports: 2
+    ipmi: true
+
+  - kind: Server
+    name: proxmox-node02
+    cpus:
+      - model: Intel Xeon Silver 4210
+        cores: 10
+        threads: 20
+    ram:
+      size: 96gb
+      mts: 2666
+    drives:
+      - type: ssd
+        size: 1tb
+      - type: hdd
+        size: 4tb
+    nics:
+      - type: rj45
+        speed: 1gb
+        ports: 2
+      - type: sfp+
+        speed: 10gb
+        ports: 1
+    ipmi: true
+
+  - kind: Server
+    name: truenas-storage
+    cpus:
+      - model: Intel Xeon E-2236
+        cores: 6
+        threads: 12
+    ram:
+      size: 64gb
+      mts: 2666
+    drives:
+      - type: hdd
+        size: 8tb
+      - type: hdd
+        size: 8tb
+      - type: hdd
+        size: 8tb
+      - type: hdd
+        size: 8tb
+    nics:
+      - type: rj45
+        speed: 1gb
+        ports: 1
+      - type: sfp+
+        speed: 10gb
+        ports: 1
+    ipmi: true
+
+  # ------------------------
+  # Network
+  # ------------------------
+  - kind: Firewall
+    name: pfsense-fw
+    model: Netgate-6100
+    ports:
+      - type: rj45
+        speed: 1gb
+        count: 4
+      - type: sfp+
+        speed: 10gb
+        count: 2
+    managed: true
+    poe: false
+
+  - kind: Router
+    name: core-router
+    model: Ubiquiti-ER-4
+    ports:
+      - type: rj45
+        speed: 1gb
+        count: 4
+      - type: sfp
+        speed: 10gb
+        count: 1
+    managed: true
+    poe: false
+
+  - kind: Switch
+    name: core-switch
+    model: UniFi-USW-Enterprise-24
+    ports:
+      - type: rj45
+        speed: 1gb
+        count: 12
+      - type: rj45
+        speed: 2.5gb
+        count: 8
+      - type: sfp+
+        speed: 10gb
+        count: 4
+    managed: true
+    poe: true
+
+  - kind: Switch
+    name: access-switch
+    model: UniFi-USW-16-PoE
+    ports:
+      - type: rj45
+        speed: 1gb
+        count: 16
+      - type: sfp
+        speed: 1gb
+        count: 2
+    managed: true
+    poe: true
+
+  - kind: AccessPoint
+    name: lounge-ap
+    model: UniFi-U6-Pro
+    speed: 2.5gb
+
+  # ------------------------
+  # Power
+  # ------------------------
+  - kind: Ups
+    name: rack-ups
+    model: APC-SmartUPS-2200
+    va: 2200
+
+  # ------------------------
+  # Desktops
+  # ------------------------
+  - kind: Desktop
+    name: workstation-linux
+    cpus:
+      - model: AMD Ryzen 9 5900X
+        cores: 12
+        threads: 24
+    ram:
+      size: 64gb
+      mts: 3600
+    drives:
+      - type: ssd
+        size: 1tb
+      - type: ssd
+        size: 2tb
+    nics:
+      - type: rj45
+        speed: 1gb
+        ports: 1
+    gpus:
+      - model: NVIDIA RTX 3080
+        vram: 10gb
+
+  - kind: Desktop
+    name: gaming-pc
+    cpus:
+      - model: Intel Core i7-12700K
+        cores: 12
+        threads: 20
+    ram:
+      size: 32gb
+      mts: 3200
+    drives:
+      - type: ssd
+        size: 1tb
+    nics:
+      - type: rj45
+        speed: 1gb
+        ports: 1
+    gpus:
+      - model: NVIDIA RTX 3070
+        vram: 8gb
+
+  # ------------------------
+  # Laptop
+  # ------------------------
+  - kind: Laptop
+    name: dev-laptop
+    cpus:
+      - model: Intel Core i7-1260P
+        cores: 12
+        threads: 16
+    ram:
+      size: 32gb
+      mts: 5200
+    drives:
+      - type: ssd
+        size: 1tb

+ 0 - 17
vhs/config/laptops.yaml

@@ -1,17 +0,0 @@
-resources:
-  - kind: Laptop
-    cpus:
-      - model: Intel(R) Core(TM) i7-10510U
-        cores: 4
-        threads: 8
-    ram:
-      size: 16
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 1024
-    gpus:
-      - model: RTX 3080
-        vram: 12
-    name: thinkpad-x1
-    tags: 

+ 0 - 14
vhs/config/routers.yaml

@@ -1,14 +0,0 @@
-resources:
-  - kind: Router
-    model: ER-4
-    managed: true
-    poe: true
-    ports:
-      - type: rj45
-        speed: 1
-        count: 8
-      - type: sfp
-        speed: 10
-        count: 2
-    name: ubiquiti-edge-router
-    tags: 

+ 0 - 397
vhs/config/servers.yaml

@@ -1,397 +0,0 @@
-resources:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4110
-        cores: 8
-        threads: 16
-    ram:
-      size: 64
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 480
-      - type: ssd
-        size: 480
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-    ipmi: true
-    name: dell-c6400-node01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4110
-        cores: 8
-        threads: 16
-    ram:
-      size: 128
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 960
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-    ipmi: true
-    name: dell-c6400-node02
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4110
-        cores: 8
-        threads: 16
-    ram:
-      size: 64
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 480
-      - type: ssd
-        size: 480
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-    ipmi: true
-    name: dell-c6400-node03
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4110
-        cores: 8
-        threads: 16
-    ram:
-      size: 128
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 960
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-    ipmi: true
-    name: dell-c6400-node04
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E5-2620 v4
-        cores: 8
-        threads: 16
-    ram:
-      size: 64
-      mts: 2133
-    drives:
-      - type: hdd
-        size: 8192
-      - type: hdd
-        size: 8192
-      - type: hdd
-        size: 8192
-      - type: hdd
-        size: 8192
-      - type: ssd
-        size: 120
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 1
-      - type: sfp+
-        speed: 10
-        ports: 1
-    gpus:
-    ipmi: true
-    name: truenas-storage01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Core(TM) i5-8500
-        cores: 6
-        threads: 6
-    ram:
-      size: 32
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 512
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 4
-    gpus:
-    ipmi: false
-    name: proxmox-edge01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Celeron(R) J4125
-        cores: 4
-        threads: 4
-    ram:
-      size: 8
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 64
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 4
-    gpus:
-    ipmi: false
-    name: opnsense-fw01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E3-1270 v6
-        cores: 4
-        threads: 8
-    ram:
-      size: 16
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 256
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 1
-    gpus:
-    ipmi: true
-    name: mgmt-bastion01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E5-2630 v4
-        cores: 10
-        threads: 20
-    ram:
-      size: 64
-      mts: 2133
-    drives:
-      - type: hdd
-        size: 6144
-      - type: hdd
-        size: 6144
-      - type: hdd
-        size: 6144
-      - type: hdd
-        size: 6144
-      - type: ssd
-        size: 240
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-      - type: sfp+
-        speed: 10
-        ports: 1
-    gpus:
-    ipmi: true
-    name: truenas-backup01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4214
-        cores: 12
-        threads: 24
-    ram:
-      size: 128
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 1024
-    nics:
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-      - model: NVIDIA Tesla P40
-        vram: 24
-      - model: NVIDIA Tesla P40
-        vram: 24
-      - model: NVIDIA Tesla P4
-        vram: 8
-    ipmi: true
-    name: compute-gpu01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E3-1240 v5
-        cores: 4
-        threads: 8
-    ram:
-      size: 32
-      mts: 2133
-    drives:
-      - type: ssd
-        size: 512
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-    gpus:
-    ipmi: true
-    name: proxmox-lab01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E-2224
-        cores: 4
-        threads: 4
-    ram:
-      size: 16
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 256
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-    gpus:
-    ipmi: true
-    name: k8s-control01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E-2224
-        cores: 4
-        threads: 4
-    ram:
-      size: 16
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 256
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-    gpus:
-    ipmi: true
-    name: k8s-control02
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) Silver 4108
-        cores: 8
-        threads: 16
-    ram:
-      size: 64
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 1024
-      - type: ssd
-        size: 1024
-    nics:
-      - type: sfp+
-        speed: 10
-        ports: 1
-    gpus:
-    ipmi: true
-    name: elk-logging01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Core(TM) i3-8100
-        cores: 4
-        threads: 4
-    ram:
-      size: 16
-      mts: 2400
-    drives:
-      - type: ssd
-        size: 256
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 2
-    gpus:
-    ipmi: false
-    name: edge-node01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E5-1650 v3
-        cores: 6
-        threads: 12
-    ram:
-      size: 64
-      mts: 2133
-    drives:
-      - type: ssd
-        size: 480
-      - type: hdd
-        size: 4096
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 4
-    gpus:
-    ipmi: true
-    name: backup-proxmox01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Core(TM) i7-8700
-        cores: 6
-        threads: 12
-    ram:
-      size: 32
-      mts: 2666
-    drives:
-      - type: ssd
-        size: 512
-    nics:
-      - type: rj45
-        speed: 1
-        ports: 1
-    gpus:
-    ipmi: false
-    name: lab-general01
-    tags:
-  - kind: Server
-    cpus:
-      - model: Intel(R) Xeon(R) E5-2650 v3
-        cores: 10
-        threads: 20
-    ram:
-      size: 128
-      mts: 2133
-    drives:
-      - type: hdd
-        size: 4096
-      - type: hdd
-        size: 4096
-      - type: hdd
-        size: 4096
-      - type: hdd
-        size: 4096
-    nics:
-      - type: sfp+
-        speed: 10
-        ports: 2
-    gpus:
-    ipmi: true
-    name: dell-r730-archive01
-    tags: 

+ 0 - 14
vhs/config/switches.yaml

@@ -1,14 +0,0 @@
-resources:
-  - kind: Switch
-    model: GS324
-    managed: true
-    poe: true
-    ports:
-      - type: rj45
-        speed: 1
-        count: 8
-      - type: sfp
-        speed: 10
-        count: 2
-    name: netgear-s24
-    tags: 

+ 0 - 6
vhs/config/ups.yaml

@@ -1,6 +0,0 @@
-resources:
-  - kind: Ups
-    model: Volta
-    va: 2200
-    name: rack-ups
-    tags: 

BIN
vhs/rpk-demo.gif


+ 25 - 3
vhs/rpk.tape

@@ -2,19 +2,33 @@
 
 Output ./rpk-demo.gif
 Set Theme "Catppuccin Mocha"
-Set FontSize 22
+Set FontSize 20
 Set TypingSpeed 60ms
 Set Padding 20
+Set Width 1400
+Set Height 1200
 
 # Intro
 Type "rpk --help"
 Enter
 Sleep 1.5
+Type "clear"
+Enter
+Sleep 0.5
 
 # High-level overview
+
+Type "rpk summary"
+Enter
+Sleep 3
+
+Type "clear"
+Enter
+Sleep 0.5
+
 Type "rpk servers summary"
 Enter
-Sleep 2
+Sleep 3
 
 Type "clear"
 Enter
@@ -22,7 +36,15 @@ Sleep 0.5
 
 Type "rpk systems summary"
 Enter
-Sleep 2
+Sleep 3
+
+Type "clear"
+Enter
+Sleep 0.5
+
+Type "rpk services summary"
+Enter
+Sleep 3
 
 Type "clear"
 Enter