initial: blog-app snapshot

This commit is contained in:
omo
2026-08-17 17:11:27 +08:00
commit 65cb9d5ead
125 changed files with 14720 additions and 0 deletions

23
.env.example Normal file
View File

@@ -0,0 +1,23 @@
# blog-app environment variables (Stage 3)
# Copy this file to .env or export the variables you want to override.
# All variables are OPTIONAL — config.py has defaults for every entry below.
# Format: VAR=default_value # 用途 / 单位 / 范围
# --- Flask ---
FLASK_SECRET_KEY=dev-watchdog-secret-change-me # Flask session/CSRF secret. 生产必须改为随机长字符串 (>=32 bytes entropy).
# --- Database paths ---
BLOG_APP_DB_PATH=~/opencode-blog-showcase/data/projects.db # 主数据库 (projects/releases/issues). 绝对路径.
BLOG_APP_WATCHDOG_DB=~/opencode-blog-showcase/data/watchdog.db # 看门狗状态 DB. 绝对路径.
# --- LLM backend ---
BLOG_APP_LLM_URL=http://127.0.0.1:4000/v1 # OpenAI-compatible base URL. 走 litellm-proxy 本地网关.
BLOG_APP_LLM_MODEL=default # 模型名, 透传给 LLM_URL.
BLOG_APP_LLM_TIMEOUT=300 # LLM 单次请求超时. 单位: 秒. 范围 30-600.
# --- Rate limiter (in-memory, per-process) ---
BLOG_APP_RATE_LIMIT_MAX=3 # /api/analyze/stream 每 IP 窗口内最大请求数. 单位: 次. 范围 1-100.
BLOG_APP_RATE_LIMIT_WINDOW=60 # 限流窗口长度. 单位: 秒. 范围 10-3600.
# --- Watchdog ---
BLOG_APP_WATCHDOG_COOLDOWN=60 # /watchdog/run 手动触发后的冷却时间. 单位: 秒. 范围 0-3600.