Compare commits

..

4 Commits

24 changed files with 313 additions and 126 deletions
+2
View File
@@ -4,3 +4,5 @@
*/3 * * * * /usr/local/bin/jarvis-netscan.sh >>/var/log/jarvis-netscan.log 2>&1
* * * * * /usr/local/bin/jarvis-phone-probe.sh >/dev/null 2>&1
0 3 * * 0 /usr/local/bin/proxmox-backup >> /var/log/proxmox-backup.log 2>&1
*/15 * * * * /usr/local/bin/msp360-mount-ensure.sh
0 6 * * * /usr/local/bin/backup-status-collect.sh >> /var/log/backup-status-collect.log 2>&1
+126
View File
@@ -0,0 +1,126 @@
#!/bin/bash
# Collects MSP360 backup plan status from all known hosts and writes a JSON
# status file, then pushes it to web.orbishosting.com (VM110).
set -u
CBB="/opt/local/MSP360 Backup/bin/cbb"
CBBV2="/opt/local/MSP360 Backup/bin/cbbV2"
SSHPW="Joker1974!!!"
OUT=/tmp/backup-status.json
NOW="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
get_plan_status() {
# $1=host $2=user $3=planname $4=mode(local|hop)
local host="$1" user="$2" plan="$3" mode="$4" out
if [ "$mode" = "local" ]; then
out="$("$CBB" plan -l 2>&1)"
elif [ "$mode" = "hop" ]; then
out="$(sshpass -p "$SSHPW" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=8 "$user@$host" "'$CBB' plan -l 2>&1")"
fi
local state result id
state=$(echo "$out" | grep 'State:' | head -1 | sed 's/.*State: *//')
result=$(echo "$out" | grep 'Last result:' | head -1 | sed 's/.*Last result: *//')
id=$(echo "$out" | grep 'Id:' | head -1 | sed 's/.*Id: *//')
echo "${state:-unreachable}|${result:-unreachable}|${id:-}"
}
# Fixed 2026-07-20: previously read CBB_Configuration/<planId>.cbb$/ generation
# folders on the NAS, assuming that was "more trustworthy" than the plan's own
# self-reported status. That folder turned out to only get written once, at
# initial plan setup/first test run, and never again on subsequent scheduled
# runs (even though those runs were genuinely succeeding daily and writing
# real file data elsewhere in the destination tree) - so every host showed a
# stale last_success frozen at its original setup date, making working daily
# backups look dead for weeks. The plan's own "Last run time" (from cbbV2
# plan details) reflects the actual most recent run and is accurate.
get_last_run_time() {
# $1=host $2=user $3=mode $4=plan_id
local host="$1" user="$2" mode="$3" plan_id="$4" out line
[ -z "$plan_id" ] && { echo "null"; return; }
if [ "$mode" = "local" ]; then
out="$("$CBBV2" plan details -i "$plan_id" --progress 2>&1)"
else
out="$(sshpass -p "$SSHPW" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=8 "$user@$host" "'$CBBV2' plan details -i $plan_id --progress 2>&1")"
fi
line=$(echo "$out" | grep '^Last run time:' | head -1 | sed 's/^Last run time: *//')
[ -z "$line" ] && { echo "null"; return; }
date -u -d "$line" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo "null"
}
echo "[" > "$OUT"
first=1
emit() {
local name="$1" ip="$2" state="$3" result="$4" last_success="$5"
[ "$first" -eq 1 ] && first=0 || echo "," >> "$OUT"
if [ "$last_success" = "null" ]; then
cat >> "$OUT" <<EOF
{"name": "$name", "ip": "$ip", "state": "$state", "result": "$result", "last_success": null}
EOF
else
cat >> "$OUT" <<EOF
{"name": "$name", "ip": "$ip", "state": "$state", "result": "$result", "last_success": "$last_success"}
EOF
fi
}
collect() {
local name="$1" ip="$2" user="$3" mode="$4"
local r state result id last_success
r=$(get_plan_status "$ip" "$user" "" "$mode")
state="${r%%|*}"
rest="${r#*|}"
result="${rest%%|*}"
id="${rest#*|}"
last_success=$(get_last_run_time "$ip" "$user" "$mode" "$id")
emit "$name" "$ip" "$state" "$result" "$last_success"
}
# Homebridge dropped its in-guest MSP360 agent (repeated, unresolved storage
# errors) in favor of the cluster-wide Proxmox vzdump job, which snapshots
# the whole VM disk nightly at 21:00 to the same NAS. Reads the dump
# directory directly instead of querying an in-guest agent.
collect_proxmox_vm() {
local name="$1" ip="$2" vmid="$3" dump_dir="/mnt/pve/SynologyProx/dump"
local latest_dump latest_log ts iso result state
latest_dump=$(ls "$dump_dir"/vzdump-qemu-"$vmid"-*.vma.zst 2>/dev/null | sort | tail -1)
if [ -z "$latest_dump" ]; then
emit "$name" "$ip" "Unknown" "unreachable" "null"
return
fi
ts=$(basename "$latest_dump" | sed -E 's/vzdump-qemu-[0-9]+-([0-9_]+-[0-9_]+)\.vma\.zst/\1/')
iso=$(date -u -d "$(echo "$ts" | sed -E 's/(....)_(..)_(..)-(..)_(..)_(..)/\1-\2-\3 \4:\5:\6/')" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo "")
latest_log="$dump_dir/vzdump-qemu-$vmid-$ts.log"
if [ -f "$latest_log" ] && grep -q "Finished Backup" "$latest_log"; then
result="Success"
else
result="Warning"
fi
state="Proxmox nightly"
if [ -n "$iso" ]; then
emit "$name" "$ip" "$state" "$result" "$iso"
else
emit "$name" "$ip" "$state" "$result" "null"
fi
}
collect "PVE1" "10.48.200.90" "" "local"
collect "JARVIS" "10.48.200.211" "root" "hop"
collect "NovaCPX" "10.48.200.110" "root" "hop"
collect "Jellyfin" "10.48.200.33" "root" "hop"
collect "MediaStack" "10.48.200.35" "root" "hop"
collect_proxmox_vm "Homebridge" "10.48.200.18" "118"
echo "]" >> "$OUT"
python3 -c "
import json
data = json.load(open('$OUT'))
data = {'updated': '$NOW', 'hosts': data}
json.dump(data, open('$OUT', 'w'), indent=2)
"
sshpass -p "$SSHPW" scp -o StrictHostKeyChecking=no "$OUT" root@10.48.200.110:/home/webacct/public_html/downloads/backup-status.json
+7 -3
View File
@@ -2,13 +2,17 @@
# JARVIS Network Scanner — runs on PVE1, pushes nmap results to JARVIS
# Cron: */3 * * * * /usr/local/bin/jarvis-netscan.sh >/dev/null 2>&1
JARVIS_URL="https://165.22.1.228"
JARVIS_URL="http://10.48.200.211"
JARVIS_HOST="jarvis.orbishosting.com"
REG_KEY="f846a9aaf7ce9a61742c63c87c4186052a71d2a580c65518"
REG_KEY=$(cat /etc/jarvis-agent/reg-key 2>/dev/null)
if [ -z "$REG_KEY" ]; then
echo "$(date): ERROR: /etc/jarvis-agent/reg-key not found" >&2
exit 1
fi
SUBNET="10.48.200.0/24"
TMPFILE=$(mktemp)
nmap -sn --send-ip "$SUBNET" 2>/dev/null > "$TMPFILE"
nmap -sn "$SUBNET" 2>/dev/null > "$TMPFILE"
if [ ! -s "$TMPFILE" ]; then
echo "$(date): nmap produced no output" >&2
+29 -11
View File
@@ -3,9 +3,13 @@
# Pings all Yealink phones + checks FusionPBX SIP registration (read-only)
# 200.3 is on an external FusionPBX — ping only, no SIP check
JARVIS_URL="https://165.22.1.228"
JARVIS_URL="http://10.48.200.211"
JARVIS_HOST="jarvis.orbishosting.com"
REG_KEY="f846a9aaf7ce9a61742c63c87c4186052a71d2a580c65518"
REG_KEY=$(cat /etc/jarvis-agent/reg-key 2>/dev/null)
if [ -z "$REG_KEY" ]; then
echo "$(date): ERROR: /etc/jarvis-agent/reg-key not found" >&2
exit 1
fi
FUSION_HOST="134.209.72.226"
# IP|alias|extension(none=skip SIP check)|mac
@@ -21,19 +25,17 @@ PHONES=(
REG_OUTPUT=$(ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -o BatchMode=yes \
root@$FUSION_HOST "fs_cli -x 'show registrations'" 2>/dev/null || echo "")
DEVICES="["
FIRST=1
# Collect results as TSV, delegate JSON building to python3 to avoid injection
RESULTS=""
for PHONE in "${PHONES[@]}"; do
IFS='|' read -r IP ALIAS EXT MAC <<< "$PHONE"
# Ping probe
if ping -c 1 -W 2 "$IP" > /dev/null 2>&1; then
STATUS="online"
else
STATUS="offline"
fi
# SIP check — skip for external phones (ext=none)
if [ "$EXT" = "none" ]; then
SIP="external"
elif [ -n "$REG_OUTPUT" ] && echo "$REG_OUTPUT" | grep -q "^${EXT},"; then
@@ -42,15 +44,31 @@ for PHONE in "${PHONES[@]}"; do
SIP="unregistered"
fi
[ $FIRST -eq 0 ] && DEVICES+=","
DEVICES+="{\"ip\":\"$IP\",\"alias\":\"$ALIAS\",\"mac\":\"$MAC\",\"vendor\":\"Yealink\",\"status\":\"$STATUS\",\"sip_status\":\"$SIP\",\"extension\":\"$EXT\"}"
FIRST=0
RESULTS="${RESULTS}${IP}\t${ALIAS}\t${MAC}\t${STATUS}\t${SIP}\t${EXT}\n"
done
DEVICES+="]"
JSON=$(printf "%b" "$RESULTS" | python3 -c "
import sys, json
devices = []
for line in sys.stdin:
line = line.rstrip('\n')
if not line:
continue
parts = line.split('\t')
if len(parts) < 6:
continue
ip, alias, mac, status, sip, ext = parts[:6]
devices.append({
'ip': ip, 'alias': alias, 'mac': mac,
'vendor': 'Yealink', 'status': status,
'sip_status': sip, 'extension': ext,
})
print(json.dumps({'devices': devices}))
")
curl -sk --max-time 10 \
-X POST "$JARVIS_URL/api/netscan" \
-H "Host: $JARVIS_HOST" \
-H "Content-Type: application/json" \
-H "X-Registration-Key: $REG_KEY" \
-d "{\"devices\":$DEVICES}" > /dev/null 2>&1
-d "$JSON" > /dev/null 2>&1
+2 -3
View File
@@ -11,7 +11,7 @@ import urllib.request
import urllib.error
import ssl
JARVIS_URL = "https://165.22.1.228"
JARVIS_URL = "http://10.48.200.211"
HOST_HEADER = "jarvis.orbishosting.com"
# Devices to probe: agent_id → api_key
@@ -93,8 +93,7 @@ def main():
status = "online" if alive else "offline"
print(f"{agent_id} ({ip}): {status}", flush=True)
heartbeat(agent_id, api_key, alive)
if alive:
update_status(agent_id, api_key, status)
update_status(agent_id, api_key, status)
if __name__ == "__main__":
main()
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
# Ensures the NAS CIFS mount and the MSP360 bind-mount are both live.
# MSP360's pre-flight check does `mountpoint <Path>` on the exact configured
# storage Path (/mnt/nas-backups/MSPBackups). Since that's a subdirectory of
# the real CIFS mount (/mnt/nas-backups), it never registers as a mountpoint
# on its own -- so we bind-mount it onto itself to make it one.
set -u
MOUNT=/mnt/nas-backups
SUBDIR="$MOUNT/MSPBackups"
LOG=/var/log/msp360-mount-ensure.log
log() { echo "$(date '+%F %T') $1" >> "$LOG"; }
if ! mountpoint -q "$MOUNT"; then
log "CIFS mount down, remounting $MOUNT..."
if mount "$MOUNT" 2>>"$LOG"; then
log "CIFS remount OK"
umount "$SUBDIR" 2>/dev/null || true
else
log "CIFS remount FAILED"
exit 1
fi
fi
if ! mountpoint -q "$SUBDIR"; then
log "Bind mount down, rebinding $SUBDIR..."
mkdir -p "$SUBDIR"
if mount --bind "$SUBDIR" "$SUBDIR" 2>>"$LOG"; then
log "Bind mount OK"
else
log "Bind mount FAILED"
exit 1
fi
fi
exit 0
+1
View File
@@ -7,6 +7,7 @@ vzdump: backup-aa6b1890-23c0
node pve
notes-template {{guestname}}
notification-mode notification-system
prune-backups keep-daily=5,keep-last=3,keep-monthly=1,keep-weekly=1,keep-yearly=1
schedule 21:00
storage SynologyProx
+17
View File
@@ -0,0 +1,17 @@
arch: amd64
cores: 8
dev0: /dev/net/tun
features: nesting=1,keyctl=1,mount=nfs;cifs
hostname: StreamHoard
memory: 12288
mp0: /mnt/nas-video,mp=/mnt/nas/video
mp1: /mnt/nas-backups,mp=/mnt/nas-backups
nameserver: 1.1.1.1
net0: name=eth0,bridge=vmbr0,gw=10.48.200.1,hwaddr=BC:24:11:47:D1:14,ip=10.48.200.104/24,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-104-disk-0,size=60G
searchdomain: orbishosting.com
startup: order=10,up=30
swap: 512
unprivileged: 1
-15
View File
@@ -1,15 +0,0 @@
arch: amd64
cores: 2
features: nesting=1,keyctl=1
hostname: WireGuard-19
memory: 1024
nameserver: 10.48.200.90
net0: name=eth0,bridge=vmbr0,gw=10.48.200.1,hwaddr=BC:24:11:46:1E:70,ip=10.48.200.67/24,type=veth
onboot: 1
ostype: alpine
rootfs: GoFlex:110/vm-110-disk-0.raw,size=8G
swap: 512
timezone: America/Chicago
unprivileged: 1
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
+2 -2
View File
@@ -3,12 +3,12 @@ audio0: device=AC97,driver=none
boot: order=ide0;ide2;net0
cores: 2
cpu: host
ide0: GoFlex:100/vm-100-disk-0.raw,cache=writeback,discard=on,size=100G
ide0: SynologyLVM:vm-100-disk-0,cache=writeback,discard=on,size=100G
ide2: none,media=cdrom
machine: pc-q35-10.1
memory: 8192
meta: creation-qemu=10.1.2,ctime=1771397582
name: SynchroNet-50
name: SynchroNet-112
net0: e1000=BC:24:11:78:E0:81,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
+18
View File
@@ -0,0 +1,18 @@
agent: 1
boot: order=scsi0;ide2;net0
cores: 1
cpu: host
ide2: SynologyProx:iso/ubuntu-26.04-live-server-amd64.iso,media=cdrom,size=2850194K
machine: q35
memory: 2048
meta: creation-qemu=11.0.2,ctime=1784216596
name: Shoutcast
net0: virtio=BC:24:11:B3:90:CE,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
scsi0: SynologyLVM:vm-101-disk-0,iothread=1,size=32G
scsihw: virtio-scsi-single
smbios1: uuid=04502349-ab0a-4f38-b3cc-61cd152c19b2
sockets: 1
vmgenid: ea8db439-0a82-439c-8bc3-18d900024d70
+18
View File
@@ -0,0 +1,18 @@
boot: order=ide0;ide2;net0
cores: 2
cpu: host
ide0: SynologyLVM:vm-102-disk-0,size=50G
ide1: SynologyLVM:vm-102-disk-1,size=1000G
ide2: SynologyProx:iso/WinServ2019.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_en-us.iso,media=cdrom,size=5519618K
machine: pc-q35-11.0+pve2
memory: 16384
meta: creation-qemu=11.0.2,ctime=1784244235
name: WinServer
net0: e1000=BC:24:11:16:F9:98,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: win10
scsihw: virtio-scsi-single
smbios1: uuid=dbb79eab-5102-4811-bb8c-4839f5d8f272
sockets: 2
vmgenid: 2c03e9dc-d438-47b0-bb46-7002710c67d1
-20
View File
@@ -1,20 +0,0 @@
agent: enabled=1
boot: order=scsi0
cipassword: $5$tLqUKTpU$CYpX9cKbAdJ8JwaimzUUrcrPqwLvkm69PERl8AtvQg8
ciuser: root
cores: 4
ipconfig0: ip=10.48.200.35/24,gw=10.48.200.1
lock: backup
machine: q35
memory: 4096
meta: creation-qemu=11.0.0,ctime=1780635620
name: MediaStack-35
nameserver: 10.48.200.90
net0: virtio=BC:24:11:84:40:0E,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: GoFlex:103/vm-103-disk-0.qcow2,discard=on,size=50G
scsihw: virtio-scsi-pci
smbios1: uuid=48b8e543-f0bb-49a3-857f-90603379193a
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
vmgenid: ebe24bf0-94b7-4ba5-a207-c709c360c2fa
+1 -1
View File
@@ -14,7 +14,7 @@ nameserver: 8.8.8.8 1.1.1.1
net0: virtio=BC:24:11:67:1D:47,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: GoFlex:105/vm-105-disk-0.raw,discard=on,size=20G,ssd=1
scsi0: SynologyLVM:vm-105-disk-0,discard=on,size=20G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=726b96f7-8643-4d68-a49a-fa971561d20d
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
+7 -5
View File
@@ -3,23 +3,25 @@ boot: order=scsi0
cicustom: vendor=local:snippets/jarvis-vendor.yml
cipassword: $5$3l1elEQR$uF3zLlu1mHjuEHrGG8oi8i7J.K/7zl4GL1p/R6bUEV/
ciuser: root
cores: 4
cores: 8
cpu: host
ide2: SynologyProx:106/vm-106-cloudinit.raw,media=cdrom
ipconfig0: ip=10.48.200.210/24,gw=10.48.200.1
memory: 8192
memory: 32768
meta: creation-qemu=11.0.0,ctime=1781725674
name: Ollama-95
name: Ollama-210
nameserver: 8.8.8.8 1.1.1.1
net0: virtio=BC:24:11:F6:ED:73,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: GoFlex:106/vm-106-disk-1.raw,discard=on,size=30G,ssd=1
scsi0: SynologyLVM:vm-106-disk-0,discard=on,size=30G,ssd=1
scsihw: virtio-scsi-pci
searchdomain: local
smbios1: uuid=7c666354-b26d-427c-9ce3-67023c547bb8
sockets: 1
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
unused0: GoFlex:106/vm-106-disk-0.raw
vga: std
vmgenid: 25331e1a-8884-4b61-bd92-5297618596bb
[special:cloudinit]
name: Ollama-95
-18
View File
@@ -1,18 +0,0 @@
agent: 1,fstrim_cloned_disks=1
boot: order=scsi0;ide2;net0
cores: 2
cpu: host
ide2: none,media=cdrom
machine: q35
memory: 4096
meta: creation-qemu=10.1.2,ctime=1775177879
name: Claude-DHCP
net0: virtio=BC:24:11:2D:C6:85,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
scsi0: GoFlex:107/vm-107-disk-0.raw,iothread=1,size=150G
scsihw: virtio-scsi-single
smbios1: uuid=b0b1c8aa-c799-4e2a-b393-748ed55cf6c0
sockets: 2
vmgenid: b2c71a5a-2356-43b9-b815-5acba58ac22f
+4 -4
View File
@@ -1,18 +1,18 @@
agent: enabled=1
agent: 0
bios: ovmf
boot: order=sata0
cores: 4
cpu: kvm64
efidisk0: GoFlex:109/vm-109-disk-0.raw,efitype=4m,pre-enrolled-keys=0,size=528K
efidisk0: SynologyLVM:vm-109-disk-1,efitype=4m,pre-enrolled-keys=0,size=4M
machine: q35
memory: 16384
memory: 32768
meta: creation-qemu=11.0.0,ctime=1782605900
name: HomeAssistant-97
net0: virtio=BC:24:11:A3:BD:26,bridge=vmbr0
numa: 0
onboot: 1
ostype: l26
sata0: GoFlex:109/vm-109-disk-1.qcow2,discard=on,size=32G,ssd=1
sata0: SynologyLVM:vm-109-disk-0,discard=on,size=150G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=b0d7ba62-72df-4573-bcc4-fcfc5c9b24e8
sockets: 2
-22
View File
@@ -1,22 +0,0 @@
agent: 1
boot: order=scsi0
cipassword: $5$XnJRY7/D$aqDdg7nCNwAoNv2qhwxbn4awlik1g3LslC3ckCxWCcD
ciuser: root
cores: 2
ide2: GoFlex:112/vm-112-cloudinit.qcow2,media=cdrom
ipconfig0: ip=10.48.200.33/24,gw=10.48.200.1
machine: q35
memory: 4096
meta: creation-qemu=11.0.0,ctime=1782570362
name: Jellyfin-33
nameserver: 10.48.200.90
net0: virtio=BC:24:11:B9:CD:D9,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: GoFlex:112/vm-112-disk-0.qcow2,discard=on,iothread=1,size=50G
scsihw: virtio-scsi-single
searchdomain: local
smbios1: uuid=5bed9e81-9d6d-4195-8129-60ed9c44b6c5
sockets: 2
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
vmgenid: 893ec4e4-8314-4546-8fce-1588e18b84ce
+11 -5
View File
@@ -2,20 +2,26 @@ agent: 1
boot: order=scsi0
cipassword: $5$NQ7B8hO2$gPudtAlk/B.29SOFizc4a.VleFYAieTK0VCuzpg660/
ciuser: myron
cores: 1
ide2: GoFlex:118/vm-118-cloudinit.qcow2,media=cdrom
cores: 2
cpu: kvm64
ide2: SynologyLVM:vm-118-cloudinit,media=cdrom,size=4M
ipconfig0: ip=10.48.200.18/24,gw=10.48.200.1
machine: q35
memory: 1024
memory: 4096
meta: creation-qemu=11.0.0,ctime=1782570349
name: HomeBridge-26
name: HomeBridge-18
nameserver: 10.48.200.90
net0: virtio=BC:24:11:68:FA:DB,bridge=vmbr0
numa: 0
onboot: 1
ostype: l26
scsi0: GoFlex:118/vm-118-disk-0.qcow2,discard=on,iothread=1,size=20G
scsi0: SynologyLVM:vm-118-disk-0,discard=on,iothread=1,size=20G
scsihw: virtio-scsi-single
searchdomain: local
smbios1: uuid=c6c0a84a-6052-43fe-ade3-9ff137b94e59
sockets: 1
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
vmgenid: e936e7a9-2e76-41d4-9abb-825e9a51df8d
[special:cloudinit]
name: HomeBridge-26
+2 -2
View File
@@ -5,7 +5,7 @@ cipassword: $5$PHfGFCU6$CXXrwjtXLw0wYmQVMhFnGIHOdS.t3x.dswMJJOWJ769
ciuser: root
cores: 4
cpu: host
efidisk0: local-lvm:vm-120-disk-0,size=4M
efidisk0: SynologyLVM:vm-120-disk-1,size=4M
ide2: local-lvm:vm-120-cloudinit,media=cdrom
ipconfig0: ip=10.48.200.110/24,gw=10.48.200.1
machine: q35
@@ -15,7 +15,7 @@ name: NovaCPX-110
nameserver: 10.48.200.90
net0: virtio=BC:24:11:18:2E:8B,bridge=vmbr0
ostype: l26
scsi0: local-lvm:vm-120-disk-1,discard=on,size=50G
scsi0: SynologyLVM:vm-120-disk-0,discard=on,size=50G
scsihw: virtio-scsi-pci
smbios1: uuid=2d98fed4-0522-475c-b9a7-9e0f7dae8549
sockets: 1
+20
View File
@@ -0,0 +1,20 @@
agent: enabled=1
boot: order=scsi0
cicustom: vendor=local:snippets/jarvis-vendor.yml
cipassword: $5$fd1SkHUr$.vh02pJWxFGATr4fCYUH/OS3qUGZSRriwhi64E.Apo4
ciuser: root
cores: 4
cpu: host
ide2: SynologyLVM:vm-130-cloudinit,media=cdrom
ipconfig0: ip=10.48.200.130/24,gw=10.48.200.1
memory: 4096
meta: creation-qemu=11.0.2,ctime=1783540984
name: FusionPBX-130
nameserver: 8.8.8.8 1.1.1.1
net0: virtio=BC:24:11:CA:B9:3A,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: SynologyLVM:vm-130-disk-0,discard=on,size=40G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=b6428824-8c13-4139-8efb-8ce7c1670d9a
vmgenid: 5ceae801-54fe-40a9-912c-182583a05b99
+6 -3
View File
@@ -4,19 +4,22 @@ cipassword: $5$deY08jA9$Jk3go7Gq6WM6CUTN6F2OXt16XjsgOJJoQZNZiEciTr7
ciuser: root
cores: 8
cpu: host
ide2: GoFlex:211/vm-211-cloudinit.qcow2,media=cdrom
ide2: SynologyLVM:vm-211-cloudinit,media=cdrom,size=4M
ipconfig0: ip=10.48.200.211/24,gw=10.48.200.1
machine: q35
memory: 16384
meta: creation-qemu=11.0.0,ctime=1782570375
name: JARVIS-211
name: Jarvis-211
nameserver: 10.48.200.90
net0: virtio=BC:24:11:36:52:ED,bridge=vmbr0
onboot: 1
ostype: l26
scsi0: GoFlex:211/vm-211-disk-0.qcow2,discard=on,size=50G,ssd=1
scsi0: SynologyLVM:vm-211-disk-0,discard=on,size=50G,ssd=1
scsihw: virtio-scsi-pci
searchdomain: local
smbios1: uuid=507ccb4f-d721-496a-adfa-5cf90479655e
sshkeys: ssh-rsa%20AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4%2BK4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ%2FWXPtOszWTuVnaYM6BQY7ldIdXi3a%2BxscWr%2BM8dM6OexXqdCAy66HXmgl98%2BCg2uEbxCFelH81%2F5d3cuoCXllpvUawyYZe5UjFjPeBpPc%2FQyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0%2BeXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk%2BxqTf96wTJL%2FUz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96%2BI6WjvJNEDM%2FjF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504%2B0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry%2FMr7tNOLU1Ni3lkqNRWysEjWxEizM%2F1sK7u2fbAzx3kE%2BTRpyzmFv6gSiGHqjs5j%2FtG6daK7Hv6OvbHSWwV%2FpW6CKslJWFAsa5tVv%2BFw8cXdcMMyb6%2FCYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne%2FdqeyvQCjStrzOxUT5ta9L9JZifDkQ%3D%3D%20root%40pve%0A
vmgenid: b67913ee-9569-49c9-8980-b4b165d68b52
[special:cloudinit]
name: JARVIS-211
+3 -11
View File
@@ -1,26 +1,18 @@
dir: local
path /var/lib/vz
content vztmpl,snippets,iso,rootdir,backup,images
content iso,images,rootdir,snippets,backup,vztmpl
shared 0
lvmthin: local-lvm
thinpool data
vgname pve
content rootdir,images
dir: GoFlex
path /mnt/goflex
content snippets,rootdir,vztmpl,images
nodes pve
prune-backups keep-all=1
shared 1
snapshot-as-volume-chain 1
content images,rootdir
cifs: SynologyProx
path /mnt/pve/SynologyProx
server 10.48.200.249
share homes
content snippets,iso,rootdir,backup,images,import,vztmpl
content iso,import,rootdir,images,snippets,backup,vztmpl
prune-backups keep-all=1
snapshot-as-volume-chain 1
subdir /NAS/ProxMoxBackups
+1 -1
View File
@@ -1,6 +1,6 @@
user:pveb@pam:1:0::::::
user:root@pam:1:0:::myronblair@outlook.com:::
token:root@pam!homeassistant:0:0::
token:root@pam!hoa:0:1::
token:root@pam!jarvis:0:0:Jarvis Monitoring:
token:root@pam!pdm-admin-pdm:0:0:auto-generated by PDM host 'pdm' on Wed, 11 Feb 2026 07%3A18%3A36 -0600:
token:root@pam!pdm-admin-pve35:0:0:auto-generated by PDM host 'pdm' on Wed, 18 Mar 2026 09%3A22%3A08 -0500: