From 2f200fc9d92c15a792fca10b4a19c381cd1f169d Mon Sep 17 00:00:00 2001 From: Stev_Wang <304865932@qq.com> Date: Mon, 2 Nov 2026 18:32:38 +0800 Subject: [PATCH] =?UTF-8?q?docs(infra):=20=E6=8E=A5=E5=85=A5=E5=85=AC?= =?UTF-8?q?=E7=BD=91=20RustFS=20=E5=AF=B9=E8=B1=A1=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景:项目方提供公网 RustFS(https://oss.xinsenidea.com,桶 lingxi-dev)。 改动:.env.example 填入 endpoint / 桶名占位;README 与 A0 报告记录 对象存储接入方式与验证结果;真实密钥仅保存在本地 .env / .env.local。 影响面:环境变量样例与文档,无运行时代码变更。 回滚方式:还原 .env.example 与文档即可。 验证:list buckets、HEAD bucket、PUT/GET/DELETE 探针对象均成功; format:check、lint、typecheck、test 全绿。 --- .env.example | 16 ++++++++-------- README.md | 2 +- .../灵犀_A0工程骨架与契约基线_实施报告_V0.1.md | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.env.example b/.env.example index de0e266..e4f6c26 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ # 灵犀 · 环境变量示例(入库,禁止写真实密钥) # 使用:cp .env.example .env.local(工程规范 09 ENV-09) # 注意:本地 PostgreSQL/Redis 复用本机已有 Docker 服务(127.0.0.1:5432 / 6379); -# 对象存储待接入公网 RustFS,待提供 endpoint 与凭据后填写。 +# 对象存储为公网 RustFS,本地真实值只写入 .env.local / .env(已 gitignore)。 # ---------- 运行环境 ---------- NODE_ENV=development @@ -13,14 +13,14 @@ DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/lingxi?schema=public # ---------- Redis(7.4) ---------- REDIS_URL=redis://127.0.0.1:6379 -# ---------- 对象存储(MinIO,S3 协议) ---------- -S3_ENDPOINT= +# ---------- 对象存储(RustFS,S3 协议;A0 统一使用 lingxi-dev 桶) ---------- +S3_ENDPOINT=https://oss.xinsenidea.com S3_REGION=us-east-1 -S3_BUCKET_ASSETS=assets -S3_BUCKET_RENDERS=renders -S3_BUCKET_TEMP=temp -S3_ACCESS_KEY= -S3_SECRET_KEY= +S3_BUCKET_ASSETS=lingxi-dev +S3_BUCKET_RENDERS=lingxi-dev +S3_BUCKET_TEMP=lingxi-dev +S3_ACCESS_KEY= +S3_SECRET_KEY= # ---------- 认证(本地 dev 值,生产由密钥管理注入) ---------- JWT_SECRET=dev-only-jwt-secret-change-me-32chars diff --git a/README.md b/README.md index db7ad91..8cb6742 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ pnpm dev # 并行启动 api(3000) / web(5173) / worker ``` - **本地数据库**:直接复用本机已有 Docker 服务 `docker-postgres-1`(PostgreSQL 18,`127.0.0.1:5432`),库名 `lingxi`,用户 `postgres`,密码 `postgres`;Redis 复用 `docker-redis-1`(`127.0.0.1:6379`)。请先确认这两个容器已启动,本仓库不会另起 PG/Redis。 -- **对象存储**:本地不再启动 S3 容器;待接入公网自建 RustFS,endpoint 与凭据确定后写入 `.env.local` 的 `S3_*`。 +- **对象存储**:使用公网 RustFS(`https://oss.xinsenidea.com`,桶 `lingxi-dev`);A0 的 `assets / renders / temp` 三类产物暂共用该桶,待 A1 按前缀拆分。真实 access key / secret 只写入本地 `.env.local`(已 gitignore),仓库内只保留占位。 - **API 文档**:启动 api 后访问 `http://127.0.0.1:3000/api/docs`,OpenAPI JSON 在 `openapi/lingxi.openapi.json`。 - **演示登录**:A0 尚未接鉴权(A1 实现),`VITE_PUBLIC_DEMO_SESSION=true` 时登录页使用本地演示会话进入工作台;A1 接入真实登录后删除。 diff --git a/docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md b/docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md index 57c3757..8e41249 100644 --- a/docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md +++ b/docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md @@ -52,9 +52,9 @@ 本地 PostgreSQL 与 Redis **复用本机已有 Docker 服务**,不另起容器:`docker-postgres-1`(PostgreSQL 18,`127.0.0.1:5432`,库 `lingxi`、用户 `postgres`、密码 `postgres`)与 `docker-redis-1`(`127.0.0.1:6379`)。仓库不包含任何数据库/缓存容器编排。CI services 使用标准 5432/6379,凭据同为 `postgres/postgres`。 -### 4.2 对象存储待接入公网 RustFS +### 4.2 对象存储接入公网 RustFS -本地 Docker 不提供 S3 服务,`minio/minio` 镜像在当前网络也不可拉取。A0 代码不依赖对象存储(`/health` 只检查 DB 与 Redis),`.env.example` 保留 `S3_*` 占位;后续由项目方提供公网自建 RustFS 的 endpoint 与凭据后填写,应用侧继续只依赖 S3 协议。 +本地 Docker 不提供 S3 服务,`minio/minio` 镜像在当前网络也不可拉取。项目方已提供公网 RustFS:`https://oss.xinsenidea.com`,桶 `lingxi-dev`。A0 代码不依赖对象存储(`/health` 只检查 DB 与 Redis),已在本地 `.env.local` / `.env` 配置 `S3_*` 并实测通过(list buckets、HEAD bucket、PUT / GET / DELETE 探针对象均成功)。三类产物(assets / renders / temp)暂共用 `lingxi-dev` 桶,A1 落地渲染链路时再按前缀或独立桶拆分。真实 access key / secret 不入库。 ### 4.3 演示登录(A0 临时) @@ -80,7 +80,7 @@ npm 上 `oasdiff` 为占位包(0.0.1-security),A0 暂用自研 `scripts/op 当前离线 Gitea 未部署 Actions runner,推送后远程 CI 会停留在 `queued`。A0 增加 `pnpm ci:local`:按 `.gitea/workflows/ci.yml` 的顺序在本地执行 compose、格式、Lint、类型、单测、构建、迁移与种子、集成、OpenAPI 契约与 e2e,全部通过才退出 0;runner 就绪后远程工作流可直接接管。 -本地开发库为 `lingxi` / `postgres` / `postgres`,直接连接本机已有 PostgreSQL 容器;`.env.example` 与 CI services 保持一致;S3 待 RustFS 信息后配置。 +本地开发库为 `lingxi` / `postgres` / `postgres`,直接连接本机已有 PostgreSQL 容器;`.env.example` 与 CI services 保持一致;对象存储已接入公网 RustFS(见 §4.2)。 ### 4.8 前端视觉方向 @@ -98,7 +98,7 @@ npm 上 `oasdiff` 为占位包(0.0.1-security),A0 暂用自研 `scripts/op 1. **A1 必须移除演示登录**并接入真实 JWT / 刷新令牌 / 权限守卫。 2. 种子业务数据待 A1 / A3 / A4 / B0 表就绪后补齐(Q-A0-01)。 -3. 对象存储待接入公网 RustFS;接入前不使用本地 S3 容器。 +3. 对象存储为公网 RustFS 单桶,A1 需按产物类型落前缀或拆分桶,并在 CI 配置独立测试桶。 4. Web 主包约 599 kB(Semi 全量 CSS 689 kB),A0 接受;M1 前做路由级拆分与 Semi 按需样式。 5. 远程 CI 待 Gitea Actions runner 就绪后验证 services 与 Playwright 浏览器安装;当前以 `pnpm ci:local` 为准(已实测通过)。