Build Charac server and client with OIDC, SSH sessions, and packages
Verify / verify (ubuntu-latest, linux-bionic-arm64) (push) Canceled after 0s
Verify / verify (ubuntu-latest, linux-x64) (push) Canceled after 0s
Verify / verify (windows-latest, win-x64) (push) Canceled after 0s
Verify / postgres (push) Canceled after 0s

This commit is contained in:
Nitload
2026-10-05 14:02:50 +08:00
parent 4bc3552167
commit 0ea679932e
185 changed files with 10653 additions and 772 deletions
+9 -19
View File
@@ -1,27 +1,17 @@
# Windows 部署模板
# Windows Server 部署模板
当前产物用于服务宿主与代理框架验证,健康状态列出远程工作区的集成进度。
执行 ./build.ps1 --target Publish --runtime win-x64,将 artifacts/publish/win-x64/server/ 部署到受保护的服务目录;ARM64 使用 win-arm64。发布目录中的 char_rac_server.exe 是唯一服务端入口,不需要 host 或 agent 参数。
## 发布与目录
以受限服务账户注册 Windows Service,并按环境配置监听地址及反向代理。目标 Windows 主机需单独安装和配置 OpenSSH Server,限制为内网访问,并配置目标账户映射和服务器主机密钥验证;改用证书登录时再配置 SSH CA 信任。密码和私钥 SSH Broker、OIDC、Session Manager 与 WebSocket 已接入;正式 Client 已在 Windows 开发机经 authentik 连接 Linux `.101` 并执行交互命令,目标 Windows sshd 尚待验收。可用 `--config` 指向单独维护的 INI 文件,无需复制到发布目录。
执行 `./build.ps1 --target Publish --runtime win-x64`,将发布目录整体部署到 `C:\Program Files\WorkspaceAccessHost`。ARM64 使用 `win-arm64`。服务与用户代理共用目录中的 `WorkspaceAccessHost.exe`,分别传入 `host` 和 `agent`。
服务账户需要读取安装目录和配置。框架阶段服务使用 LocalService。正式代理 IPC 的管道 ACL 配置与服务账户保持一致。
## 注册服务
在管理员 PowerShell 中执行:
示例(请先按实际路径与服务账户调整):
```powershell
sc.exe create WorkspaceAccessHost binPath= '"C:\Program Files\WorkspaceAccessHost\WorkspaceAccessHost.exe" host' start= auto obj= 'NT AUTHORITY\LocalService'
sc.exe start WorkspaceAccessHost
sc.exe query WorkspaceAccessHost
sc.exe create CharacServer binPath= '"C:\Program Files\Charac\char_rac_server.exe" --config "C:\ProgramData\Charac\workspace-access.config"' start= auto obj= 'NT AUTHORITY\LocalService'
sc.exe start CharacServer
sc.exe query CharacServer
```
健康地址为 `http://127.0.0.1:5080/health/live`。就绪地址为 `/health/ready`。日志由 .NET 日志提供程序输出。
/health/live 返回存活状态;/health/ready 在集成完成前返回 503。
## 用户代理
以目标普通用户运行 `WorkspaceAccessHost.exe agent` 验证入口。用户登录启动任务的可执行路径指向 `WorkspaceAccessHost.exe`,参数填写 `agent`,并选择目标用户的交互登录上下文。代理 IPC 注册与终端集成完成后,按部署策略启用该启动任务。
源仓库设计文档:`docs/platforms/service-hosting.md`、`docs/platforms/user-environment.md`、`docs/platforms/storage.md`。
本机 `status` 和 `reload` 命令连接正在运行的服务,不启动第二份实例。命令使用与服务启动时相同的 `--config` 路径,并须在服务账户上下文中执行;上面的 `LocalService` 示例不能直接从普通管理员终端调用同账户管道。`reload` 当前只在线应用 `[Logging]` 设置,其余配置修改需要重启服务。