Files
lingxi/.env.example
T
Stev_Wang 2c8dd5040f
ci / 质量门禁 (push) Canceled after 0s
fix(dev): 修复演示会话导致的登录回跳并默认输出运行日志
背景:
- dev.sh 会把仓库根 .env 的变量全部导出给子进程,其中
  VITE_PUBLIC_DEMO_SESSION=true 被 Vite 读取后启用演示会话:登录写入
  假 token,进入 /users 后真实接口 401、刷新失败即清会话回登录页;
- 后台启动后终端看不到运行日志,不利于排查。

改动:
- dev.sh 不再向子进程导出 VITE_*,前端环境仍由 Vite 自己管理;
- .env.example 的 VITE_PUBLIC_DEMO_SESSION 默认改为 false(本地
  .env / .env.local 同步);
- ./dev.sh 默认启动后前台跟随日志(Ctrl+C 停止全部),新增
  -d/--detach 后台模式;非交互环境仍默认后台;
- README 同步脚本用法。

影响面:
- 仅开发脚本与示例环境;生产与 CI 不涉及;演示会话仍可通过显式
  VITE_PUBLIC_DEMO_SESSION=true 开启。

回滚方式:
- 回滚本提交即恢复后台启动与 VITE_* 透传行为。

验证证据:
- 浏览器登录会真实请求 POST /api/v1/auth/login,错误账号返回
  「账号或密码不正确」;
- 真实账号登录后停留在 /users 并加载 9 条成员,不再回跳登录页;
- ./dev.sh -f 持续输出 api/web/worker 日志,SIGTERM 后服务与端口
  全部释放;
- bash -n dev.sh 与 pnpm format:check 通过。
2026-11-03 09:45:09 +08:00

55 lines
2.0 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.
# 灵犀 · 环境变量示例(入库,禁止写真实密钥)
# 使用:cp .env.example .env.local(工程规范 09 ENV-09)
# 注意:本地 PostgreSQL/Redis 复用本机已有 Docker 服务(127.0.0.1:5432 / 6379);
# 对象存储为公网 RustFS,本地真实值只写入 .env.local / .env(已 gitignore)。
# ---------- 运行环境 ----------
NODE_ENV=development
LOG_LEVEL=debug
# ---------- 数据库(PostgreSQL 18) ----------
DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/lingxi?schema=public
# ---------- Redis(7.4) ----------
REDIS_URL=redis://127.0.0.1:6379
# ---------- 对象存储(RustFS,S3 协议;A0 统一使用 lingxi-dev 桶) ----------
S3_ENDPOINT=https://oss.xinsenidea.com
S3_REGION=us-east-1
S3_BUCKET_ASSETS=lingxi-dev
S3_BUCKET_RENDERS=lingxi-dev
S3_BUCKET_TEMP=lingxi-dev
S3_ACCESS_KEY=<rustfs-access-key>
S3_SECRET_KEY=<rustfs-secret-key>
# ---------- 认证(本地 dev 值,生产由密钥管理注入;密钥至少 32 位) ----------
JWT_ACCESS_SECRET=dev-only-jwt-access-secret-change-me-32
JWT_REFRESH_SECRET=dev-only-jwt-refresh-secret-change-me-32
# access / refresh 有效期(秒):15 分钟 / 7 天
JWT_ACCESS_TTL_SECONDS=900
JWT_REFRESH_TTL_SECONDS=604800
# 登录失败阈值与锁定时长(分钟内累计失败达阈值即锁定)
AUTH_MAX_LOGIN_FAILURES=5
AUTH_LOCK_MINUTES=15
# ---------- API ----------
PORT=3000
HOST=0.0.0.0
WEB_ORIGIN=http://127.0.0.1:5173,http://localhost:5173
MAX_UPLOAD_MB=500
# ---------- Worker ----------
QUEUE=default
WORKER_CONCURRENCY=2
# ---------- 前端(只能暴露 VITE_PUBLIC_* 前缀,ENV-07) ----------
VITE_PUBLIC_API_BASE_URL=http://127.0.0.1:3000/api/v1
# A0 登录壳没有接后端鉴权,置 true 时登录页写入本地演示会话以便查看布局;A1 接入真实登录后删除。
VITE_PUBLIC_DEMO_SESSION=false
# ---------- 可观测 ----------
OTEL_EXPORTER_OTLP_ENDPOINT=
# ---------- 功能开关 ----------
FEATURE_VIDEO=false