93d33ecb0c
SLICE-08 (devops-engineer): .env.example updated with Proxmox deployment vars (documented, sourced from ~/coreci/.env.secrets per D-026), PRAXIS_CLIENT_DIST for StaticFiles, PRAXIS_SCENARIO. config.json secrets.scopes already extended in SPECIFY (proxmox + voice scopes). SLICE-09 (devops-engineer): 10 bats test files (G-106 fix: 10 not 9) covering all proxmox scripts — 121 tests, 114 pass + 7 skipped (e2e). Mocked curl/pct/ssh; no live cluster needed for unit tests. SLICE-10 (devops-engineer): e2e-deploy.sh — sources secrets from both coreci + praxis .env.secrets, runs full deploy, verifies /health + client HTML serving. REQ-DEPLOY-15 covered. All 6 grill binding decisions addressed: G-101 MUST: GITEA_TOKEN baked into snippet (stage-snippet.sh) G-102 MUST: PRAXIS_DB_PATH env read (db/store.py + db/migrate.py) G-103 FIX: all 16 env vars in injection list (install-service.sh) G-104 FIX: health-check timeout 600s (health-check.sh) G-105 FIX: Dockerfile copy ordering (pyproject before source) G-106 FIX: bats test count = 10 REQ-DEPLOY-12, 14, 15 covered. All 20 REQ-IDs now implemented. ---ci--- project: praxis phase: 1 milestone: v0.2 status: execute slice: 08-10 wave: 4 ---/ci---
60 lines
3.3 KiB
Bash
60 lines
3.3 KiB
Bash
# Praxis — Environment Configuration (v0.2)
|
|
# Copy to `.env` and fill in real values.
|
|
# Voice-service keys are in .ciagent/.env.secrets (not this file).
|
|
# Proxmox deployment vars are sourced from ~/coreci/.ciagent/.env.secrets (D-026).
|
|
|
|
# ─── Voice services ──────────────────────────────────────────────────────────
|
|
# Deepgram Nova-3 ASR (D-013). Get from https://console.deepgram.com/
|
|
DEEPGRAM_API_KEY=
|
|
|
|
# Cartesia Sonic TTS (D-014, primary). Get from https://cartesia.ai/
|
|
CARTESIA_API_KEY=
|
|
|
|
# Ollama Cloud direct API (D-020). Get from https://ollama.com/ → Settings → API Keys
|
|
OLLAMA_API_KEY=
|
|
|
|
# ─── TTS selection (D-014) ────────────────────────────────────────────────────
|
|
# cartesia (default, cloud, ~120ms first-audio) | piper (self-hosted, ~80ms, R4 mitigation)
|
|
PRAXIS_TTS=cartesia
|
|
|
|
# ─── Ollama Cloud endpoints (D-020) ───────────────────────────────────────────
|
|
# Direct API mode (no local daemon). Pipecat's OLLamaLLMService uses the OpenAI-compatible path.
|
|
OLLAMA_BASE_URL=https://ollama.com/v1
|
|
OLLAMA_CHAT_URL=https://ollama.com/api/chat
|
|
# Role-play fast path (256K ctx, low-latency)
|
|
OLLAMA_ROLEPLAY_MODEL=gemma4:cloud
|
|
# Debrief + branch classifier (1M ctx, no-think mode for latency)
|
|
OLLAMA_DEBRIEF_MODEL=deepseek-v4-flash:cloud
|
|
|
|
# ─── Server ───────────────────────────────────────────────────────────────────
|
|
PRAXIS_HOST=0.0.0.0
|
|
PRAXIS_PORT=8789
|
|
# In Docker: /app/data/praxis.db (volume-mounted). Local dev: ./praxis.db
|
|
PRAXIS_DB_PATH=./praxis.db
|
|
PRAXIS_SCENARIOS_DIR=./scenarios
|
|
# Client dist directory (for FastAPI StaticFiles serving, D-023)
|
|
PRAXIS_CLIENT_DIST=client/dist
|
|
|
|
# ─── Deepgram live options (D-013) ────────────────────────────────────────────
|
|
DEEPGRAM_MODEL=nova-3
|
|
DEEPGRAM_LANGUAGE=en
|
|
DEEPGRAM_REGION=na
|
|
|
|
# ─── Cartesia voice (D-006 — one voice for role-play + mentor) ────────────────
|
|
CARTESIA_VOICE_ID=a3536a36-1d18-4efb-a95a-7c44b7b5e384
|
|
|
|
# ─── Proxmox LXC deployment (v0.2) ────────────────────────────────────────────
|
|
# These are sourced from ~/coreci/.ciagent/.env.secrets (D-026 — same cluster).
|
|
# Listed here for documentation; do NOT duplicate in .ciagent/.env.secrets.
|
|
# PROXMOX_API_URL=https://proxmox:8006/api2/json
|
|
# PROXMOX_API_TOKEN=root@pam!praxis-deploy=SECRET
|
|
# PROXMOX_NODE=ns1003845
|
|
# PROXMOX_STORAGE=local
|
|
# PROXMOX_TEMPLATE_VOLID=local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst
|
|
# PROXMOX_LXC_VMID=auto
|
|
# PROXMOX_TLS_SKIP_VERIFY=true
|
|
# PROXMOX_MEMORY_MB=4096
|
|
|
|
# ─── CI/Gitea (operational — not voice) ───────────────────────────────────────
|
|
# GITEA_TOKEN is provisioned in .ciagent/.env.secrets (not this file).
|
|
# PRAXIS_VERSION (git ref to deploy, default: main) |