From c3719c2240f4a5f484297e12b7af6ec5b369b1f2 Mon Sep 17 00:00:00 2001 From: "404877757@qq.com" <404877757@qq.com> Date: Mon, 7 Sep 2026 15:51:18 +0800 Subject: [PATCH] docs: add workstation Git and SSH handoff details --- docs/README.md | 2 ++ docs/新电脑开发接续指南.md | 62 +++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index be7166d6..8657fffb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,8 @@ | [DESIGN.md](../DESIGN.md) | VIP 黑金主题、组件和页面视觉规范 | | [SECURITY.md](../SECURITY.md) | 安全相关的最小基线 | +凭据说明:接续指南包含仓库地址、Git 用户名、服务器地址和 SSH 操作方式;Git 密码、服务器密码等敏感值只保存在每台电脑本地的 `runtime/private/新电脑开发接续私密信息.md`,该目录已被 `.gitignore` 忽略,不在远程仓库中。 + ## 协作、构建与发布 | 文档 | 用途 | diff --git a/docs/新电脑开发接续指南.md b/docs/新电脑开发接续指南.md index b262ceb3..8c499419 100644 --- a/docs/新电脑开发接续指南.md +++ b/docs/新电脑开发接续指南.md @@ -2,9 +2,69 @@ 本指南用于在另一台 Windows 电脑上继续开发 CaiWuXiTong。仓库代码、开发环境和团队系统数据库配置分开管理:新电脑只需要重新克隆代码、启动本机 Docker 环境,并在页面中完成一次团队系统数据库接入。 +## 0. 仓库、Git 与线上服务器 + +### Git 仓库 + +- 远程仓库:`http://git.1080p.hk/WuYongJie/CaiWuXiTong.git` +- Git 登录账号:`lunanting` +- 当前提交身份:`404877757@qq.com`(只影响提交署名,不等同于登录账号) +- Git 凭据应交给 Git Credential Manager 保存,不要把用户名和密码拼进 URL、脚本或命令历史。 +- 本机私密附录位置:`runtime/private/新电脑开发接续私密信息.md`。该目录已被 `.gitignore` 忽略,不会随仓库推送;需要带到另一台电脑时,请通过加密文件传输或密码管理器转交。 + +新电脑首次配置 Git Credential Manager: + +```powershell +git config --global credential.helper manager +git clone http://git.1080p.hk/WuYongJie/CaiWuXiTong.git +``` + +提示输入凭据时,用户名填写 `lunanting`,密码从私密附录或密码管理器获取。不要使用服务器 root 密码作为 Git 密码。 + +### 线上地址 + +- 生产系统: +- 生产只使用 HTTPS 和 `8442` 端口;不要改成无端口地址。 + +### 服务器 SSH + +- 服务器:`218.93.190.75` +- 用户:`root` +- 首次连接可使用私密附录中的临时密码: + +```powershell +ssh root@218.93.190.75 +``` + +建议在新电脑生成自己的 Ed25519 密钥,不要复制其他电脑的私钥: + +```powershell +ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\caiwuxitong_deploy_ed25519" +$pub = (Get-Content "$env:USERPROFILE\.ssh\caiwuxitong_deploy_ed25519.pub" -Raw).Trim() +ssh root@218.93.190.75 "umask 077; mkdir -p ~/.ssh; chmod 700 ~/.ssh; grep -qxF '$pub' ~/.ssh/authorized_keys 2>/dev/null || printf '%s\n' '$pub' >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys" +``` + +上面的最后一条命令会提示输入一次服务器密码;不要把密码直接写在命令行。验证密钥登录: + +```powershell +ssh -i "$env:USERPROFILE\.ssh\caiwuxitong_deploy_ed25519" -o BatchMode=yes root@218.93.190.75 "hostname" +``` + +正式发布只能由 Codex 按 SOP 执行,服务器不构建源码。新电脑具备 Docker Desktop、Git 和密钥后,发布命令为: + +```powershell +git switch main +git pull --ff-only origin main +.\scripts\deploy-from-workstation.ps1 ` + -Server 218.93.190.75 ` + -KeyPath "$env:USERPROFILE\.ssh\caiwuxitong_deploy_ed25519" +``` + +首次初始化全新服务器才使用 `-BootstrapServer`;当前生产服务器已经初始化,禁止重复执行。脚本发现新增数据库迁移时会停止,必须先取得负责人授权并完成备份后再使用 `-AllowMigrations`。 + ## 先看这几条边界 -- Git 认证使用项目负责人分配的 Git 账号或令牌;不要把服务器 root 密码当作 Git 密码,也不要把凭据写进仓库地址、脚本或 Markdown。 +- Git 认证使用项目负责人分配的 Git 账号或令牌;不要把服务器 root 密码当作 Git 密码,也不要把凭据写进仓库地址、脚本或受版本控制的 Markdown。密码只放在被 Git 忽略的私密附录或密码管理器中。 - main 是稳定主线。开发任务从最新 main 创建独立的 feature/... 或 fix/... 分支,不直接在 main 上开发。 - 不要复制其他电脑的 runtime/.env、APP_KEY、runtime/bootstrap-credentials.env、数据库卷、SSH 私钥或生产配置。每台开发机使用自己的本地配置和密钥。 - 不要对团队共享系统数据库执行 php artisan migrate,不要执行 docker compose down -v,也不要删除 Docker 数据卷。