From 217319eabc0dad1dbf5704586bf1b6edd95c3e1b Mon Sep 17 00:00:00 2001 From: Aska Date: Wed, 12 Aug 2026 17:46:23 +0800 Subject: [PATCH] chore: add .env.example config template with all options - Full config template with comments for every setting - start.sh auto-loads .env if present - Covers: LLM, DB, Auth, IoT, Voice, Platform Bridge, Search, CORS, WS --- .env.example | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ start.sh | 8 +++++ 2 files changed, 92 insertions(+) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..013465e --- /dev/null +++ b/.env.example @@ -0,0 +1,84 @@ +# ============================================ +# Cyrene v2 配置文件 (.env) +# 复制为 .env 后修改 +# ============================================ + +# ---- 运行环境 ---- +ENV=development +LOG_LEVEL=debug + +# ---- 服务器 ---- +PORT=8080 +HOST=0.0.0.0 + +# ---- 数据库 (PostgreSQL + pgvector) ---- +POSTGRES_HOST=localhost +POSTGRES_PORT=5432 +POSTGRES_USER=cyrene +POSTGRES_PASSWORD=cyrene_pass +POSTGRES_DB=cyrene_ai + +# ---- LLM API ---- +LLM_API_URL=https://api.openai.com/v1 +LLM_API_KEY=sk-xxxxx +LLM_MODEL=gpt-4o +LLM_FALLBACK_MODEL=gpt-4o-mini + +# ---- 记忆嵌入 (可选) ---- +# 不配置时使用本地 n-gram 文本相似度 +# EMBEDDING_API_URL=http://localhost:11434/v1 +# EMBEDDING_MODEL=bge-m3 + +# ---- 认证 ---- +JWT_SECRET=change-me-to-a-random-string-at-least-32-characters-long +ADMIN_USERNAME=admin +ADMIN_PASSWORD=admin12345 +REGISTRATION_ENABLED=true + +# ---- IoT 设备提供者 ---- +# mock = 8 个模拟智能家居设备 (开发测试用) +# none = 禁用 IoT +# 未来: homeassistant / mqtt +IOT_PROVIDER=mock + +# ---- 语音服务 ---- +# DASHSCOPE_API_KEY=sk-xxxxx +TTS_PROVIDER=edge-tts +ASR_PROVIDER=dashscope + +# ---- 后台思考 ---- +ENABLE_BACKGROUND_THINKING=true +THINK_INTERVAL_SEC=300 +THINK_SILENCE_TIMEOUT_SEC=120 + +# ---- 平台桥接 ---- +# QQ (OBv11 协议) +# QQ_OBV11_WS_URL=ws://localhost:3001 +# QQ_ACCESS_TOKEN= +# QQ_BOT_QQ= + +# Telegram +# TG_BOT_TOKEN= + +# Discord +# DC_BOT_TOKEN= + +# Webhook +# WEBHOOK_LISTEN_ADDR=:9000 + +# ---- 搜索 (SearXNG) ---- +# SEARXNG_URL=http://localhost:8088 + +# ---- 数据目录 ---- +DATA_DIR=./data +PERSONA_DIR=./internal/persona + +# ---- 跨域 ---- +ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000 + +# ---- WebSocket ---- +WS_MAX_CONNECTIONS=1000 +SESSION_IDLE_TIMEOUT_MIN=30 + +# ---- 时区 ---- +TZ=Asia/Shanghai diff --git a/start.sh b/start.sh index bd40d5a..9e89d32 100755 --- a/start.sh +++ b/start.sh @@ -6,6 +6,14 @@ cd "$(dirname "$0")" # Cyrene v2 — 一键启动脚本 # ============================================ +# 自动加载 .env(如果存在) +if [ -f .env ]; then + set -a; source .env; set +a + echo "[cyrene] 已加载 .env 配置" +else + echo "[cyrene] 未找到 .env,使用默认值。可复制 .env.example: cp .env.example .env" +fi + # 默认环境变量(可通过 .env 或命令行覆盖) export LLM_API_KEY="${LLM_API_KEY:-sk-test}" export JWT_SECRET="${JWT_SECRET:-cyrene-v2-dev-secret-key-32bytes!!}"