Files
my_bookmate/backend/.env.example
T
gavindiazandClaude Code fcdc3d4f93 feat: 站点访问密码登录(SITE_PASSWORD)+ 退出登录按钮
- 后端:新增 /api/auth/login 与 /api/auth/status;HMAC 签名令牌 30 天有效、
  服务重启不失效;设置 SITE_PASSWORD 后中间件拦截除登录/健康检查/CORS 预检
  外的所有 /api/*,未启用密码时行为不变(本地开发默认开放)
- 前端:AuthGate 登录层 + BookMate 风格全屏登录页(墨绿卡片、轨道环、书标金句);
  令牌存 localStorage 随请求带 X-Access-Token 头,401 自动清令牌重新弹出登录页;
  侧栏底部新增「退出登录」按钮(仅在启用密码时显示)
- 认证通过后才挂载主应用,避免未登录先发起数据请求

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-25 00:18:46 +08:00

39 lines
1.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ===== 运行与存储 =====
# 数据库 / 上传 / 数据目录(默认相对 backend 目录,可按需改为绝对路径)
DATABASE_URL=sqlite+aiosqlite:///./data/bookmate.db
UPLOAD_DIR=./uploads
DATA_DIR=./data
# 后端监听(云端部署时 API_HOST 保持 0.0.0.0,由 nginx 反代)
API_HOST=0.0.0.0
API_PORT=8000
# 站点访问密码:留空 = 不启用登录(本地开发默认);
# 设置后整个应用需要密码才能使用,前端会显示登录页(令牌 30 天有效)
SITE_PASSWORD=
# ===== 模型 Provider(至少配一个;也可启动后在网页「管理模型」里添加)=====
DEEPSEEK_API_KEY=
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-chat
OPENAI_API_KEY=
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o
ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=claude-sonnet-4-20250514
OPENROUTER_API_KEY=
OPENROUTER_MODEL=openrouter/auto
# ===== 向量检索 & 重排(OpenAI 兼容 API,如硅基流动 SiliconFlow)=====
# embedding_base_url: 支持 OpenAI 兼容 /embeddings 的端点前缀
EMBEDDING_BASE_URL=https://api.siliconflow.cn/v1
EMBEDDING_API_KEY=
EMBEDDING_MODEL=BAAI/bge-m3
# rerank: 硅基流动使用 /v1/rerank,OpenAI 不提供;留空则跳过重排
RERANK_BASE_URL=https://api.siliconflow.cn/v1
RERANK_API_KEY=
RERANK_MODEL=BAAI/bge-reranker-v2-m3
EMBEDDING_BATCH_SIZE=64