Initialize cross-platform workspace host scaffold
Verify / verify (ubuntu-latest, linux-x64) (push) Canceled after 0s
Verify / verify (windows-latest, win-x64) (push) Canceled after 0s

This commit is contained in:
Youmu Liu
2026-09-29 11:30:51 +08:00
commit 4bc3552167
56 changed files with 2627 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# Linux 部署模板
当前产物用于服务宿主与用户代理框架验证。远程工作区各组件的状态由 readiness 报告。
## 发布
执行 `bash ./build.sh --target Publish --runtime linux-x64`。将发布目录整体部署到 `/opt/workspace-access/`。ARM64 使用 `linux-arm64`。服务与用户代理共用同一程序,通过 `host`、`agent` 参数选择角色。赋予入口文件执行权限:
```bash
sudo chmod 0755 /opt/workspace-access/WorkspaceAccessHost
```
## 系统服务
由部署人员建立 `workspace-access` 系统用户及同名组,并赋予安装目录读取和执行权限。把 `workspace-access-host.service` 复制到 `/etc/systemd/system/` 后执行:
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now workspace-access-host.service
systemctl status workspace-access-host.service
journalctl -u workspace-access-host.service
```
模板使用低权限 broker 账户,运行目录为 `/run/workspace-access`,状态目录为 `/var/lib/workspace-access`。用户上下文启动组件按专门权限边界接入。HTTP 健康端点位于 `127.0.0.1:5080`。
## 用户代理
`workspace-access-agent.service` 为 systemd user unit。以目标用户身份将其放入 `~/.config/systemd/user/`,通过 `systemctl --user daemon-reload` 和 `systemctl --user enable --now workspace-access-agent.service` 启动。用户管理器随登录和 linger 策略运行,部署时明确相应生命周期。
此模板用于验证现有用户上下文中的 Agent 入口;完整的按需账户启动流程在用户启动组件中实现。
源仓库设计文档:`docs/platforms/user-environment.md`、`docs/platforms/session-lifecycle.md`、`docs/implementation-status.md`。
@@ -0,0 +1,12 @@
[Unit]
Description=Workspace Access User Agent
[Service]
Type=simple
ExecStart=/opt/workspace-access/WorkspaceAccessHost agent
Restart=on-failure
RestartSec=5
UMask=0077
[Install]
WantedBy=default.target
@@ -0,0 +1,23 @@
[Unit]
Description=Workspace Access Host
After=network.target
[Service]
Type=notify
User=workspace-access
Group=workspace-access
WorkingDirectory=/opt/workspace-access
ExecStart=/opt/workspace-access/WorkspaceAccessHost host
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
RuntimeDirectory=workspace-access
StateDirectory=workspace-access
UMask=0077
[Install]
WantedBy=multi-user.target
+27
View File
@@ -0,0 +1,27 @@
# Windows 部署模板
当前产物用于服务宿主与代理框架验证,健康状态列出远程工作区的集成进度。
## 发布与目录
执行 `./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
```
健康地址为 `http://127.0.0.1:5080/health/live`。就绪地址为 `/health/ready`。日志由 .NET 日志提供程序输出。
## 用户代理
以目标普通用户运行 `WorkspaceAccessHost.exe agent` 验证入口。用户登录启动任务的可执行路径指向 `WorkspaceAccessHost.exe`,参数填写 `agent`,并选择目标用户的交互登录上下文。代理 IPC 注册与终端集成完成后,按部署策略启用该启动任务。
源仓库设计文档:`docs/platforms/service-hosting.md`、`docs/platforms/user-environment.md`、`docs/platforms/storage.md`。