Initialize cross-platform workspace host scaffold
This commit is contained in:
@@ -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
|
||||
@@ -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`。
|
||||
Reference in New Issue
Block a user