Update stale service IP references after VLAN 30 cutover

This commit is contained in:
Fizzlepoof
2026-05-22 20:36:12 +00:00
parent 8c72a0c287
commit c5ab126513
43 changed files with 1789 additions and 2161 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -17,8 +17,8 @@
<strong>Doris Constabulary</strong> <strong>Doris Constabulary</strong>
</div> </div>
<nav class="nav-links" aria-label="Doris Barbell navigation"> <nav class="nav-links" aria-label="Doris Barbell navigation">
<a class="nav-link" href="http://10.5.1.16:8787/">Dashboard</a> <a class="nav-link" href="http://10.5.30.7:8787/">Dashboard</a>
<a class="nav-link" href="http://10.5.1.16:8092/">Kitchen</a> <a class="nav-link" href="http://10.5.30.7:8092/">Kitchen</a>
<a class="nav-link" href="https://schoolhouse.paccoco.com">Schoolhouse</a> <a class="nav-link" href="https://schoolhouse.paccoco.com">Schoolhouse</a>
<a class="nav-link" href="/">Barbell</a> <a class="nav-link" href="/">Barbell</a>
</nav> </nav>

View File

@@ -17,7 +17,7 @@
<strong>Doris Constabulary</strong> <strong>Doris Constabulary</strong>
</div> </div>
<nav class="nav-links" aria-label="Doris Kitchen navigation"> <nav class="nav-links" aria-label="Doris Kitchen navigation">
<a class="nav-link" href="http://10.5.1.16:8787/">Dashboard</a> <a class="nav-link" href="http://10.5.30.7:8787/">Dashboard</a>
<a class="nav-link" href="/">Queue</a> <a class="nav-link" href="/">Queue</a>
<a class="nav-link" href="/search">Search</a> <a class="nav-link" href="/search">Search</a>
<a class="nav-link" href="/planner">Planner</a> <a class="nav-link" href="/planner">Planner</a>

View File

@@ -17,7 +17,7 @@ NOMAD does **not** currently have PD's Docker-only external networks (`pangolin`
For NOMAD, Schoolhouse should: For NOMAD, Schoolhouse should:
- publish `8091` on the host - publish `8091` on the host
- let Pangolin/Newt target the host port externally - let Pangolin/Newt target the host port externally
- reach shared Postgres on PD over LAN TCP (`10.5.1.6:5432`) - reach shared Postgres on PD over LAN TCP (`10.5.30.6:5432`)
- reach LiteLLM / Qdrant / Paperless / n8n over their existing LAN/public endpoints - reach LiteLLM / Qdrant / Paperless / n8n over their existing LAN/public endpoints
## Pre-deploy checklist ## Pre-deploy checklist
@@ -80,7 +80,7 @@ Current live helper:
``` ```
Behavior: Behavior:
- mounts Serenity NFS export `10.5.1.5:/mnt/user/data` at `/mnt/serenity-data` when needed - mounts Serenity NFS export `10.5.30.5:/mnt/user/data` at `/mnt/serenity-data` when needed
- mirrors `/opt/doris-schoolhouse/data/` into `/mnt/serenity-data/backups/nomad/doris-schoolhouse/data/` - mirrors `/opt/doris-schoolhouse/data/` into `/mnt/serenity-data/backups/nomad/doris-schoolhouse/data/`
- writes `last_success_utc.txt` and `source_host.txt` markers beside the mirrored data - writes `last_success_utc.txt` and `source_host.txt` markers beside the mirrored data

View File

@@ -229,8 +229,8 @@ That flow is the reference for refreshing the live runtime from repo source.
Current verified live behavior: Current verified live behavior:
- `https://n8n.paccoco.com/webhook/school/intake/upload` accepts Doris Schoolhouse multipart assignment uploads and returned a successful live smoke-test response on 2026-05-15. - `https://n8n.paccoco.com/webhook/school/intake/upload` accepts Doris Schoolhouse multipart assignment uploads and returned a successful live smoke-test response on 2026-05-15.
- `https://n8n.paccoco.com/webhook/class/upload` now succeeds in live smoke testing after upstream workflow and LiteLLM fixes on 2026-05-15. - `https://n8n.paccoco.com/webhook/class/upload` now succeeds in live smoke testing after upstream workflow and LiteLLM fixes on 2026-05-15.
- Direct Whisper testing against `http://10.5.1.16:8786/v1/audio/transcriptions` succeeded with a tiny MP3. - Direct Whisper testing against `http://10.5.30.7:8786/v1/audio/transcriptions` succeeded with a tiny MP3.
- Direct LiteLLM testing against `http://10.5.1.6:4000/v1/chat/completions` now succeeds for model `medium` after the PD route fix. - Direct LiteLLM testing against `http://10.5.30.6:4000/v1/chat/completions` now succeeds for model `medium` after the PD route fix.
The app now captures webhook HTTP failures as structured responses instead of crashing blindly. The app now captures webhook HTTP failures as structured responses instead of crashing blindly.
@@ -243,7 +243,7 @@ On NOMAD, Schoolhouse should run as a standalone service from `/opt/doris-school
Unlike PD stacks, this host does **not** currently use the PD Docker external networks for Pangolin or shared databases. The practical deploy model here is: Unlike PD stacks, this host does **not** currently use the PD Docker external networks for Pangolin or shared databases. The practical deploy model here is:
- publish host port `8091` - publish host port `8091`
- point Pangolin/Newt at that host port - point Pangolin/Newt at that host port
- reach shared Postgres on PD over `10.5.1.6:5432` - reach shared Postgres on PD over `10.5.30.6:5432`
Use `.env.nomad.example` as the starting point for the live runtime. Use `.env.nomad.example` as the starting point for the live runtime.

View File

@@ -17,7 +17,7 @@
<strong>Doris Constabulary</strong> <strong>Doris Constabulary</strong>
</div> </div>
<nav class="nav-links" aria-label="Doris Schoolhouse navigation"> <nav class="nav-links" aria-label="Doris Schoolhouse navigation">
<a class="nav-link" href="http://10.5.1.16:8787/">Dashboard</a> <a class="nav-link" href="http://10.5.30.7:8787/">Dashboard</a>
<a class="nav-link" href="/">Dashboard</a> <a class="nav-link" href="/">Dashboard</a>
<a class="nav-link" href="/assignments/upload">Assignment Upload</a> <a class="nav-link" href="/assignments/upload">Assignment Upload</a>
<a class="nav-link" href="/recordings/upload">Recording Upload</a> <a class="nav-link" href="/recordings/upload">Recording Upload</a>

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
SERENITY_NFS_EXPORT="${SERENITY_NFS_EXPORT:-10.5.1.5:/mnt/user/data}" SERENITY_NFS_EXPORT="${SERENITY_NFS_EXPORT:-10.5.30.5:/mnt/user/data}"
SERENITY_MOUNT_POINT="${SERENITY_MOUNT_POINT:-/mnt/serenity-data}" SERENITY_MOUNT_POINT="${SERENITY_MOUNT_POINT:-/mnt/serenity-data}"
SCHOOLHOUSE_DATA_ROOT="${SCHOOLHOUSE_DATA_ROOT:-/opt/doris-schoolhouse/data}" SCHOOLHOUSE_DATA_ROOT="${SCHOOLHOUSE_DATA_ROOT:-/opt/doris-schoolhouse/data}"
SERENITY_BACKUP_SUBDIR="${SERENITY_BACKUP_SUBDIR:-backups/nomad/doris-schoolhouse}" SERENITY_BACKUP_SUBDIR="${SERENITY_BACKUP_SUBDIR:-backups/nomad/doris-schoolhouse}"

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -133,7 +133,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -41,7 +41,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -88,7 +88,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -133,7 +133,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -160,7 +160,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points/search", "url": "http://10.5.30.6:6333/collections/knowledge_base/points/search",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -200,7 +200,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -41,7 +41,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -88,7 +88,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -133,7 +133,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -160,7 +160,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points/search", "url": "http://10.5.30.6:6333/collections/knowledge_base/points/search",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -200,7 +200,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -75,7 +75,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -75,7 +75,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -30,7 +30,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:8786/v1/audio/transcriptions", "url": "http://10.5.30.6:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -110,7 +110,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:8786/v1/audio/transcriptions", "url": "http://10.5.30.6:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -153,7 +153,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -23,7 +23,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:8786/v1/audio/transcriptions", "url": "http://10.5.30.7:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -94,7 +94,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:8786/v1/audio/transcriptions", "url": "http://10.5.30.7:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -134,7 +134,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -30,7 +30,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:8786/v1/audio/transcriptions", "url": "http://10.5.30.6:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -110,7 +110,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:8786/v1/audio/transcriptions", "url": "http://10.5.30.6:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -153,7 +153,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -88,7 +88,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -135,7 +135,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -88,7 +88,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -135,7 +135,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -170,7 +170,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -170,7 +170,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -39,7 +39,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -43,7 +43,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:8786/v1/audio/transcriptions", "url": "http://10.5.30.6:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -105,7 +105,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -162,7 +162,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -209,7 +209,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -43,7 +43,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:8786/v1/audio/transcriptions", "url": "http://10.5.30.7:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -105,7 +105,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -162,7 +162,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -209,7 +209,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -43,7 +43,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:8786/v1/audio/transcriptions", "url": "http://10.5.30.7:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -105,7 +105,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -162,7 +162,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:11434/v1/embeddings", "url": "http://10.5.30.7:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -209,7 +209,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -43,7 +43,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:8786/v1/audio/transcriptions", "url": "http://10.5.30.7:8786/v1/audio/transcriptions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -105,7 +105,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -162,7 +162,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.16:11434/v1/embeddings", "url": "http://10.5.30.7:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -209,7 +209,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -40,7 +40,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -82,7 +82,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -117,7 +117,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -49,7 +49,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -106,7 +106,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:11434/v1/embeddings", "url": "http://10.5.30.6:11434/v1/embeddings",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -153,7 +153,7 @@
{ {
"parameters": { "parameters": {
"method": "PUT", "method": "PUT",
"url": "http://10.5.1.6:6333/collections/knowledge_base/points", "url": "http://10.5.30.6:6333/collections/knowledge_base/points",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -26,7 +26,7 @@
{ {
"parameters": { "parameters": {
"method": "GET", "method": "GET",
"url": "http://10.5.1.6:5678/api/v1/executions", "url": "http://10.5.30.6:5678/api/v1/executions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -26,7 +26,7 @@
{ {
"parameters": { "parameters": {
"method": "GET", "method": "GET",
"url": "http://10.5.1.6:5678/api/v1/executions", "url": "http://10.5.30.6:5678/api/v1/executions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -23,7 +23,7 @@
{ {
"parameters": { "parameters": {
"method": "GET", "method": "GET",
"url": "http://10.5.1.6:5678/api/v1/workflows", "url": "http://10.5.30.6:5678/api/v1/workflows",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [
@@ -53,7 +53,7 @@
{ {
"parameters": { "parameters": {
"method": "GET", "method": "GET",
"url": "http://10.5.1.6:5678/api/v1/executions", "url": "http://10.5.30.6:5678/api/v1/executions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -26,7 +26,7 @@
{ {
"parameters": { "parameters": {
"method": "GET", "method": "GET",
"url": "http://10.5.1.6:5678/api/v1/executions", "url": "http://10.5.30.6:5678/api/v1/executions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -212,7 +212,7 @@
}, },
{ {
"parameters": { "parameters": {
"jsCode": "const d = $('Parse Heal Result').first().json;\nconst downList = d.stillDown.map(m => ` • ${m.mount}`).join('\\n');\nconst healedList = d.healed.length > 0\n ? `\\nPartially healed:\\n${d.healed.map(m => ' • ' + m.mount).join('\\n')}`\n : '';\nconst body = `NFS mount script ran but the following paths are still unavailable. Manual intervention required.\\n\\nStill down:\\n${downList}${healedList}\\n\\nCheck Serenity (10.5.1.5) is up and NFS service is running.`;\nreturn [{ json: { title: '🚨 NFS Down — Manual Fix Needed', message: body, priority: 9 } }];\n" "jsCode": "const d = $('Parse Heal Result').first().json;\nconst downList = d.stillDown.map(m => ` • ${m.mount}`).join('\\n');\nconst healedList = d.healed.length > 0\n ? `\\nPartially healed:\\n${d.healed.map(m => ' • ' + m.mount).join('\\n')}`\n : '';\nconst body = `NFS mount script ran but the following paths are still unavailable. Manual intervention required.\\n\\nStill down:\\n${downList}${healedList}\\n\\nCheck Serenity (10.5.30.5) is up and NFS service is running.`;\nreturn [{ json: { title: '🚨 NFS Down — Manual Fix Needed', message: body, priority: 9 } }];\n"
}, },
"id": "074b984f-7fc2-45bc-b97f-f5db4d8d589b", "id": "074b984f-7fc2-45bc-b97f-f5db4d8d589b",
"name": "Format Escalation", "name": "Format Escalation",

View File

@@ -76,7 +76,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "={{($env.LITELLM_BASE_URL || 'http://10.5.1.6:4000').replace(/\\/$/, '') + '/v1/chat/completions'}}", "url": "={{($env.LITELLM_BASE_URL || 'http://10.5.30.6:4000').replace(/\\/$/, '') + '/v1/chat/completions'}}",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -142,7 +142,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -142,7 +142,7 @@
{ {
"parameters": { "parameters": {
"method": "POST", "method": "POST",
"url": "http://10.5.1.6:4000/v1/chat/completions", "url": "http://10.5.30.6:4000/v1/chat/completions",
"sendHeaders": true, "sendHeaders": true,
"headerParameters": { "headerParameters": {
"parameters": [ "parameters": [

View File

@@ -144,7 +144,7 @@ cat ~/.ssh/n8n_watchdog.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/n8n_watchdog # paste this into n8n → Credentials → SSH (Private Key) cat ~/.ssh/n8n_watchdog # paste this into n8n → Credentials → SSH (Private Key)
``` ```
In n8n: Credentials → New → SSH (Private Key) → host `10.5.1.6`, user `truenas_admin`, paste private key. Name it `PD SSH`. In n8n: Credentials → New → SSH (Private Key) → host `10.5.30.6`, user `truenas_admin`, paste private key. Name it `PD SSH`.
Workflow 16 also runs `sudo docker restart` and the mount script over SSH. Add a NOPASSWD sudoers rule so it doesn't hang: Workflow 16 also runs `sudo docker restart` and the mount script over SSH. Add a NOPASSWD sudoers rule so it doesn't hang:
@@ -159,7 +159,7 @@ sudo visudo -f /etc/sudoers.d/n8n-watchdog
Create the `knowledge_base` collection before using the RAG workflows: Create the `knowledge_base` collection before using the RAG workflows:
```bash ```bash
curl -X PUT http://10.5.1.6:6333/collections/knowledge_base \ curl -X PUT http://10.5.30.6:6333/collections/knowledge_base \
-H 'Content-Type: application/json' \ -H 'Content-Type: application/json' \
-d '{ -d '{
"vectors": { "vectors": {
@@ -174,7 +174,7 @@ curl -X PUT http://10.5.1.6:6333/collections/knowledge_base \
### Pull nomic-embed-text into Ollama (required for workflows 02, 05, 08) ### Pull nomic-embed-text into Ollama (required for workflows 02, 05, 08)
```bash ```bash
curl http://10.5.1.6:11434/api/pull -d '{"name": "nomic-embed-text"}' curl http://10.5.30.6:11434/api/pull -d '{"name": "nomic-embed-text"}'
``` ```
### Paperless Webhook (required for workflows 03, 05, 17, and 19) ### Paperless Webhook (required for workflows 03, 05, 17, and 19)
@@ -387,7 +387,7 @@ Add these to `automation/.env` and expose them in the n8n `environment:` block:
|----------|----------|---------|---------| |----------|----------|---------|---------|
| `PAPERLESS_BASE_URL` | yes | `https://paperless.paccoco.com` | Paperless API/UI base URL | | `PAPERLESS_BASE_URL` | yes | `https://paperless.paccoco.com` | Paperless API/UI base URL |
| `PAPERLESS_API_TOKEN` | yes | none | Paperless API token; used as `Token ...` | | `PAPERLESS_API_TOKEN` | yes | none | Paperless API token; used as `Token ...` |
| `LITELLM_BASE_URL` | yes | `http://10.5.1.6:4000` | LiteLLM OpenAI-compatible endpoint | | `LITELLM_BASE_URL` | yes | `http://10.5.30.6:4000` | LiteLLM OpenAI-compatible endpoint |
| `LITELLM_API_KEY` | yes | none | LiteLLM key | | `LITELLM_API_KEY` | yes | none | LiteLLM key |
| `PAPERLESS_TRIAGE_MODEL` | no | `gpt-4o-mini` | Model for strict JSON triage | | `PAPERLESS_TRIAGE_MODEL` | no | `gpt-4o-mini` | Model for strict JSON triage |
| `PAPERLESS_TRIAGE_REVIEW_QUEUE_PATH` | yes | `/data/paperless_review.json` | Sanitized JSON queue path mounted for Doris Dashboard | | `PAPERLESS_TRIAGE_REVIEW_QUEUE_PATH` | yes | `/data/paperless_review.json` | Sanitized JSON queue path mounted for Doris Dashboard |

View File

@@ -36,7 +36,7 @@ _Last updated: 2026-05-18_
**What it does:** Two webhooks — `POST /rag/ingest` chunks + embeds text into Qdrant; `POST /rag/query` embeds query, searches Qdrant, asks LiteLLM, returns answer. **What it does:** Two webhooks — `POST /rag/ingest` chunks + embeds text into Qdrant; `POST /rag/query` embeds query, searches Qdrant, asks LiteLLM, returns answer.
**Pre-test checklist:** **Pre-test checklist:**
- [ ] `knowledge_base` collection exists in Qdrant (`GET http://10.5.1.6:6333/collections`) - [ ] `knowledge_base` collection exists in Qdrant (`GET http://10.5.30.6:6333/collections`)
- [ ] `nomic-embed-text` model pulled in Ollama (`ollama list` on PD) - [ ] `nomic-embed-text` model pulled in Ollama (`ollama list` on PD)
- [x] LiteLLM auth now reads `$env.LITELLM_API_KEY`; hardcoded key removed from repo artifacts - [x] LiteLLM auth now reads `$env.LITELLM_API_KEY`; hardcoded key removed from repo artifacts

View File

@@ -4,7 +4,7 @@
# Saves the transcript + notes response as a .md file alongside the recording. # Saves the transcript + notes response as a .md file alongside the recording.
# #
# Install: # Install:
# 1. Copy to PD: scp class-watcher.sh truenas_admin@10.5.1.6:/tmp/class-watcher.sh # 1. Copy to PD: scp class-watcher.sh truenas_admin@10.5.30.6:/tmp/class-watcher.sh
# 2. sudo mv /tmp/class-watcher.sh /mnt/data/class-watcher.sh # 2. sudo mv /tmp/class-watcher.sh /mnt/data/class-watcher.sh
# 3. sudo chmod +x /mnt/data/class-watcher.sh # 3. sudo chmod +x /mnt/data/class-watcher.sh
# 4. sudo crontab -e # 4. sudo crontab -e
@@ -19,7 +19,7 @@
# └── lecture-01-intro.md ← transcript + notes # └── lecture-01-intro.md ← transcript + notes
WATCH_DIR="/mnt/data/class-recordings" WATCH_DIR="/mnt/data/class-recordings"
WEBHOOK_URL="http://10.5.1.6:5678/webhook/class/upload" WEBHOOK_URL="http://10.5.30.6:5678/webhook/class/upload"
# Find all .wav files directly inside class subfolders (not in done/) # Find all .wav files directly inside class subfolders (not in done/)
find "$WATCH_DIR" -mindepth 2 -maxdepth 2 -name '*.wav' -type f | while read -r filepath; do find "$WATCH_DIR" -mindepth 2 -maxdepth 2 -name '*.wav' -type f | while read -r filepath; do