docs: add workstation Git and SSH handoff details

This commit is contained in:
404877757@qq.com 2026-09-07 15:51:18 +08:00
parent 77d6671de3
commit c3719c2240
2 changed files with 63 additions and 1 deletions

View File

@ -12,6 +12,8 @@
| [DESIGN.md](../DESIGN.md) | VIP 黑金主题、组件和页面视觉规范 |
| [SECURITY.md](../SECURITY.md) | 安全相关的最小基线 |
凭据说明:接续指南包含仓库地址、Git 用户名、服务器地址和 SSH 操作方式;Git 密码、服务器密码等敏感值只保存在每台电脑本地的 `runtime/private/新电脑开发接续私密信息.md`,该目录已被 `.gitignore` 忽略,不在远程仓库中。
## 协作、构建与发布
| 文档 | 用途 |

View File

@ -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://caiwu.jiansuntuzhi.cn:8442>
- 生产只使用 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 数据卷。