From e0d1c44137f155807753f5163ab2eeb2e5960e27 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Mon, 7 Sep 2026 15:08:56 -0700 Subject: [PATCH] chore(fleet): repoint stale irv-ml1 refs (10.100.79.3 -> irv-ml1.nh3.internal) The 2026-09-06 headscale cutover retired irv-ml1's wg0 tunnel IP 10.100.79.3 (now 10.6.110.50). Repointed all LIVE canonical refs to the DNS NAME so the next move can't re-break them: homepage.href/siteMonitor labels across 25 stack composes, load-bearing env defaults (asset-engine INFERENCE_HOST, open-webui AUDIO_TTS_OPENAI_API_BASE_URL, skaldsong SKALDSONG_TTS_BASE_URL, zonos-gateway ZONOS_URL, dia), homepage services.yaml manual cards (Voice Design Studio, IRV-ML1), and servers/irv-ml1/ssh-target. Updated the stale 'WG tunnel' comment to the mesh reality. Left as-is: README curl-examples and .env.example comments (docs), and historical mentions in CLAUDE.md/persistent-memory. NOTE: applying the label repoints to the RUNNING irv-ml1 containers needs a recreate per service (labels read at creation); deployed .env values are separate from these canonical defaults. --- servers/irv-ml1/ssh-target | 2 +- stacks/ace-step/compose.yaml | 2 +- stacks/arbo/compose.yaml | 2 +- stacks/asset-engine/compose.yaml | 2 +- stacks/chatterbox/compose.yaml | 2 +- stacks/comfyui/compose.yaml | 2 +- stacks/cosyvoice/compose.yaml | 2 +- stacks/dia/compose.yaml | 4 ++-- stacks/fish-s2/compose.yaml | 2 +- stacks/homepage/conf/services.yaml | 16 ++++++++-------- stacks/index-tts/compose.yaml | 2 +- stacks/kokoro/compose.yaml | 2 +- stacks/kyutai-tts/compose.yaml | 2 +- stacks/mOrpheus/compose.yaml | 2 +- stacks/omnivoice/compose.yaml | 2 +- stacks/open-webui/compose.yaml | 2 +- stacks/parakeet/compose.yaml | 2 +- stacks/qwen3-tts/compose.yaml | 2 +- stacks/skaldsong/compose.yaml | 2 +- stacks/speaches/compose.yaml | 2 +- stacks/stable-audio-open/compose.yaml | 2 +- stacks/vibevoice/compose.yaml | 2 +- stacks/voxtral/compose.yaml | 2 +- stacks/waterland-studio/compose.yaml | 4 ++-- stacks/zonos-gateway/compose.yaml | 2 +- stacks/zonos/compose.yaml | 2 +- 26 files changed, 35 insertions(+), 35 deletions(-) diff --git a/servers/irv-ml1/ssh-target b/servers/irv-ml1/ssh-target index 97a4a69..efb6b54 100644 --- a/servers/irv-ml1/ssh-target +++ b/servers/irv-ml1/ssh-target @@ -1 +1 @@ -lkraven@10.100.79.3 +infra-ops@irv-ml1.nh3.internal diff --git a/stacks/ace-step/compose.yaml b/stacks/ace-step/compose.yaml index 79d2340..7df7eeb 100644 --- a/stacks/ace-step/compose.yaml +++ b/stacks/ace-step/compose.yaml @@ -71,4 +71,4 @@ services: - homepage.name=ACE-Step - homepage.icon=mdi-music-note-eighth - homepage.description=Open-source music generation — 4-min song in ~60s, lyrics + style prompts (irv-ml1) - - homepage.href=http://10.100.79.3:${ACE_STEP_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${ACE_STEP_PORT} diff --git a/stacks/arbo/compose.yaml b/stacks/arbo/compose.yaml index 96924f0..dd1e292 100644 --- a/stacks/arbo/compose.yaml +++ b/stacks/arbo/compose.yaml @@ -89,7 +89,7 @@ services: - homepage.name=Arbo - homepage.icon=mdi-image-multiple-outline - homepage.description=Catalog-driven ComfyUI engine (irv-ml1) - - homepage.href=http://10.100.79.3:${ARBO_PORT:-8200} + - homepage.href=http://irv-ml1.nh3.internal:${ARBO_PORT:-8200} volumes: arbo_db: diff --git a/stacks/asset-engine/compose.yaml b/stacks/asset-engine/compose.yaml index 0a2aabe..3a9466c 100644 --- a/stacks/asset-engine/compose.yaml +++ b/stacks/asset-engine/compose.yaml @@ -32,7 +32,7 @@ services: # App always listens on 8000 internally; host port is the only knob. - RUNTIME_DIR=/app/runtime - DB_URL=sqlite:////app/runtime/db/asset_engine.db - - INFERENCE_HOST=${INFERENCE_HOST:-10.100.79.3} + - INFERENCE_HOST=${INFERENCE_HOST:-irv-ml1.nh3.internal} # OIDC seam is empty in v1; populated in v2 when forward-auth lands. - OIDC_ISSUER=${OIDC_ISSUER:-} - OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-} diff --git a/stacks/chatterbox/compose.yaml b/stacks/chatterbox/compose.yaml index 97efad0..65c426a 100644 --- a/stacks/chatterbox/compose.yaml +++ b/stacks/chatterbox/compose.yaml @@ -71,4 +71,4 @@ services: - homepage.name=Chatterbox Turbo - homepage.icon=mdi-account-music-outline - homepage.description=Low-latency English TTS w/ voice cloning + paralinguistics (irv-ml1) - - homepage.href=http://10.100.79.3:${CHATTERBOX_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${CHATTERBOX_PORT} diff --git a/stacks/comfyui/compose.yaml b/stacks/comfyui/compose.yaml index 0013695..4c09071 100644 --- a/stacks/comfyui/compose.yaml +++ b/stacks/comfyui/compose.yaml @@ -94,7 +94,7 @@ services: - homepage.name=ComfyUI - homepage.icon=mdi-image-auto-adjust - homepage.description=Node-based SD/Flux inference (irv-ml1) - - homepage.href=http://10.100.79.3:${COMFYUI_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${COMFYUI_PORT} networks: tnet: diff --git a/stacks/cosyvoice/compose.yaml b/stacks/cosyvoice/compose.yaml index b833022..ce865bd 100644 --- a/stacks/cosyvoice/compose.yaml +++ b/stacks/cosyvoice/compose.yaml @@ -57,4 +57,4 @@ services: - homepage.name=CosyVoice - homepage.icon=mdi-account-voice - homepage.description=Expressive multilingual TTS + cloning (irv-ml1) - - homepage.href=http://10.100.79.3:${COSYVOICE_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${COSYVOICE_PORT} diff --git a/stacks/dia/compose.yaml b/stacks/dia/compose.yaml index e08a9da..1841df6 100644 --- a/stacks/dia/compose.yaml +++ b/stacks/dia/compose.yaml @@ -48,7 +48,7 @@ services: - homepage.name=Dia2 2B (HQ) - homepage.icon=mdi-account-voice - homepage.description=Dialogue TTS — Dia2 2B, highest quality (irv-ml1) - - homepage.href=http://10.100.79.3:${DIA2_2B_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${DIA2_2B_PORT} dia2-1b: image: local/dia:${DIA_TAG} @@ -78,4 +78,4 @@ services: - homepage.name=Dia2 1B (Streaming) - homepage.icon=mdi-account-voice - homepage.description=Dialogue TTS — Dia2 1B, streaming/faster (irv-ml1) - - homepage.href=http://10.100.79.3:${DIA2_1B_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${DIA2_1B_PORT} diff --git a/stacks/fish-s2/compose.yaml b/stacks/fish-s2/compose.yaml index 506ee36..c4399d4 100644 --- a/stacks/fish-s2/compose.yaml +++ b/stacks/fish-s2/compose.yaml @@ -102,4 +102,4 @@ services: - homepage.name=Fish Audio S2-Pro - homepage.icon=mdi-fish - homepage.description=Most expressive open-source TTS — 15k+ paralinguistic tags, voice cloning, 80+ languages (irv-ml1) - - homepage.href=http://10.100.79.3:${FISH_S2_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${FISH_S2_PORT} diff --git a/stacks/homepage/conf/services.yaml b/stacks/homepage/conf/services.yaml index edd24d5..e7e948b 100644 --- a/stacks/homepage/conf/services.yaml +++ b/stacks/homepage/conf/services.yaml @@ -61,9 +61,9 @@ # with the other studios rather than in Apps: it is a workspace you open and # produce something in, which is exactly what that group is for. - Voice Design Studio: - href: http://10.100.79.3:8216/ + href: http://irv-ml1.nh3.internal:8216/ icon: mdi-microphone - siteMonitor: http://10.100.79.3:8216/health + siteMonitor: http://irv-ml1.nh3.internal:8216/health description: Mint, audition and keeper-mark synthetic fleet voices — irv-ml1, CPU-only - Media: @@ -178,17 +178,17 @@ description: Proxmox Backup Server — DR mirror (pulls from PBS-ANA) - Infra - IRV: - # Irvine site — reachable only via WireGuard tunnel from NH3. - # The 10.100.79.0/24 subnet is the WG tunnel IP space; these cards - # only light up when the WG link is healthy. + # Irvine site — irv-ml1 folded into the headscale mesh 2026-09-06; the + # old 10.100.79.0/24 WG tunnel space is dormant. These cards resolve via + # irv-ml1.nh3.internal (-> 10.6.110.50) and light up over the mesh. - IRV-ML1: - ping: 10.100.79.3 + ping: irv-ml1.nh3.internal icon: mdi-brain description: GPU host (bare-metal, RTX 3090 + RTX A6000, native AI stacks) - IRV-ML1-Dockge: - href: http://10.100.79.3:5001 + href: http://irv-ml1.nh3.internal:5001 icon: si-docker - siteMonitor: http://10.100.79.3:5001 + siteMonitor: http://irv-ml1.nh3.internal:5001 description: Docker management (irv-ml1) - Infra - ESH: diff --git a/stacks/index-tts/compose.yaml b/stacks/index-tts/compose.yaml index b9e6d0f..d46886d 100644 --- a/stacks/index-tts/compose.yaml +++ b/stacks/index-tts/compose.yaml @@ -60,4 +60,4 @@ services: - homepage.name=IndexTTS-2 - homepage.icon=mdi-account-music - homepage.description=Emotion-controllable TTS w/ voice cloning (irv-ml1) - - homepage.href=http://10.100.79.3:${INDEX_TTS_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${INDEX_TTS_PORT} diff --git a/stacks/kokoro/compose.yaml b/stacks/kokoro/compose.yaml index 7ad72fb..5100b1e 100644 --- a/stacks/kokoro/compose.yaml +++ b/stacks/kokoro/compose.yaml @@ -65,4 +65,4 @@ services: - homepage.name=Kokoro - homepage.icon=mdi-microphone-message - homepage.description=Low-latency English TTS w/ streaming (irv-ml1) - - homepage.href=http://10.100.79.3:${KOKORO_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${KOKORO_PORT} diff --git a/stacks/kyutai-tts/compose.yaml b/stacks/kyutai-tts/compose.yaml index 5228174..22dedfc 100644 --- a/stacks/kyutai-tts/compose.yaml +++ b/stacks/kyutai-tts/compose.yaml @@ -55,4 +55,4 @@ services: - homepage.name=Kyutai TTS - homepage.icon=mdi-radio-tower - homepage.description=Ultra-low-latency streaming TTS — 220 ms on solo GPU, EN/FR (irv-ml1) - - homepage.href=http://10.100.79.3:${KYUTAI_TTS_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${KYUTAI_TTS_PORT} diff --git a/stacks/mOrpheus/compose.yaml b/stacks/mOrpheus/compose.yaml index 707d17e..17cf2bd 100644 --- a/stacks/mOrpheus/compose.yaml +++ b/stacks/mOrpheus/compose.yaml @@ -86,7 +86,7 @@ services: - homepage.name=mOrpheus TTS - homepage.icon=mdi-account-voice - homepage.description=Uncensored Orpheus TTS (baddy + zero-shot clone), real-time, irv-ml1 - - homepage.href=http://10.100.79.3:${MORPHEUS_TTS_PORT:-8299}/docs + - homepage.href=http://irv-ml1.nh3.internal:${MORPHEUS_TTS_PORT:-8299}/docs networks: [morpheus-net] networks: diff --git a/stacks/omnivoice/compose.yaml b/stacks/omnivoice/compose.yaml index 5b34f0b..e0040ae 100644 --- a/stacks/omnivoice/compose.yaml +++ b/stacks/omnivoice/compose.yaml @@ -53,4 +53,4 @@ services: - homepage.name=OmniVoice - homepage.icon=mdi-account-voice - homepage.description=Zero-shot multilingual voice-cloning TTS, OpenAI /v1/audio/speech (irv-ml1, 3090) - - homepage.href=http://10.100.79.3:${OMNIVOICE_PORT}/docs + - homepage.href=http://irv-ml1.nh3.internal:${OMNIVOICE_PORT}/docs diff --git a/stacks/open-webui/compose.yaml b/stacks/open-webui/compose.yaml index 1af61ed..2b468f3 100644 --- a/stacks/open-webui/compose.yaml +++ b/stacks/open-webui/compose.yaml @@ -87,7 +87,7 @@ services: # --- TTS (G4): direct at the dots gateway, engine + base URL settled; # model/voice are tts-dev's to tune. Seat is LAN/WG-only, no auth. --- - AUDIO_TTS_ENGINE=${AUDIO_TTS_ENGINE:-openai} - - AUDIO_TTS_OPENAI_API_BASE_URL=${AUDIO_TTS_OPENAI_API_BASE_URL:-http://10.100.79.3:8198/v1} + - AUDIO_TTS_OPENAI_API_BASE_URL=${AUDIO_TTS_OPENAI_API_BASE_URL:-http://irv-ml1.nh3.internal:8198/v1} - AUDIO_TTS_OPENAI_API_KEY=${AUDIO_TTS_OPENAI_API_KEY:-sk-no-auth-lan-seat} - AUDIO_TTS_MODEL=${AUDIO_TTS_MODEL:-tts-1} - AUDIO_TTS_VOICE=${AUDIO_TTS_VOICE:-nova} diff --git a/stacks/parakeet/compose.yaml b/stacks/parakeet/compose.yaml index 2500202..ae8aef8 100644 --- a/stacks/parakeet/compose.yaml +++ b/stacks/parakeet/compose.yaml @@ -50,4 +50,4 @@ services: - homepage.name=Parakeet ASR - homepage.icon=mdi-microphone - homepage.description=Parakeet-TDT speech-to-text via sherpa-onnx (irv-ml1) - - homepage.href=http://10.100.79.3:${PARAKEET_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${PARAKEET_PORT} diff --git a/stacks/qwen3-tts/compose.yaml b/stacks/qwen3-tts/compose.yaml index 8589eee..3e29873 100644 --- a/stacks/qwen3-tts/compose.yaml +++ b/stacks/qwen3-tts/compose.yaml @@ -80,4 +80,4 @@ services: - homepage.name=Qwen3-TTS - homepage.icon=mdi-account-voice - homepage.description=Multilingual TTS with English-first emotion (irv-ml1) - - homepage.href=http://10.100.79.3:${QWEN3_TTS_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${QWEN3_TTS_PORT} diff --git a/stacks/skaldsong/compose.yaml b/stacks/skaldsong/compose.yaml index ca659ae..3470400 100644 --- a/stacks/skaldsong/compose.yaml +++ b/stacks/skaldsong/compose.yaml @@ -71,7 +71,7 @@ services: # TTS — Kokoro on irv-ml1, reached over WireGuard via ana-wg from # ana-docker. Same URL works fleet-wide. SKALDSONG_TTS_ENGINE: "${SKALDSONG_TTS_ENGINE:-kokoro}" - SKALDSONG_TTS_BASE_URL: "${SKALDSONG_TTS_BASE_URL:-http://10.100.79.3:8193}" + SKALDSONG_TTS_BASE_URL: "${SKALDSONG_TTS_BASE_URL:-http://irv-ml1.nh3.internal:8193}" # VibeVoice secondary TTS engine (issue #73, added 2026-05-27). # Same fleet (irv-ml1) as Kokoro, separate port 8194. Encode-once diff --git a/stacks/speaches/compose.yaml b/stacks/speaches/compose.yaml index 01a3550..3cb473e 100644 --- a/stacks/speaches/compose.yaml +++ b/stacks/speaches/compose.yaml @@ -80,4 +80,4 @@ services: - homepage.name=Speaches ASR - homepage.icon=mdi-text-to-speech - homepage.description=OpenAI-compatible faster-whisper STT, verbose_json (irv-ml1) - - homepage.href=http://10.100.79.3:${SPEACHES_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${SPEACHES_PORT} diff --git a/stacks/stable-audio-open/compose.yaml b/stacks/stable-audio-open/compose.yaml index c64179f..58eca8b 100644 --- a/stacks/stable-audio-open/compose.yaml +++ b/stacks/stable-audio-open/compose.yaml @@ -58,4 +58,4 @@ services: - homepage.name=Stable Audio Open - homepage.icon=mdi-waveform - homepage.description=Diffusion SFX/ambience generator — up to 47s at 44.1 kHz (irv-ml1) - - homepage.href=http://10.100.79.3:${SAO_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${SAO_PORT} diff --git a/stacks/vibevoice/compose.yaml b/stacks/vibevoice/compose.yaml index f488551..95a327b 100644 --- a/stacks/vibevoice/compose.yaml +++ b/stacks/vibevoice/compose.yaml @@ -65,4 +65,4 @@ services: - homepage.name=VibeVoice - homepage.icon=mdi-podcast - homepage.description=Long-form / multi-speaker dialogue TTS (irv-ml1) - - homepage.href=http://10.100.79.3:${VIBEVOICE_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${VIBEVOICE_PORT} diff --git a/stacks/voxtral/compose.yaml b/stacks/voxtral/compose.yaml index 6964df2..a16c315 100644 --- a/stacks/voxtral/compose.yaml +++ b/stacks/voxtral/compose.yaml @@ -83,4 +83,4 @@ services: - homepage.name=Voxtral TTS - homepage.icon=mdi-translate - homepage.description=Mistral 4B multilingual streaming TTS — 70 ms latency, voice cloning (irv-ml1) - - homepage.href=http://10.100.79.3:${VOXTRAL_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${VOXTRAL_PORT} diff --git a/stacks/waterland-studio/compose.yaml b/stacks/waterland-studio/compose.yaml index 463fa3e..0f13a12 100644 --- a/stacks/waterland-studio/compose.yaml +++ b/stacks/waterland-studio/compose.yaml @@ -86,8 +86,8 @@ services: - homepage.name=Waterland Studio - homepage.icon=mdi-watercolor - homepage.description=Watercolour plate + reveal animation renderer (irv-ml1, A6000) - - homepage.href=http://10.100.79.3:${WLS_PORT:-8410}/ - - homepage.siteMonitor=http://10.100.79.3:${WLS_PORT:-8410}/api/health + - homepage.href=http://irv-ml1.nh3.internal:${WLS_PORT:-8410}/ + - homepage.siteMonitor=http://irv-ml1.nh3.internal:${WLS_PORT:-8410}/api/health volumes: waterland_studio_data: {} diff --git a/stacks/zonos-gateway/compose.yaml b/stacks/zonos-gateway/compose.yaml index ea13437..25c35cc 100644 --- a/stacks/zonos-gateway/compose.yaml +++ b/stacks/zonos-gateway/compose.yaml @@ -13,7 +13,7 @@ services: - "host.docker.internal:host-gateway" environment: # Default targets the Zonos server on the same host. For a non-colocated - # or dev target, override in .env (e.g. ZONOS_URL=http://10.100.79.3:1920). + # or dev target, override in .env (e.g. ZONOS_URL=http://irv-ml1.nh3.internal:1920). ZONOS_URL: ${ZONOS_URL:-http://host.docker.internal:1920} PORT: ${PORT:-8890} DEFAULT_VOICE: ${DEFAULT_VOICE:-Cora} diff --git a/stacks/zonos/compose.yaml b/stacks/zonos/compose.yaml index 5466e0a..21e42d4 100644 --- a/stacks/zonos/compose.yaml +++ b/stacks/zonos/compose.yaml @@ -62,7 +62,7 @@ services: - homepage.name=Zonos - homepage.icon=mdi-waveform - homepage.description=Expressive multilingual TTS + cloning, 44kHz (Gradio eval, irv-ml1) - - homepage.href=http://10.100.79.3:${ZONOS_PORT} + - homepage.href=http://irv-ml1.nh3.internal:${ZONOS_PORT} # OpenAI-ish REST adapter (POST /v1/audio/speech) that asset-engine # routes to — upstream Zonos has no REST surface, only Gradio + SDK.