From 53f343ce76e33bca4d3892bdb1aee6ea8de13def Mon Sep 17 00:00:00 2001 From: drjones Date: Wed, 2 Sep 2026 21:30:21 -0700 Subject: [PATCH] Robo Pest: 24/7 hosting on CT144 nginx + auth token on both APIs (X-Auth-Token). App served at robopest-app.thetempleofdoom.com --- apps/robo-pest/robopest-0.1.0.ehpk | Bin 41935 -> 41986 bytes apps/robo-pest/server/stt_relay.py | 17 +++++++++++++++-- apps/robo-pest/src/main.ts | 5 +++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/robo-pest/robopest-0.1.0.ehpk b/apps/robo-pest/robopest-0.1.0.ehpk index 3a494c96e9aaf7144b860e684a6792e520ea33c9..b2f6235099a25582c123741ce1f0417f1156d3bc 100644 GIT binary patch delta 38062 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 {"text": "..."} -GET /health -> {"status": "ok", "model": ...} +GET /health -> {"status": "ok", ...} + +Auth: X-Auth-Token header required (set via STT_AUTH_TOKEN env var). +Health endpoint is open (no secrets). """ import io import os import struct import numpy as np -from fastapi import FastAPI, Request +from fastapi import FastAPI, Request, HTTPException from faster_whisper import WhisperModel MODEL_NAME = os.environ.get("STT_MODEL", "small.en") DEVICE = os.environ.get("STT_DEVICE", "cuda") +AUTH_TOKEN = os.environ.get("STT_AUTH_TOKEN", "") app = FastAPI() model = WhisperModel(MODEL_NAME, device=DEVICE, compute_type="float16") +def check_auth(request: Request): + if not AUTH_TOKEN: + return + token = request.headers.get("X-Auth-Token", "") + if token != AUTH_TOKEN: + raise HTTPException(status_code=401, detail="bad token") + + def pcm16_to_float32(data: bytes) -> np.ndarray: n = len(data) // 2 ints = struct.unpack(f"<{n}h", data[: n * 2]) @@ -31,6 +43,7 @@ def health(): @app.post("/transcribe") async def transcribe(request: Request): + check_auth(request) body = await request.body() if not body: return {"text": ""} diff --git a/apps/robo-pest/src/main.ts b/apps/robo-pest/src/main.ts index 8026d18..b82b208 100644 --- a/apps/robo-pest/src/main.ts +++ b/apps/robo-pest/src/main.ts @@ -10,6 +10,7 @@ import { TextContainerProperty, CreateStartUpPageContainer } from '@evenrealitie // Endpoints — public via Cloudflare fleet tunnel (work anywhere); LAN fallbacks in comments const STT_URL = 'https://robopest.thetempleofdoom.com/transcribe' const WORKBRAIN_URL = 'https://pestcontroller.thetempleofdoom.com/api/chat' +const AUTH_TOKEN = 'rp-EiluwonVC5JiqfNtec1253LPPvNvxLXV' // LAN: STT http://10.30.20.5:8765/transcribe | WorkBrain http://10.30.20.249/api/chat interface AskResult { @@ -20,7 +21,7 @@ interface AskResult { async function askWorkbrain(query: string, convId: string): Promise { const res = await fetch(WORKBRAIN_URL, { method: 'POST', - headers: { 'Content-Type': 'application/json' }, + headers: { 'Content-Type': 'application/json', 'X-Auth-Token': AUTH_TOKEN }, body: JSON.stringify({ query, conv_id: convId }), }) const data = await res.json() @@ -36,7 +37,7 @@ async function askWorkbrain(query: string, convId: string): Promise { async function transcribe(pcm: ArrayBuffer): Promise { const res = await fetch(STT_URL, { method: 'POST', - headers: { 'Content-Type': 'application/octet-stream' }, + headers: { 'Content-Type': 'application/octet-stream', 'X-Auth-Token': AUTH_TOKEN }, body: pcm, }) const data = await res.json()