diff --git a/fleet/alice/autonomy-log.txt b/fleet/alice/autonomy-log.txt index 27238d1..f9bd84f 100644 --- a/fleet/alice/autonomy-log.txt +++ b/fleet/alice/autonomy-log.txt @@ -1,50 +1,50 @@ -[2026-03-15 21:03:01] [BEAT] [alice] load=0.68 mem=3348/3794MB temp=34.1C disk=80% -[2026-03-15 21:04:03] [BEAT] [alice] load=3.13 mem=3342/3794MB temp=34.1C disk=80% -[2026-03-15 21:05:01] [BEAT] [alice] load=1.95 mem=3338/3794MB temp=35.0C disk=80% -[2026-03-15 21:05:30] [BEAT] [alice] load=1.36 mem=3341/3794MB temp=34.1C disk=80% -[2026-03-15 21:05:30] [BEAT] [alice] load=1.36 mem=3341/3794MB temp=33.6C disk=80% -[2026-03-15 21:06:01] [BEAT] [alice] load=1.33 mem=3344/3794MB temp=36.5C disk=80% -[2026-03-15 21:07:01] [BEAT] [alice] load=1.03 mem=3347/3794MB temp=33.1C disk=80% -[2026-03-15 21:08:01] [BEAT] [alice] load=0.95 mem=3343/3794MB temp=35.5C disk=80% -[2026-03-15 21:09:01] [BEAT] [alice] load=0.47 mem=3350/3794MB temp=33.6C disk=80% -[2026-03-15 21:10:01] [FLEET] [alice] Starting cross-node health check -[2026-03-15 21:10:02] [BEAT] [alice] load=0.53 mem=3336/3794MB temp=37.0C disk=80% -[2026-03-15 21:10:03] [FLEET] [alice] octavia: DOWN (no ping response) -[2026-03-15 21:10:04] [FLEET] [alice] cecilia: UP temp=43C mem=1269MB disk=19% -[2026-03-15 21:10:06] [FLEET] [alice] gematria: UP temp=C mem=4172MB disk=67% -[2026-03-15 21:10:07] [FLEET] [alice] lucidia: UP temp=58C mem=1423MB disk=33% -[2026-03-15 21:10:09] [FLEET] [alice] aria: DOWN (no ping response) -[2026-03-15 21:10:11] [FLEET] [alice] anastasia: UP temp=C mem=301MB disk=69% -[2026-03-15 21:10:39] [BEAT] [alice] load=0.70 mem=3342/3794MB temp=36.0C disk=80% -[2026-03-15 21:10:39] [BEAT] [alice] load=0.70 mem=3341/3794MB temp=35.0C disk=80% -[2026-03-15 21:11:01] [BEAT] [alice] load=0.70 mem=3350/3794MB temp=34.1C disk=80% -[2026-03-15 21:12:01] [BEAT] [alice] load=0.82 mem=3342/3794MB temp=35.5C disk=80% -[2026-03-15 21:13:01] [BEAT] [alice] load=0.60 mem=3348/3794MB temp=34.6C disk=80% -[2026-03-15 21:14:01] [BEAT] [alice] load=0.59 mem=3346/3794MB temp=34.1C disk=80% -[2026-03-15 21:15:02] [BEAT] [alice] load=0.31 mem=3333/3794MB temp=36.5C disk=80% -[2026-03-15 21:15:47] [BEAT] [alice] load=0.65 mem=3336/3794MB temp=35.0C disk=80% -[2026-03-15 21:15:47] [DIAL] [alice] Switchboard unreachable -[2026-03-15 21:15:47] [BEAT] [alice] load=0.65 mem=3335/3794MB temp=36.0C disk=80% -[2026-03-15 21:16:01] [BEAT] [alice] load=0.58 mem=3342/3794MB temp=35.5C disk=80% -[2026-03-15 21:16:09] [DIAL] [alice] Switchboard unreachable -[2026-03-15 21:17:01] [BEAT] [alice] load=0.79 mem=3343/3794MB temp=35.0C disk=80% -[2026-03-15 21:18:02] [BEAT] [alice] load=0.82 mem=3349/3794MB temp=34.1C disk=80% -[2026-03-15 21:19:01] [BEAT] [alice] load=0.41 mem=3345/3794MB temp=35.5C disk=80% -[2026-03-15 21:20:01] [FLEET] [alice] Starting cross-node health check -[2026-03-15 21:20:01] [BEAT] [alice] load=0.61 mem=3333/3794MB temp=35.5C disk=80% -[2026-03-15 21:20:03] [FLEET] [alice] octavia: DOWN (no ping response) -[2026-03-15 21:20:03] [FLEET] [alice] cecilia: UP temp=41C mem=1283MB disk=19% -[2026-03-15 21:20:05] [FLEET] [alice] gematria: UP temp=C mem=4191MB disk=67% -[2026-03-15 21:20:05] [FLEET] [alice] lucidia: UP temp=54C mem=1566MB disk=33% -[2026-03-15 21:20:07] [FLEET] [alice] aria: DOWN (no ping response) -[2026-03-15 21:20:08] [FLEET] [alice] anastasia: UP temp=C mem=304MB disk=69% -[2026-03-15 21:20:58] [BEAT] [alice] load=0.93 mem=3339/3794MB temp=37.0C disk=80% -[2026-03-15 21:20:58] [BEAT] [alice] load=0.93 mem=3339/3794MB temp=37.5C disk=80% -[2026-03-15 21:21:01] [BEAT] [alice] load=0.94 mem=3336/3794MB temp=37.5C disk=80% -[2026-03-15 21:22:02] [BEAT] [alice] load=1.09 mem=3342/3794MB temp=34.6C disk=80% -[2026-03-15 21:23:01] [BEAT] [alice] load=0.85 mem=3340/3794MB temp=37.0C disk=80% -[2026-03-15 21:24:01] [BEAT] [alice] load=0.65 mem=3349/3794MB temp=33.6C disk=80% -[2026-03-15 21:25:01] [BEAT] [alice] load=0.90 mem=3341/3794MB temp=37.0C disk=80% -[2026-03-15 21:26:01] [BEAT] [alice] load=1.03 mem=3339/3794MB temp=35.0C disk=80% -[2026-03-15 21:26:06] [BEAT] [alice] load=0.95 mem=3329/3794MB temp=35.5C disk=80% -[2026-03-15 21:26:06] [BEAT] [alice] load=0.95 mem=3342/3794MB temp=36.0C disk=80% +[2026-03-15 21:32:01] [BEAT] [alice] load=1.02 mem=3340/3794MB temp=34.6C disk=80% +[2026-03-15 21:33:02] [BEAT] [alice] load=0.98 mem=3348/3794MB temp=34.6C disk=80% +[2026-03-15 21:34:01] [BEAT] [alice] load=0.61 mem=3342/3794MB temp=36.0C disk=80% +[2026-03-15 21:35:01] [BEAT] [alice] load=0.63 mem=3334/3794MB temp=34.6C disk=80% +[2026-03-15 21:36:01] [BEAT] [alice] load=0.69 mem=3344/3794MB temp=36.5C disk=80% +[2026-03-15 21:37:02] [BEAT] [alice] load=0.55 mem=3344/3794MB temp=34.6C disk=80% +[2026-03-15 21:38:01] [BEAT] [alice] load=0.95 mem=3341/3794MB temp=36.0C disk=80% +[2026-03-15 21:38:14] [BEAT] [alice] load=0.96 mem=3340/3794MB temp=35.5C disk=80% +[2026-03-15 21:38:14] [BEAT] [alice] load=0.96 mem=3339/3794MB temp=33.6C disk=80% +[2026-03-15 21:39:01] [BEAT] [alice] load=0.99 mem=3348/3794MB temp=34.1C disk=80% +[2026-03-15 21:40:01] [FLEET] [alice] Starting cross-node health check +[2026-03-15 21:40:01] [BEAT] [alice] load=0.85 mem=3322/3794MB temp=36.0C disk=80% +[2026-03-15 21:40:03] [FLEET] [alice] octavia: DOWN (no ping response) +[2026-03-15 21:40:03] [FLEET] [alice] cecilia: UP temp=39C mem=1412MB disk=19% +[2026-03-15 21:40:05] [FLEET] [alice] gematria: UP temp=C mem=4184MB disk=67% +[2026-03-15 21:40:33] [FLEET] [alice] lucidia: UP temp=52C mem=5496MB disk=33% +[2026-03-15 21:40:35] [FLEET] [alice] aria: DOWN (no ping response) +[2026-03-15 21:40:36] [FLEET] [alice] anastasia: UP temp=C mem=286MB disk=69% +[2026-03-15 21:41:01] [BEAT] [alice] load=0.41 mem=3341/3794MB temp=33.6C disk=80% +[2026-03-15 21:42:01] [BEAT] [alice] load=1.05 mem=3347/3794MB temp=34.6C disk=80% +[2026-03-15 21:43:01] [BEAT] [alice] load=0.75 mem=3347/3794MB temp=34.1C disk=80% +[2026-03-15 21:45:06] [BEAT] [alice] load=7.87 mem=3373/3794MB temp=37.5C disk=80% +[2026-03-15 21:45:06] [BEAT] [alice] load=7.87 mem=3372/3794MB temp=37.5C disk=80% +[2026-03-15 21:45:06] [BEAT] [alice] load=7.87 mem=3368/3794MB temp=38.5C disk=80% +[2026-03-15 21:45:06] [BEAT] [alice] load=7.87 mem=3367/3794MB temp=38.5C disk=80% +[2026-03-15 21:45:34] [BEAT] [alice] load=5.61 mem=3380/3794MB temp=36.5C disk=80% +[2026-03-15 21:45:34] [BEAT] [alice] load=5.61 mem=3379/3794MB temp=35.5C disk=80% +[2026-03-15 21:45:52] [DIAL] [alice] Switchboard unreachable +[2026-03-15 21:46:01] [BEAT] [alice] load=3.77 mem=3389/3794MB temp=35.0C disk=80% +[2026-03-15 21:46:07] [DIAL] [alice] Switchboard unreachable +[2026-03-15 21:47:01] [BEAT] [alice] load=2.23 mem=3383/3794MB temp=36.0C disk=80% +[2026-03-15 21:48:01] [BEAT] [alice] load=1.07 mem=3373/3794MB temp=34.1C disk=80% +[2026-03-15 21:49:01] [BEAT] [alice] load=1.89 mem=3385/3794MB temp=34.1C disk=80% +[2026-03-15 21:50:02] [FLEET] [alice] Starting cross-node health check +[2026-03-15 21:50:02] [BEAT] [alice] load=1.08 mem=3373/3794MB temp=35.0C disk=80% +[2026-03-15 21:50:04] [FLEET] [alice] octavia: DOWN (no ping response) +[2026-03-15 21:50:04] [FLEET] [alice] cecilia: UP temp=37C mem=6998MB disk=19% +[2026-03-15 21:50:05] [FLEET] [alice] gematria: UP temp=C mem=4182MB disk=67% +[2026-03-15 21:50:17] [FLEET] [alice] lucidia: UP temp=47C mem=6382MB disk=33% +[2026-03-15 21:50:17] [FLEET] [alice] aria: UP temp=42C mem=7050MB disk=81% +[2026-03-15 21:50:18] [FLEET] [alice] anastasia: UP temp=C mem=321MB disk=69% +[2026-03-15 21:50:43] [BEAT] [alice] load=1.25 mem=3380/3794MB temp=35.5C disk=80% +[2026-03-15 21:50:43] [BEAT] [alice] load=1.25 mem=3380/3794MB temp=35.5C disk=80% +[2026-03-15 21:51:01] [BEAT] [alice] load=1.24 mem=3381/3794MB temp=35.0C disk=80% +[2026-03-15 21:52:01] [BEAT] [alice] load=1.09 mem=3379/3794MB temp=34.6C disk=80% +[2026-03-15 21:53:01] [BEAT] [alice] load=0.91 mem=3379/3794MB temp=33.1C disk=80% +[2026-03-15 21:54:01] [BEAT] [alice] load=0.73 mem=3381/3794MB temp=33.6C disk=80% +[2026-03-15 21:55:01] [BEAT] [alice] load=0.58 mem=3377/3794MB temp=34.6C disk=80% +[2026-03-15 21:55:56] [BEAT] [alice] load=0.45 mem=3372/3794MB temp=33.6C disk=80% +[2026-03-15 21:55:56] [BEAT] [alice] load=0.45 mem=3368/3794MB temp=34.6C disk=80% diff --git a/fleet/alice/heartbeat.json b/fleet/alice/heartbeat.json index fe1533e..464c3b4 100644 --- a/fleet/alice/heartbeat.json +++ b/fleet/alice/heartbeat.json @@ -1 +1 @@ -{"node":"alice","ts":"2026-03-16T02:26:06Z","load":0.95,"mem_free_mb":3342,"mem_total_mb":3794,"temp_c":36.0,"disk_pct":80,"throttle":"0x0"} +{"node":"alice","ts":"2026-03-16T02:55:56Z","load":0.45,"mem_free_mb":3368,"mem_total_mb":3794,"temp_c":34.6,"disk_pct":80,"throttle":"0x0"} diff --git a/fleet/alice/hostname.txt b/fleet/alice/hostname.txt index c9fc40b..e69de29 100644 --- a/fleet/alice/hostname.txt +++ b/fleet/alice/hostname.txt @@ -1 +0,0 @@ -alice diff --git a/fleet/alice/ports.txt b/fleet/alice/ports.txt index 00e4848..aacf37a 100644 --- a/fleet/alice/ports.txt +++ b/fleet/alice/ports.txt @@ -1,29 +1,29 @@ -LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8184 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8095 0.0.0.0:* users:(("python3",pid=608,fd=3)) +LISTEN 0 511 0.0.0.0:8083 0.0.0.0:* users:(("node /usr/lib/n",pid=3890,fd=20)) +LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* +LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=610,fd=3)) +LISTEN 0 5 0.0.0.0:8011 0.0.0.0:* users:(("python3",pid=828,fd=3)) +LISTEN 0 5 0.0.0.0:8010 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8013 0.0.0.0:* users:(("python3",pid=622,fd=3)) +LISTEN 0 5 0.0.0.0:8012 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8014 0.0.0.0:* +LISTEN 0 2048 0.0.0.0:8001 0.0.0.0:* users:(("python3",pid=617,fd=6)) +LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=7329,fd=5)) LISTEN 0 200 0.0.0.0:443 0.0.0.0:* -LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* -LISTEN 0 200 0.0.0.0:80 0.0.0.0:* -LISTEN 0 32 0.0.0.0:53 0.0.0.0:* -LISTEN 0 128 127.0.0.1:11434 0.0.0.0:* -LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 1024 0.0.0.0:6333 0.0.0.0:* LISTEN 0 128 0.0.0.0:6334 0.0.0.0:* -LISTEN 0 2048 0.0.0.0:8001 0.0.0.0:* users:(("python3",pid=611,fd=6)) -LISTEN 0 5 0.0.0.0:8012 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8013 0.0.0.0:* users:(("python3",pid=613,fd=3)) -LISTEN 0 5 0.0.0.0:8014 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8010 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8011 0.0.0.0:* users:(("python3",pid=820,fd=3)) -LISTEN 0 5 0.0.0.0:8184 0.0.0.0:* -LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=607,fd=3)) -LISTEN 0 511 0.0.0.0:8083 0.0.0.0:* users:(("node /usr/lib/n",pid=4750,fd=20)) -LISTEN 0 5 0.0.0.0:8095 0.0.0.0:* users:(("python3",pid=606,fd=3)) -LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=19832,fd=5)) -LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* -LISTEN 0 511 *:8787 *:* +LISTEN 0 200 0.0.0.0:80 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 128 0.0.0.0:22 0.0.0.0:* +LISTEN 0 32 0.0.0.0:53 0.0.0.0:* +LISTEN 0 128 127.0.0.1:11434 0.0.0.0:* +LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* +LISTEN 0 128 [::1]:11434 [::]:* LISTEN 0 244 [::1]:5432 [::]:* LISTEN 0 200 [::]:443 [::]:* -LISTEN 0 200 [::]:80 [::]:* -LISTEN 0 128 [::1]:11434 [::]:* -LISTEN 0 32 [::]:53 [::]:* -LISTEN 0 128 [::]:22 [::]:* LISTEN 0 511 [::1]:6379 [::]:* +LISTEN 0 200 [::]:80 [::]:* +LISTEN 0 128 [::]:22 [::]:* +LISTEN 0 32 [::]:53 [::]:* +LISTEN 0 511 *:8787 *:* diff --git a/fleet/alice/services.txt b/fleet/alice/services.txt index 4fc4d0f..2f5ad6c 100644 --- a/fleet/alice/services.txt +++ b/fleet/alice/services.txt @@ -16,6 +16,7 @@ dhcpcd.service docker.service getty@tty1.service hciuart.service +nginx.service pi-fleet-dashboard.service pihole-FTL.service pm2-pi.service diff --git a/fleet/alice/system-info.json b/fleet/alice/system-info.json index 27def8c..cedd979 100644 --- a/fleet/alice/system-info.json +++ b/fleet/alice/system-info.json @@ -1,19 +1,19 @@ { "hostname": "alice", - "ts": "2026-03-16T02:26:09Z", - "uptime_seconds": 90752, + "ts": "2026-03-16T02:55:58Z", + "uptime_seconds": 695, "kernel": "6.1.21-v8+", - "temp_c": 34.6, + "temp_c": 35.5, "memory_mb": { "total": 3794, - "used": 366, - "free": 3339 + "used": 329, + "free": 3376 }, "disk": "11G/15G (80%)", "load": [ - 0.95, - 0.83, - 1.31 + 0.58, + 0.97, + 0.81 ], "ollama_models": [ "qwen2.5:3b", diff --git a/fleet/anastasia/ports.txt b/fleet/anastasia/ports.txt index 5a4efeb..5aedfe7 100644 --- a/fleet/anastasia/ports.txt +++ b/fleet/anastasia/ports.txt @@ -11,7 +11,7 @@ LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:(("python3",pid LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3461172,fd=8),("nginx",pid=3461171,fd=8)) LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=589,fd=4),("systemd",pid=1,fd=127)) LISTEN 0 4096 *:8080 *:* users:(("headscale",pid=2341808,fd=12)) -LISTEN 0 511 *:3000 *:* users:(("node /srv/hello",pid=1753152,fd=19)) +LISTEN 0 511 *:3000 *:* users:(("node /srv/hello",pid=1758871,fd=19)) LISTEN 0 511 *:3001 *:* users:(("node",pid=757,fd=21)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=991,fd=8)) LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=3461172,fd=9),("nginx",pid=3461171,fd=9)) diff --git a/fleet/anastasia/system-info.json b/fleet/anastasia/system-info.json index c245584..e27ed5c 100644 --- a/fleet/anastasia/system-info.json +++ b/fleet/anastasia/system-info.json @@ -1,19 +1,19 @@ { "hostname": "anastasia", - "ts": "2026-03-16T02:26:08Z", - "uptime_seconds": 6769860, + "ts": "2026-03-16T02:55:57Z", + "uptime_seconds": 6771649, "kernel": "5.14.0-651.el9.x86_64", "temp_c": 0, "memory_mb": { "total": 765, - "used": 432, - "free": 332 + "used": 466, + "free": 298 }, "disk": "18G/25G (69%)", "load": [ - 0.08, - 0.09, - 0.08 + 0.03, + 0.03, + 0.04 ], "ollama_models": [], "throttle": "N/A", diff --git a/fleet/aria/autonomy-log.txt b/fleet/aria/autonomy-log.txt index 2c77b49..fd2b85d 100644 Binary files a/fleet/aria/autonomy-log.txt and b/fleet/aria/autonomy-log.txt differ diff --git a/fleet/aria/heartbeat.json b/fleet/aria/heartbeat.json index 84f0f2a..db9d394 100644 --- a/fleet/aria/heartbeat.json +++ b/fleet/aria/heartbeat.json @@ -1 +1 @@ -{"node":"aria","ts":"2026-03-15T01:39:45Z","load":0.11,"mem_free_mb":7068,"mem_total_mb":8059,"temp_c":52.4,"disk_pct":81,"throttle":"N/A"} +{"node":"aria","ts":"2026-03-16T02:55:55Z","load":0.62,"mem_free_mb":7098,"mem_total_mb":8059,"temp_c":45.2,"disk_pct":81,"throttle":"N/A"} diff --git a/fleet/aria/ports.txt b/fleet/aria/ports.txt index 30624d2..6da86ab 100644 --- a/fleet/aria/ports.txt +++ b/fleet/aria/ports.txt @@ -1,26 +1,26 @@ -LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* +LISTEN 0 2048 0.0.0.0:8000 0.0.0.0:* users:(("python3",pid=740,fd=6)) +LISTEN 0 5 0.0.0.0:8180 0.0.0.0:* +LISTEN 0 5 0.0.0.0:3000 0.0.0.0:* users:(("python3",pid=973,fd=3)) LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:45067 0.0.0.0:* +LISTEN 0 32 127.0.0.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:34001 0.0.0.0:* LISTEN 0 4096 0.0.0.0:9443 0.0.0.0:* +LISTEN 0 128 127.0.0.1:631 0.0.0.0:* +LISTEN 0 128 127.0.0.1:9090 0.0.0.0:* LISTEN 0 4096 0.0.0.0:9000 0.0.0.0:* LISTEN 0 511 0.0.0.0:80 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:39015 0.0.0.0:* -LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8180 0.0.0.0:* -LISTEN 0 2048 0.0.0.0:8000 0.0.0.0:* users:(("python3",pid=737,fd=6)) -LISTEN 0 128 127.0.0.1:9090 0.0.0.0:* -LISTEN 0 128 127.0.0.1:631 0.0.0.0:* -LISTEN 0 5 0.0.0.0:3000 0.0.0.0:* users:(("python3",pid=970,fd=3)) -LISTEN 0 32 127.0.0.1:53 0.0.0.0:* +LISTEN 0 4096 *:8086 *:* +LISTEN 0 128 *:8090 *:* +LISTEN 0 4096 *:11434 *:* LISTEN 0 16 *:5900 *:* LISTEN 0 4096 [::]:9443 [::]:* -LISTEN 0 4096 *:9100 *:* -LISTEN 0 128 [::1]:631 [::]:* LISTEN 0 4096 [::]:9000 [::]:* +LISTEN 0 4096 *:9100 *:* +LISTEN 0 32 [::1]:53 [::]:* LISTEN 0 511 [::]:80 [::]:* LISTEN 0 128 [::]:22 [::]:* -LISTEN 0 32 [::1]:53 [::]:* -LISTEN 0 128 *:8090 *:* -LISTEN 0 4096 *:8086 *:* -LISTEN 0 4096 *:11434 *:* +LISTEN 0 128 [::1]:631 [::]:* diff --git a/fleet/aria/status.json b/fleet/aria/status.json index c6bb9e6..c35e3da 100644 --- a/fleet/aria/status.json +++ b/fleet/aria/status.json @@ -1 +1 @@ -{"node":"aria","status":"down","ts":"2026-03-16T02:26:06Z"} +{"node":"aria","status":"down","ts":"2026-03-16T02:45:34Z"} diff --git a/fleet/aria/system-info.json b/fleet/aria/system-info.json index 1c57b46..47002c6 100644 --- a/fleet/aria/system-info.json +++ b/fleet/aria/system-info.json @@ -1,19 +1,19 @@ { "hostname": "aria", - "ts": "2026-03-15T01:39:50Z", - "uptime_seconds": 1559, + "ts": "2026-03-16T02:55:55Z", + "uptime_seconds": 624, "kernel": "6.12.62+rpt-rpi-2712", - "temp_c": 52.4, + "temp_c": 45.8, "memory_mb": { "total": 8059, - "used": 985, - "free": 7073 + "used": 956, + "free": 7102 }, "disk": "22G/29G (81%)", "load": [ - 0.1, - 0.16, - 0.21 + 0.62, + 0.84, + 0.62 ], "ollama_models": [ "nomic-embed-text:latest", diff --git a/fleet/cecilia/autonomy-log.txt b/fleet/cecilia/autonomy-log.txt index df69694..c487f72 100644 --- a/fleet/cecilia/autonomy-log.txt +++ b/fleet/cecilia/autonomy-log.txt @@ -1,50 +1,50 @@ -[2026-03-15 21:05:29] [BEAT] [cecilia] load=1.41 mem=1338/8058MB temp=40.2C disk=19% -[2026-03-15 21:06:01] [BEAT] [cecilia] load=0.90 mem=1339/8058MB temp=40.2C disk=19% -[2026-03-15 21:07:01] [BEAT] [cecilia] load=0.53 mem=1344/8058MB temp=40.2C disk=19% -[2026-03-15 21:08:01] [BEAT] [cecilia] load=0.43 mem=1338/8058MB temp=41.4C disk=19% -[2026-03-15 21:09:01] [BEAT] [cecilia] load=0.48 mem=1336/8058MB temp=40.8C disk=19% -[2026-03-15 21:10:02] [FLEET] [cecilia] Starting cross-node health check -[2026-03-15 21:10:02] [BEAT] [cecilia] load=0.42 mem=1296/8058MB temp=41.9C disk=19% -[2026-03-15 21:10:02] [HEAL] [cecilia] High swap: 1069MB — clearing inactive -[2026-03-15 21:10:02] [FLEET] [cecilia] alice: UP temp=38C mem=3322MB disk=80% -[2026-03-15 21:10:04] [FLEET] [cecilia] octavia: DOWN (no ping response) -[2026-03-15 21:10:06] [FLEET] [cecilia] gematria: UP temp=C mem=4190MB disk=67% -[2026-03-15 21:10:07] [FLEET] [cecilia] lucidia: UP temp=58C mem=1423MB disk=33% -[2026-03-15 21:10:09] [FLEET] [cecilia] aria: DOWN (no ping response) -[2026-03-15 21:10:10] [FLEET] [cecilia] anastasia: UP temp=C mem=301MB disk=69% -[2026-03-15 21:10:38] [BEAT] [cecilia] load=0.29 mem=1341/8058MB temp=40.8C disk=19% -[2026-03-15 21:10:38] [BEAT] [cecilia] load=0.29 mem=1340/8058MB temp=40.8C disk=19% -[2026-03-15 21:11:01] [BEAT] [cecilia] load=0.39 mem=1336/8058MB temp=40.2C disk=19% -[2026-03-15 21:12:01] [BEAT] [cecilia] load=0.85 mem=1334/8058MB temp=41.4C disk=19% -[2026-03-15 21:13:01] [BEAT] [cecilia] load=0.52 mem=1327/8058MB temp=41.9C disk=19% -[2026-03-15 21:14:01] [BEAT] [cecilia] load=0.57 mem=1320/8058MB temp=41.4C disk=19% -[2026-03-15 21:15:01] [BEAT] [cecilia] load=0.56 mem=1275/8058MB temp=40.2C disk=19% -[2026-03-15 21:15:01] [HEAL] [cecilia] High swap: 1052MB — clearing inactive -[2026-03-15 21:15:46] [DIAL] [cecilia] Switchboard unreachable -[2026-03-15 21:15:47] [BEAT] [cecilia] load=0.34 mem=1305/8058MB temp=39.7C disk=19% -[2026-03-15 21:15:47] [BEAT] [cecilia] load=0.34 mem=1303/8058MB temp=40.2C disk=19% -[2026-03-15 21:16:01] [BEAT] [cecilia] load=0.27 mem=1297/8058MB temp=40.2C disk=19% -[2026-03-15 21:17:01] [BEAT] [cecilia] load=0.28 mem=1301/8058MB temp=39.7C disk=19% -[2026-03-15 21:17:58] [DIAL] [cecilia] Switchboard unreachable -[2026-03-15 21:18:01] [BEAT] [cecilia] load=0.34 mem=1227/8058MB temp=41.4C disk=19% -[2026-03-15 21:19:01] [BEAT] [cecilia] load=0.24 mem=1228/8058MB temp=39.7C disk=19% -[2026-03-15 21:20:01] [FLEET] [cecilia] Starting cross-node health check -[2026-03-15 21:20:01] [BEAT] [cecilia] load=0.34 mem=1198/8058MB temp=40.8C disk=19% -[2026-03-15 21:20:01] [HEAL] [cecilia] High swap: 1052MB — clearing inactive -[2026-03-15 21:20:02] [FLEET] [cecilia] alice: UP temp=37C mem=3336MB disk=80% -[2026-03-15 21:20:04] [FLEET] [cecilia] octavia: DOWN (no ping response) -[2026-03-15 21:20:05] [FLEET] [cecilia] gematria: UP temp=C mem=4191MB disk=67% -[2026-03-15 21:20:06] [FLEET] [cecilia] lucidia: UP temp=55C mem=1574MB disk=33% -[2026-03-15 21:20:08] [FLEET] [cecilia] aria: DOWN (no ping response) -[2026-03-15 21:20:09] [FLEET] [cecilia] anastasia: UP temp=C mem=304MB disk=69% -[2026-03-15 21:20:56] [BEAT] [cecilia] load=0.25 mem=1318/8058MB temp=39.7C disk=19% -[2026-03-15 21:20:56] [BEAT] [cecilia] load=0.25 mem=1315/8058MB temp=39.7C disk=19% -[2026-03-15 21:21:01] [BEAT] [cecilia] load=0.25 mem=1313/8058MB temp=39.1C disk=19% -[2026-03-15 21:22:01] [BEAT] [cecilia] load=0.19 mem=1315/8058MB temp=39.7C disk=19% -[2026-03-15 21:23:01] [BEAT] [cecilia] load=1.65 mem=1422/8058MB temp=47.4C disk=19% -[2026-03-15 21:24:01] [BEAT] [cecilia] load=1.10 mem=1454/8058MB temp=40.8C disk=19% -[2026-03-15 21:25:01] [BEAT] [cecilia] load=2.37 mem=1411/8058MB temp=43.0C disk=19% -[2026-03-15 21:25:01] [HEAL] [cecilia] High swap: 1161MB — clearing inactive -[2026-03-15 21:26:01] [BEAT] [cecilia] load=2.60 mem=1450/8058MB temp=40.8C disk=19% -[2026-03-15 21:26:05] [BEAT] [cecilia] load=2.39 mem=1446/8058MB temp=40.8C disk=19% -[2026-03-15 21:26:05] [BEAT] [cecilia] load=2.39 mem=1444/8058MB temp=40.2C disk=19% +[2026-03-15 21:30:06] [FLEET] [cecilia] gematria: UP temp=C mem=4092MB disk=67% +[2026-03-15 21:30:46] [DIAL] [cecilia] Switchboard unreachable +[2026-03-15 21:31:01] [BEAT] [cecilia] load=0.52 mem=1455/8058MB temp=38.6C disk=19% +[2026-03-15 21:31:10] [FLEET] [cecilia] lucidia: UP temp=57C mem=2817MB disk=33% +[2026-03-15 21:31:12] [FLEET] [cecilia] aria: DOWN (no ping response) +[2026-03-15 21:31:12] [FLEET] [cecilia] anastasia: UP temp=C mem=286MB disk=69% +[2026-03-15 21:31:26] [BEAT] [cecilia] load=0.45 mem=1466/8058MB temp=39.7C disk=19% +[2026-03-15 21:31:26] [BEAT] [cecilia] load=0.45 mem=1463/8058MB temp=39.7C disk=19% +[2026-03-15 21:32:01] [BEAT] [cecilia] load=0.34 mem=1453/8058MB temp=39.1C disk=19% +[2026-03-15 21:32:59] [DIAL] [cecilia] Switchboard unreachable +[2026-03-15 21:33:01] [BEAT] [cecilia] load=0.36 mem=1460/8058MB temp=38.6C disk=19% +[2026-03-15 21:34:02] [BEAT] [cecilia] load=0.31 mem=1454/8058MB temp=40.2C disk=19% +[2026-03-15 21:35:01] [BEAT] [cecilia] load=0.23 mem=1446/8058MB temp=40.2C disk=19% +[2026-03-15 21:35:01] [HEAL] [cecilia] High swap: 1161MB — clearing inactive +[2026-03-15 21:36:01] [BEAT] [cecilia] load=1.00 mem=1461/8058MB temp=38.6C disk=19% +[2026-03-15 21:37:01] [BEAT] [cecilia] load=0.51 mem=1458/8058MB temp=38.0C disk=19% +[2026-03-15 21:38:01] [BEAT] [cecilia] load=0.58 mem=1462/8058MB temp=38.6C disk=19% +[2026-03-15 21:38:13] [BEAT] [cecilia] load=0.45 mem=1469/8058MB temp=38.6C disk=19% +[2026-03-15 21:38:13] [BEAT] [cecilia] load=0.45 mem=1467/8058MB temp=38.6C disk=19% +[2026-03-15 21:39:01] [BEAT] [cecilia] load=0.27 mem=1464/8058MB temp=38.6C disk=19% +[2026-03-15 21:40:01] [FLEET] [cecilia] Starting cross-node health check +[2026-03-15 21:40:01] [BEAT] [cecilia] load=0.33 mem=1430/8058MB temp=38.0C disk=19% +[2026-03-15 21:40:01] [HEAL] [cecilia] High swap: 1161MB — clearing inactive +[2026-03-15 21:40:02] [FLEET] [cecilia] alice: UP temp=37C mem=3321MB disk=80% +[2026-03-15 21:40:04] [FLEET] [cecilia] octavia: DOWN (no ping response) +[2026-03-15 21:40:06] [FLEET] [cecilia] gematria: UP temp=C mem=4184MB disk=67% +[2026-03-15 21:40:34] [FLEET] [cecilia] lucidia: UP temp=52C mem=5492MB disk=33% +[2026-03-15 21:40:36] [FLEET] [cecilia] aria: DOWN (no ping response) +[2026-03-15 21:40:37] [FLEET] [cecilia] anastasia: UP temp=C mem=287MB disk=69% +[2026-03-15 21:41:01] [BEAT] [cecilia] load=0.33 mem=1444/8058MB temp=38.6C disk=19% +[2026-03-15 21:42:01] [BEAT] [cecilia] load=0.49 mem=1454/8058MB temp=38.6C disk=19% +[2026-03-15 21:43:01] [BEAT] [cecilia] load=0.52 mem=1450/8058MB temp=38.6C disk=19% +[2026-03-15 21:50:01] [FLEET] [cecilia] Starting cross-node health check +[2026-03-15 21:50:01] [BEAT] [cecilia] load=1.13 mem=7079/8062MB temp=37.5C disk=19% +[2026-03-15 21:50:02] [DIAL] [cecilia] Switchboard unreachable +[2026-03-15 21:50:02] [FLEET] [cecilia] alice: UP temp=36C mem=3367MB disk=80% +[2026-03-15 21:50:04] [FLEET] [cecilia] octavia: DOWN (no ping response) +[2026-03-15 21:50:06] [FLEET] [cecilia] gematria: UP temp=C mem=4182MB disk=67% +[2026-03-15 21:50:17] [FLEET] [cecilia] lucidia: UP temp=47C mem=6380MB disk=33% +[2026-03-15 21:50:17] [FLEET] [cecilia] aria: UP temp=44C mem=7048MB disk=81% +[2026-03-15 21:50:19] [FLEET] [cecilia] anastasia: UP temp=C mem=321MB disk=69% +[2026-03-15 21:50:42] [BEAT] [cecilia] load=0.99 mem=7101/8062MB temp=36.4C disk=19% +[2026-03-15 21:50:42] [BEAT] [cecilia] load=0.99 mem=7099/8062MB temp=35.3C disk=19% +[2026-03-15 21:51:01] [BEAT] [cecilia] load=1.17 mem=7105/8062MB temp=36.4C disk=19% +[2026-03-15 21:52:01] [BEAT] [cecilia] load=0.57 mem=7138/8062MB temp=37.5C disk=19% +[2026-03-15 21:53:01] [BEAT] [cecilia] load=0.59 mem=7138/8062MB temp=35.9C disk=19% +[2026-03-15 21:54:01] [BEAT] [cecilia] load=0.92 mem=6361/8062MB temp=38.0C disk=19% +[2026-03-15 21:55:01] [BEAT] [cecilia] load=0.63 mem=6361/8062MB temp=37.0C disk=19% +[2026-03-15 21:55:55] [BEAT] [cecilia] load=0.43 mem=6384/8062MB temp=37.5C disk=19% +[2026-03-15 21:55:55] [BEAT] [cecilia] load=0.43 mem=6383/8062MB temp=37.0C disk=19% diff --git a/fleet/cecilia/heartbeat.json b/fleet/cecilia/heartbeat.json index 0faa526..a731ed1 100644 --- a/fleet/cecilia/heartbeat.json +++ b/fleet/cecilia/heartbeat.json @@ -1 +1 @@ -{"node":"cecilia","ts":"2026-03-16T02:26:05Z","load":2.39,"mem_free_mb":1444,"mem_total_mb":8058,"temp_c":40.2,"disk_pct":19,"throttle":"N/A"} +{"node":"cecilia","ts":"2026-03-16T02:55:55Z","load":0.43,"mem_free_mb":6383,"mem_total_mb":8062,"temp_c":37.0,"disk_pct":19,"throttle":"N/A"} diff --git a/fleet/cecilia/opt-blackroad/etc/registered b/fleet/cecilia/opt-blackroad/etc/registered index c756c1c..09a7789 100644 --- a/fleet/cecilia/opt-blackroad/etc/registered +++ b/fleet/cecilia/opt-blackroad/etc/registered @@ -1 +1 @@ -2026-03-14T20:15:07-05:00 +2026-03-15T21:49:17-05:00 diff --git a/fleet/cecilia/ports.txt b/fleet/cecilia/ports.txt index 35c087d..1fae369 100644 --- a/fleet/cecilia/ports.txt +++ b/fleet/cecilia/ports.txt @@ -1,36 +1,33 @@ -LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=1043,fd=3)) -LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* -LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=2340686,fd=5)) -LISTEN 0 32 10.10.2.1:53 0.0.0.0:* -LISTEN 0 511 0.0.0.0:3100 0.0.0.0:* -LISTEN 0 5 0.0.0.0:11435 0.0.0.0:* users:(("python3",pid=1366,fd=3)) -LISTEN 0 5 0.0.0.0:3001 0.0.0.0:* -LISTEN 0 5 0.0.0.0:3000 0.0.0.0:* users:(("python3",pid=1548,fd=3)) -LISTEN 0 32 192.168.4.96:53 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:39187 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:35249 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:42623 0.0.0.0:* -LISTEN 0 200 127.0.0.1:5432 0.0.0.0:* -LISTEN 0 128 0.0.0.0:34001 0.0.0.0:* -LISTEN 0 128 0.0.0.0:5001 0.0.0.0:* users:(("python3",pid=1556,fd=3)) -LISTEN 0 128 0.0.0.0:5002 0.0.0.0:* users:(("python3",pid=1553,fd=3)) -LISTEN 0 4096 127.0.0.1:9000 0.0.0.0:* -LISTEN 0 2048 0.0.0.0:8788 0.0.0.0:* users:(("python3",pid=1362,fd=16)) -LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:(("python3",pid=1547,fd=3)) -LISTEN 0 32 127.0.0.1:53 0.0.0.0:* -LISTEN 0 128 0.0.0.0:22 0.0.0.0:* -LISTEN 0 511 0.0.0.0:80 0.0.0.0:* -LISTEN 0 4096 *:8086 *:* -LISTEN 0 511 [::]:8080 [::]:* -LISTEN 0 4096 *:11434 *:* -LISTEN 0 16 *:5900 *:* -LISTEN 0 32 [::1]:53 [::]:* -LISTEN 0 4096 [::1]:9000 [::]:* -LISTEN 0 4096 *:9001 *:* -LISTEN 0 4096 *:9000 *:* -LISTEN 0 4096 *:9100 *:* -LISTEN 0 200 [::1]:5432 [::]:* -LISTEN 0 128 [::]:22 [::]:* -LISTEN 0 511 [::]:80 [::]:* +LISTEN 0 4096 127.0.0.1:33551 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:9000 0.0.0.0:* +LISTEN 0 128 0.0.0.0:34001 0.0.0.0:* +LISTEN 0 32 127.0.0.1:53 0.0.0.0:* +LISTEN 0 2048 0.0.0.0:8788 0.0.0.0:* users:(("python3",pid=1429,fd=16)) +LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:(("python3",pid=1562,fd=3)) +LISTEN 0 5 0.0.0.0:9100 0.0.0.0:* +LISTEN 0 128 0.0.0.0:5002 0.0.0.0:* users:(("python3",pid=1566,fd=3)) +LISTEN 0 128 0.0.0.0:5001 0.0.0.0:* users:(("python3",pid=1572,fd=3)) +LISTEN 0 511 0.0.0.0:80 0.0.0.0:* +LISTEN 0 128 0.0.0.0:22 0.0.0.0:* +LISTEN 0 200 127.0.0.1:5432 0.0.0.0:* +LISTEN 0 32 192.168.4.96:53 0.0.0.0:* +LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=1251,fd=4)) +LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=1035,fd=3)) +LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* +LISTEN 0 511 0.0.0.0:3100 0.0.0.0:* +LISTEN 0 5 0.0.0.0:11435 0.0.0.0:* users:(("python3",pid=1412,fd=3)) +LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 5 0.0.0.0:3001 0.0.0.0:* +LISTEN 0 5 0.0.0.0:3000 0.0.0.0:* users:(("python3",pid=1563,fd=3)) +LISTEN 0 16 *:5900 *:* +LISTEN 0 4096 *:9001 *:* +LISTEN 0 4096 *:9000 *:* +LISTEN 0 511 [::]:80 [::]:* +LISTEN 0 128 [::]:22 [::]:* +LISTEN 0 4096 [::1]:9000 [::]:* +LISTEN 0 4096 *:8086 *:* +LISTEN 0 511 [::]:8080 [::]:* +LISTEN 0 4096 *:11434 *:* +LISTEN 0 32 [::1]:53 [::]:* +LISTEN 0 200 [::1]:5432 [::]:* diff --git a/fleet/cecilia/services.txt b/fleet/cecilia/services.txt index 032defd..9c35f53 100644 --- a/fleet/cecilia/services.txt +++ b/fleet/cecilia/services.txt @@ -2,6 +2,7 @@ accounts-daemon.service avahi-daemon.service blackroad-agent.service blackroad-dashboard.service +blackroad-monitor.service blackroad-nats-agent.service bluetooth.service cece-api.service @@ -18,7 +19,6 @@ influxdb.service minio.service ModemManager.service NetworkManager.service -node_exporter.service ollama.service pironman5.service polkit.service diff --git a/fleet/cecilia/status.json b/fleet/cecilia/status.json new file mode 100644 index 0000000..f9094a2 --- /dev/null +++ b/fleet/cecilia/status.json @@ -0,0 +1 @@ +{"node":"cecilia","status":"down","ts":"2026-03-16T02:45:34Z"} diff --git a/fleet/cecilia/system-info.json b/fleet/cecilia/system-info.json index 1a15152..128aa53 100644 --- a/fleet/cecilia/system-info.json +++ b/fleet/cecilia/system-info.json @@ -1,19 +1,19 @@ { "hostname": "cecilia", - "ts": "2026-03-16T02:26:06Z", - "uptime_seconds": 90727, + "ts": "2026-03-16T02:55:55Z", + "uptime_seconds": 465, "kernel": "6.12.62+rpt-rpi-2712", - "temp_c": 41.4, + "temp_c": 38.0, "memory_mb": { - "total": 8058, - "used": 6616, - "free": 1442 + "total": 8062, + "used": 1689, + "free": 6373 }, - "disk": "79G/457G (19%)", + "disk": "81G/457G (19%)", "load": [ - 2.39, - 1.38, - 1.03 + 0.47, + 0.55, + 0.28 ], "ollama_models": [ "deepseek-r1:1.5b", diff --git a/fleet/gematria/services.txt b/fleet/gematria/services.txt index d2f5ec4..49f5dd3 100644 --- a/fleet/gematria/services.txt +++ b/fleet/gematria/services.txt @@ -6,7 +6,6 @@ do-agent.service droplet-agent.service fail2ban.service getty@tty1.service -github-runner-gematria.service irqbalance.service lucidia-agent.service lucidia-watchdog.service diff --git a/fleet/gematria/system-info.json b/fleet/gematria/system-info.json index ab15a8f..88aa19a 100644 --- a/fleet/gematria/system-info.json +++ b/fleet/gematria/system-info.json @@ -1,19 +1,19 @@ { "hostname": "gematria", - "ts": "2026-03-16T02:26:11Z", - "uptime_seconds": 5427163, + "ts": "2026-03-16T02:55:58Z", + "uptime_seconds": 5428950, "kernel": "5.15.0-113-generic", "temp_c": 0, "memory_mb": { "total": 7937, - "used": 3580, - "free": 3888 + "used": 3271, + "free": 4238 }, "disk": "52G/78G (67%)", "load": [ - 4.06, - 3.33, - 3.16 + 3.09, + 3.12, + 3.37 ], "ollama_models": [ "qwen2.5:7b", @@ -26,5 +26,5 @@ ], "throttle": "N/A", "voltage": "N/A", - "services_running": 32 + "services_running": 31 } diff --git a/fleet/lucidia/autonomy-log.txt b/fleet/lucidia/autonomy-log.txt index bd45b0b..50b6a0e 100644 Binary files a/fleet/lucidia/autonomy-log.txt and b/fleet/lucidia/autonomy-log.txt differ diff --git a/fleet/lucidia/docker.txt b/fleet/lucidia/docker.txt index f400a8a..ce7f15b 100644 --- a/fleet/lucidia/docker.txt +++ b/fleet/lucidia/docker.txt @@ -1,14 +1,14 @@ -blackroad-gitea Up 25 hours -road-pdns-admin Up 25 hours (healthy) -road-pdns Up 25 hours -road-dns-db Up 25 hours -roadauth Up 25 hours -roadapi Up 25 hours -blackroad-edge-agent Up 25 hours -blackroad.systems Up 25 hours -blackroadai.com Up 25 hours -blackroad-auth-gateway Up 25 hours -blackroad-metaverse Up 25 hours -blackroad-os Up 25 hours -blackroad-os-carpool Up 25 hours -pi-my-agent-1 Up 25 hours (healthy) +blackroad-gitea Up 5 minutes +road-pdns-admin Up 5 minutes (healthy) +road-pdns Up 5 minutes +road-dns-db Up 5 minutes +roadauth Up 5 minutes +roadapi Up 5 minutes +blackroad-edge-agent Up 5 minutes +blackroad.systems Up 5 minutes +blackroadai.com Up 5 minutes +blackroad-auth-gateway Up 5 minutes +blackroad-metaverse Up 5 minutes +blackroad-os Up 5 minutes +blackroad-os-carpool Up 5 minutes +pi-my-agent-1 Up 5 minutes (healthy) diff --git a/fleet/lucidia/heartbeat.json b/fleet/lucidia/heartbeat.json index 42d3fa8..ab415e4 100644 --- a/fleet/lucidia/heartbeat.json +++ b/fleet/lucidia/heartbeat.json @@ -1 +1 @@ -{"node":"lucidia","ts":"2026-03-16T02:26:09Z","load":44.75,"mem_free_mb":2476,"mem_total_mb":8063,"temp_c":57.3,"disk_pct":33,"throttle":"N/A"} +{"node":"lucidia","ts":"2026-03-16T02:55:55Z","load":3.44,"mem_free_mb":3661,"mem_total_mb":8063,"temp_c":55.1,"disk_pct":33,"throttle":"N/A"} diff --git a/fleet/lucidia/ports.txt b/fleet/lucidia/ports.txt index 4149e4b..f7fdd08 100644 --- a/fleet/lucidia/ports.txt +++ b/fleet/lucidia/ports.txt @@ -1,56 +1,54 @@ -LISTEN 0 128 0.0.0.0:34001 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:40753 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:20242 0.0.0.0:* LISTEN 0 4096 100.66.235.47:38850 0.0.0.0:* LISTEN 0 511 127.0.0.1:4010 0.0.0.0:* +LISTEN 0 128 0.0.0.0:34001 0.0.0.0:* LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* -LISTEN 0 511 0.0.0.0:80 0.0.0.0:* -LISTEN 0 128 0.0.0.0:22 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:9192 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:9090 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:20242 0.0.0.0:* LISTEN 0 128 0.0.0.0:8889 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:9090 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:9192 0.0.0.0:* +LISTEN 0 128 0.0.0.0:22 0.0.0.0:* +LISTEN 0 511 0.0.0.0:80 0.0.0.0:* LISTEN 0 200 127.0.0.1:5432 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:3100 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:3109 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8011 0.0.0.0:* -LISTEN 0 2048 0.0.0.0:8000 0.0.0.0:* -LISTEN 0 5 0.0.0.0:8180 0.0.0.0:* -LISTEN 0 2048 0.0.0.0:8182 0.0.0.0:* -LISTEN 0 511 0.0.0.0:8081 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:8082 0.0.0.0:* LISTEN 0 4096 0.0.0.0:4001 0.0.0.0:* LISTEN 0 4096 0.0.0.0:4002 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:46699 0.0.0.0:* -LISTEN 0 32 127.0.0.1:53 0.0.0.0:* -LISTEN 0 4096 0.0.0.0:2222 0.0.0.0:* -LISTEN 0 4096 127.0.0.1:37679 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* +LISTEN 0 511 0.0.0.0:8081 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:8082 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8180 0.0.0.0:* +LISTEN 0 2048 0.0.0.0:8182 0.0.0.0:* +LISTEN 0 5 0.0.0.0:8011 0.0.0.0:* +LISTEN 0 2048 0.0.0.0:8000 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:3109 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:3100 0.0.0.0:* +LISTEN 0 4096 127.0.0.1:33179 0.0.0.0:* LISTEN 0 4096 0.0.0.0:3005 0.0.0.0:* LISTEN 0 4096 0.0.0.0:3006 0.0.0.0:* LISTEN 0 5 0.0.0.0:3000 0.0.0.0:* LISTEN 0 4096 0.0.0.0:3002 0.0.0.0:* +LISTEN 0 32 127.0.0.1:53 0.0.0.0:* +LISTEN 0 4096 0.0.0.0:2222 0.0.0.0:* LISTEN 0 128 127.0.0.1:631 0.0.0.0:* -LISTEN 0 4096 [fd7a:115c:a1e0::5401:eb6c]:46193 [::]:* -LISTEN 0 511 [::]:80 [::]:* -LISTEN 0 128 [::]:22 [::]:* -LISTEN 0 4096 [::]:9192 [::]:* LISTEN 0 4096 *:9100 *:* LISTEN 0 4096 [::]:9090 [::]:* -LISTEN 0 200 [::1]:5432 [::]:* -LISTEN 0 4096 [::]:3100 [::]:* -LISTEN 0 4096 [::]:3109 [::]:* -LISTEN 0 4096 *:11434 *:* +LISTEN 0 4096 [::]:9192 [::]:* +LISTEN 0 128 [::]:22 [::]:* +LISTEN 0 511 [::]:80 [::]:* +LISTEN 0 128 [::1]:631 [::]:* +LISTEN 0 4096 [::]:4001 [::]:* +LISTEN 0 4096 [::]:4002 [::]:* LISTEN 0 511 *:8090 *:* LISTEN 0 4096 *:8086 *:* LISTEN 0 4096 [::]:8080 [::]:* LISTEN 0 4096 [::]:8082 [::]:* -LISTEN 0 4096 [::]:4001 [::]:* -LISTEN 0 4096 [::]:4002 [::]:* -LISTEN 0 4096 [::]:2222 [::]:* +LISTEN 0 4096 *:11434 *:* LISTEN 0 32 [::1]:53 [::]:* +LISTEN 0 4096 [::]:3109 [::]:* +LISTEN 0 4096 [::]:3100 [::]:* LISTEN 0 4096 [::]:3005 [::]:* LISTEN 0 4096 [::]:3006 [::]:* LISTEN 0 4096 [::]:3002 [::]:* -LISTEN 0 128 [::1]:631 [::]:* +LISTEN 0 4096 [::]:2222 [::]:* +LISTEN 0 200 [::1]:5432 [::]:* +LISTEN 0 4096 [fd7a:115c:a1e0::5401:eb6c]:46193 [::]:* diff --git a/fleet/lucidia/services.txt b/fleet/lucidia/services.txt index b24913c..56a9eb7 100644 --- a/fleet/lucidia/services.txt +++ b/fleet/lucidia/services.txt @@ -6,7 +6,6 @@ blackroad-agent.service blackroad-api.service blackroad-nats-agent.service blackroad-relay.service -blackroad-ssh-tunnel.service bluetooth.service cloudflared.service colord.service @@ -29,7 +28,6 @@ pironman5.service pm2-pi.service polkit.service postgresql@17-main.service -road-phone.service roadnet-failover.service rtkit-daemon.service serial-getty@ttyAMA10.service diff --git a/fleet/lucidia/status.json b/fleet/lucidia/status.json new file mode 100644 index 0000000..cbd5205 --- /dev/null +++ b/fleet/lucidia/status.json @@ -0,0 +1 @@ +{"node":"lucidia","status":"down","ts":"2026-03-16T02:45:34Z"} diff --git a/fleet/lucidia/system-info.json b/fleet/lucidia/system-info.json index a8d798f..c78339c 100644 --- a/fleet/lucidia/system-info.json +++ b/fleet/lucidia/system-info.json @@ -1,19 +1,19 @@ { "hostname": "octavia", - "ts": "2026-03-16T02:26:19Z", - "uptime_seconds": 90743, + "ts": "2026-03-16T02:55:56Z", + "uptime_seconds": 514, "kernel": "6.12.62+rpt-rpi-2712", - "temp_c": 56.2, + "temp_c": 54.5, "memory_mb": { "total": 8063, - "used": 5705, - "free": 2357 + "used": 4456, + "free": 3607 }, "disk": "73G/235G (33%)", "load": [ - 39.93, - 16.77, - 8.64 + 3.44, + 4.56, + 3.07 ], "ollama_models": [ "qwen2.5:3b", @@ -25,5 +25,5 @@ ], "throttle": "N/A", "voltage": "N/A", - "services_running": 48 + "services_running": 46 } diff --git a/fleet/octavia/status.json b/fleet/octavia/status.json index b757c03..a2143c4 100644 --- a/fleet/octavia/status.json +++ b/fleet/octavia/status.json @@ -1 +1 @@ -{"node":"octavia","status":"down","ts":"2026-03-16T02:26:06Z"} +{"node":"octavia","status":"down","ts":"2026-03-16T02:55:55Z"} diff --git a/workers/road-search-src/worker.js b/workers/road-search-src/worker.js index 89a5d15..99ad29f 100644 --- a/workers/road-search-src/worker.js +++ b/workers/road-search-src/worker.js @@ -395,11 +395,25 @@ async function handleStats(env) { // ─── Index page (add to search index) ───────────────────────────────── async function handleIndex(request, env) { const auth = request.headers.get('Authorization'); - if (!auth || auth !== `Bearer ${env.INDEX_KEY}`) { + if (!auth || !env.INDEX_KEY) { + return Response.json({ error: 'Unauthorized' }, { status: 401 }); + } + // Constant-time comparison via HMAC to prevent timing attacks + const enc = new TextEncoder(); + const key = await crypto.subtle.importKey('raw', enc.encode('auth-check'), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']); + const expectedMac = await crypto.subtle.sign('HMAC', key, enc.encode(`Bearer ${env.INDEX_KEY}`)); + const actualMac = await crypto.subtle.sign('HMAC', key, enc.encode(auth)); + const expectedArr = new Uint8Array(expectedMac); + const actualArr = new Uint8Array(actualMac); + let match = expectedArr.length === actualArr.length; + for (let i = 0; i < expectedArr.length; i++) match &= expectedArr[i] === actualArr[i]; + if (!match) { return Response.json({ error: 'Unauthorized' }, { status: 401 }); } - const pages = await request.json(); + let pages; + try { pages = await request.json(); } + catch { return Response.json({ error: 'Invalid JSON' }, { status: 400 }); } const toIndex = Array.isArray(pages) ? pages : [pages]; let indexed = 0; @@ -433,16 +447,10 @@ async function handleIndex(request, env) { // ─── Rebuild FTS Index ─────────────────────────────────────────────── async function handleRebuild(env) { - await env.DB.prepare('DELETE FROM pages_fts').run(); - const rows = await env.DB.prepare('SELECT rowid, title, description, content, tags FROM pages').all(); - let rebuilt = 0; - for (const r of (rows.results || [])) { - await env.DB.prepare( - 'INSERT INTO pages_fts(rowid, title, description, content, tags) VALUES (?, ?, ?, ?, ?)' - ).bind(r.rowid, r.title, r.description, r.content, r.tags).run(); - rebuilt++; - } - return Response.json({ ok: true, rebuilt }); + // Drop and recreate FTS table + try { await env.DB.prepare("INSERT INTO pages_fts(pages_fts) VALUES('rebuild')").run(); } catch {} + const count = await env.DB.prepare('SELECT COUNT(*) as c FROM pages').first(); + return Response.json({ ok: true, rebuilt: count?.c || 0, note: 'FTS rebuild triggered' }); } // ─── Lucky (I'm Feeling Lucky — redirect to top result) ────────────── @@ -463,6 +471,15 @@ async function handleLucky(request, env) { } if (result?.url) { + // Validate redirect URL — only allow blackroad.io domains to prevent open redirect + try { + const target = new URL(result.url); + if (!target.hostname.endsWith('blackroad.io') && !target.hostname.endsWith('blackroad.company') && !target.hostname.endsWith('lucidia.earth')) { + return Response.json({ error: 'External redirect blocked', url: result.url }, { status: 403 }); + } + } catch { + return Response.json({ error: 'Invalid URL in index' }, { status: 500 }); + } return Response.redirect(result.url, 302); } return Response.json({ error: 'No results found' }, { status: 404 }); diff --git a/workers/stats-blackroad-src/worker.js b/workers/stats-blackroad-src/worker.js index 8099995..c607194 100644 --- a/workers/stats-blackroad-src/worker.js +++ b/workers/stats-blackroad-src/worker.js @@ -38,9 +38,8 @@ export default { try { // ── Push data from collector ── if (path === '/push' && request.method === 'POST') { - const authKey = request.headers.get('Authorization')?.replace('Bearer ', '') || - url.searchParams.get('key'); - if (authKey !== env.STATS_KEY) return json({ error: 'unauthorized' }, 401); + const authKey = request.headers.get('Authorization')?.replace('Bearer ', ''); + if (!authKey || authKey !== env.STATS_KEY) return json({ error: 'unauthorized — use Authorization header' }, 401); const body = await request.json(); const { category, data } = body; diff --git a/workers/tollbooth-src/worker.js b/workers/tollbooth-src/worker.js index d4673b4..7671909 100644 --- a/workers/tollbooth-src/worker.js +++ b/workers/tollbooth-src/worker.js @@ -969,6 +969,15 @@ function handleHealth() { }); } +// ─── Rate limiting ─────────────────────────────────────────────────────── +const rl = new Map(); +function rateLimit(ip, max = 30, windowSec = 60) { + const now = Date.now(); + const entry = rl.get(ip); + if (!entry || now - entry.t > windowSec * 1000) { rl.set(ip, { t: now, c: 1 }); return true; } + return ++entry.c <= max; +} + // ─── Router ────────────────────────────────────────────────────────────── export default { async fetch(request, env) { @@ -980,6 +989,12 @@ export default { return new Response(null, { status: 204, headers: { ...cors, ...SECURITY_HEADERS } }); } + // Rate limit all requests + const clientIp = request.headers.get('cf-connecting-ip') || 'unknown'; + if (!rateLimit(clientIp)) { + return addHeaders(err('Too many requests — slow down', 429), cors); + } + const db = env.DB; let response;