e0d1c44137
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.
ace-step
ACE-Step 1.5 — Apache 2.0 open-source music generation foundation model. Hybrid diffusion + LLM. Generates lyric-aware multi-minute songs (vocals + instrumentation).
| host | irv-ml1 |
| port | 8210 |
| GPU | A6000 (device_ids: ["1"]) |
| VRAM | ~10-12 GB during inference |
| upstream | https://github.com/ace-step/ACE-Step |
| license | Apache 2.0 |
API surface
infer-api.py (FastAPI) exposes:
GET /health— liveness, returns 200 once the process is up (model is lazy-loaded on first /generate).POST /generate— body:ACEStepInputPydantic model with ~27 params (prompt, lyrics, audio_duration, guidance_scale, etc.). Returns{status, output_path, message}.
The container does NOT expose the Gradio UI — we override the upstream
default python3 acestep/gui.py with python3 infer-api.py. If you
want the Gradio UI for ad-hoc experimentation, run a one-off:
ssh irv-ml1 'docker exec -it ace-step python3 acestep/gui.py --server_name 0.0.0.0 --port 7865'
…and port-forward 7865 to your laptop.
Deploy
scripts/elway irv-ml1 --playbook playbooks/deploy-ace-step.yaml
Idempotent. Cold build is ~10-15 min (CUDA + torch + transformers +
spacy + audio deps). First /generate triggers the model download
(~5-10 GB) and warmup (~30-60 s).
Tunables
See .env.example — copy to .env on the host (lives at
/opt/docker/compose/ace-step/.env, gitignored). Common knobs:
ACE_STEP_SHA— pin upstream commitACE_STEP_GPU_DEVICES— GPU indexACE_STEP_*_DIR— bind-mount paths under/worktank/ace-step/