Files
ai-kefu-admin/admin/.env.production
T
浅念 4f38522759 feat: admin生产服务(/admin SPA fallback+health分级) + Docker两阶段构建 + 生产compose
- app/main.py: AdminSPA 纯 ASGI 挂载 /admin(dist 存在=StaticFiles html
  + SPA fallback(非 /admin/api 的 404 回 index.html 200);缺失=503 说明页);
  ADMIN_DIST env 覆盖、请求期现势解析(构建后不重启生效/测试可注入)。
  /health 分级: {status, tenants:[{slug,status,engine_ok}], domains}——
  懒建未就绪 engine_ok=None 不探库;单租户库损坏只 degraded 仍 200,
  不让 healthcheck 杀容器。
- host_middleware: /admin 与 /admin/ 前缀豁免租户解析(平台面;/admin-evil
  仍 404,前缀精确到斜杠)。
- admin: .env.production VITE_BASE_URL=/admin/(产物资源引用与挂载同源,
  单一事实源,不靠构建期 env 注入);package.json 钉 packageManager
  pnpm@10.7.1(corepack 与本地同版本)。
- Dockerfile 两阶段: node:20-alpine 构建 admin/dist(corepack 按清单钉版)
  → python:3.13-slim 只带运行时(app/static/seed_profiles/scripts+dist,
  含 tzdata 使 TZ 生效)。
- docker-compose: 生产编排(8018/env_file 可缺省/TZ/数据 bind mount/
  mem_limit 768m/日志轮转/python urllib healthcheck/restart)。
- .dockerignore 防泄(.env 不进镜像)+ .gitattributes 钉部署文件 LF。
- tests/test_admin_serving.py: 假 dist 夹具 7 例(服务/fallback 边界/
  Host 豁免/缺失降级/health 分级含坏库 degraded)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 08:22:26 +08:00

33 lines
1.2 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.
# 【生产】环境变量
#
# 说明:模板原把通用变量放 .env(全模式加载),但根 .gitignore 的
# `.env` 规则会误伤 admin/.env——入库文件只有 .env.development /
# .env.production 两份(Phase 3 终审 I-2 收口)。通用变量因此按
# "两份都写"纪律维护:改通用项时两文件同步改。
# 版本号(vite.config.ts 的 __APP_VERSION__ define)
VITE_VERSION = 0.1.0
# 应用部署基础路径(如部署在子目录 /admin,则设置为 /admin/)
# Phase 4: 后端把 admin/dist 挂载在 /admin(见 app/main.py AdminSPA),
# 生产产物资源引用必须同前缀;dev 保持 .env.development 的 /(走 Vite 代理)
VITE_BASE_URL = /admin/
# 权限模式【 frontend 前端模式 / backend 后端模式 】
VITE_ACCESS_MODE = frontend
# 跨域请求时是否携带 Cookie(开启前需确保后端支持)
VITE_WITH_CREDENTIALS = false
# 是否打开路由信息
VITE_OPEN_ROUTE_INFO = false
# 锁屏加密密钥(锁屏入口已摘除——Phase 3 终审 M-1;密钥保留防遗留代码异常)
VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro
# API 地址前缀(生产由反代把 /api 与 /static 指向后端,前端同源相对路径)
VITE_API_URL = /
# Delete console
VITE_DROP_CONSOLE = true