skaldsong: scaffold compose stack + deploy playbook for ana-docker
Registry-pull pattern matching Worldtree: CI on vh/skaldsong builds and
pushes gitea.phasefinal.com/vh/skaldsong:<sha>, this playbook pulls +
recreates. SHA-pin only per current preference; no :latest moving-tag
advance yet (revisit once /health exercises Worldtree + Kokoro reach).
Host port 8300 (host) → 8000 (container). Persistent state under
/opt/docker/conf/skaldsong/{db,runs}.
Bifrost endpoint URL 10.250.50.70:8300 will need a paired
BIFROST_CLIENT_ALLOWED_HOSTS update on corviduo-dev Worldtree at first
deploy.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# skaldsong stack tunables. Copy to `.env` on ana-docker before deploying.
|
||||
#
|
||||
# The deploy playbook seeds `.env` from this template on first run only —
|
||||
# it won't clobber an existing `.env`.
|
||||
|
||||
# Image tag. CI's deploy.yaml pushes this SHA-pinned per commit:
|
||||
# gitea.phasefinal.com/vh/skaldsong:<sha>
|
||||
# Workflow passes the SHA via `scripts/elway ... --var ref=<sha>`; the
|
||||
# playbook substitutes that into this var before `docker compose up -d`.
|
||||
# For manual runs, set to a known good SHA (e.g. after a green CI run):
|
||||
SKALDSONG_IMAGE=gitea.phasefinal.com/vh/skaldsong:latest
|
||||
|
||||
# Host port exposing the wizard UI + Bifrost endpoint. Container always
|
||||
# listens on 8000 internally. 8300 is the canonical slot — adjacent to
|
||||
# the 8xxx web-app block (asset-engine:8200, sillytavern:8100, beszel:8090).
|
||||
SKALDSONG_PORT=8300
|
||||
|
||||
# Bind address for the host port. 0.0.0.0 = LAN-reachable.
|
||||
SKALDSONG_BIND=0.0.0.0
|
||||
|
||||
# Host paths for persistent state. db/ holds skaldsong-ui.db (SQLite,
|
||||
# wizard state + story rows); runs/ holds per-story generation pipeline
|
||||
# artifacts (spec, state, output, logs, manuscripts). Created with uid
|
||||
# 1000 (matches container's app user — no chown dance needed).
|
||||
SKALDSONG_DB_DIR=/opt/docker/conf/skaldsong/db
|
||||
SKALDSONG_RUNS_DIR_HOST=/opt/docker/conf/skaldsong/runs
|
||||
|
||||
# Worldtree integration ─────────────────────────────────────────────────
|
||||
|
||||
# Shared-secret Bearer for Worldtree's HS256 Bifrost JWT path. Same
|
||||
# value as Worldtree's WORLDTREE_SKALDSONG_USER_KEY env. Get from
|
||||
# worldtree-dev when standing up a fresh deploy; rotate via worldtree-dev's
|
||||
# /heimdall:rotate flow if compromise suspected.
|
||||
SKALDSONG_BIFROST_JWT_KEY=
|
||||
|
||||
# URL Worldtree uses to call BACK to skaldsong's Bifrost endpoint at
|
||||
# tool-dispatch time. Must match Worldtree's BIFROST_CLIENT_ALLOWED_HOSTS
|
||||
# entry. From ana-docker LAN: http://10.250.50.70:8300 (this port).
|
||||
# Coordinated update with worldtree-dev required if host:port changes.
|
||||
SKALDSONG_HOST_BIFROST_ENDPOINT_URL=http://10.250.50.70:8300
|
||||
|
||||
# URL skaldsong uses to call Worldtree's conversation API. From
|
||||
# ana-docker, corviduo-dev's IP:port LAN-direct.
|
||||
SKALDSONG_WORLDTREE_API_URL=http://10.250.50.152:8080
|
||||
|
||||
# CORS — comma-separated origins. Include the SPA's public hostname AND
|
||||
# any dev origins still in rotation.
|
||||
SKALDSONG_HOST_CORS_ORIGINS=http://10.250.50.70:8300
|
||||
|
||||
# TTS — Kokoro on irv-ml1, reached over WireGuard via ana-wg. Same URL
|
||||
# works fleet-wide; the WG tunnel handles the cross-site routing.
|
||||
SKALDSONG_TTS_ENGINE=kokoro
|
||||
SKALDSONG_TTS_BASE_URL=http://10.100.79.3:8193
|
||||
Reference in New Issue
Block a user