Adds a fully neutered public demo for menagerie.circuitforge.tech/peregrine that shows the Peregrine UI without exposing any personal data or real LLM inference. scripts/llm_router.py: - Block all inference when DEMO_MODE env var is set (1/true/yes) - Raises RuntimeError with a user-friendly "public demo" message app/app.py: - IS_DEMO constant from DEMO_MODE env var - Wizard gate bypassed in demo mode (demo/config/user.yaml pre-seeds a fake profile) - Demo banner in sidebar: explains read-only status + links to circuitforge.tech compose.menagerie.yml (new): - Separate Docker Compose project (peregrine-demo) on host port 8504 - Mounts demo/config/ and demo/data/ — isolated from personal instance - DEMO_MODE=true, no API keys, no /docs mount - Project name: peregrine-demo (run alongside personal instance) demo/config/user.yaml: - Generic "Demo User" profile, wizard_complete=true, no real personal info demo/config/llm.yaml: - All backends disabled (belt-and-suspenders alongside DEMO_MODE block) demo/data/.gitkeep: - staging.db is auto-created on first run, gitignored via demo/data/*.db .gitignore: add demo/data/*.db Caddy routes menagerie.circuitforge.tech/peregrine* → 8504 (demo instance). Personal Peregrine remains on 8502, unchanged.
51 lines
1.2 KiB
YAML
51 lines
1.2 KiB
YAML
# Demo user profile — pre-seeded for the public menagerie demo.
|
|
# No real personal information. All AI features are disabled (DEMO_MODE=true).
|
|
|
|
name: "Demo User"
|
|
email: "demo@circuitforge.tech"
|
|
phone: ""
|
|
linkedin: ""
|
|
career_summary: >
|
|
Experienced software engineer with a background in full-stack development,
|
|
cloud infrastructure, and data pipelines. Passionate about building tools
|
|
that help people navigate complex systems.
|
|
|
|
nda_companies: []
|
|
|
|
mission_preferences:
|
|
music: ""
|
|
animal_welfare: ""
|
|
education: ""
|
|
social_impact: "Want my work to reach people who need it most."
|
|
health: ""
|
|
|
|
candidate_voice: "Clear, direct, and human. Focuses on impact over jargon."
|
|
candidate_accessibility_focus: false
|
|
candidate_lgbtq_focus: false
|
|
|
|
tier: free
|
|
dev_tier_override: null
|
|
wizard_complete: true
|
|
wizard_step: 0
|
|
dismissed_banners: []
|
|
|
|
docs_dir: "/docs"
|
|
ollama_models_dir: "~/models/ollama"
|
|
vllm_models_dir: "~/models/vllm"
|
|
|
|
inference_profile: "remote"
|
|
|
|
services:
|
|
streamlit_port: 8501
|
|
ollama_host: localhost
|
|
ollama_port: 11434
|
|
ollama_ssl: false
|
|
ollama_ssl_verify: true
|
|
vllm_host: localhost
|
|
vllm_port: 8000
|
|
vllm_ssl: false
|
|
vllm_ssl_verify: true
|
|
searxng_host: searxng
|
|
searxng_port: 8080
|
|
searxng_ssl: false
|
|
searxng_ssl_verify: true
|