# gordp **Repository Path**: yanfanVIP/gordp ## Basic Information - **Project Name**: gordp - **Description**: gordp web远程桌面 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-04 - **Last Updated**: 2026-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RDP Web Client 基于 [grdp](https://github.com/nakagami/grdp) 的 Web 端 RDP 远程桌面客户端。 ## 启动参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `-listen` | `:8080` | TCP 监听地址;设置 `-sockets` 时被忽略 | | `-sockets` | (空) | Unix socket 路径;设置后仅监听 socket | | `-webroot` | (空) | URL 路径前缀,如 `/app/gordp`(页面、静态资源、`/ws`、`/api` 均带此前缀) | | `-data-dir` | (必填) | 服务端数据目录,连接配置保存为 `{data-dir}/connections.json` | ## 示例 TCP + 路径前缀: ```bash go run . -listen :8080 -webroot=/app/gordp -data-dir=/var/lib/gordp ``` Unix socket + 反代: ```bash go run . -sockets=/run/gordp.sock -webroot=/app/gordp -data-dir=/var/lib/gordp ``` ## 编译 上游 `grdp@v0.9.2` 有两处需本地处理(`build.sh` / `scripts/sync-grdp.sh` 自动完成,通过 `go.mod replace` 指向 `./deps/grdp/`,不修改上游仓库): 1. **amd64 汇编**:SSE2 汇编使用 Go 汇编器不支持的 `PUNPCKLWD` 指令,回退为纯 Go 实现。 2. **API 兼容**:补充 `ForceRefresh`、`OnPointerPosition`,`SetResolution` 返回 `bool`(`scripts/apply-grdp-compat.sh`)。 ```bash ./build.sh ``` 开发运行前先同步 grdp: ```bash bash scripts/sync-grdp.sh go run . -listen :8080 -data-dir=/var/lib/gordp ``` 产物:`dist/gordp`(Linux/macOS)。前端资源通过 `go:embed` 嵌入,运行时无需 `web/` 目录。 ## 连接配置存储 连接卡片(主机、账号、密码、画质等)**保存在服务端** `-data-dir` 目录,浏览器仅通过 REST API 读写: - `GET {webroot}/api/connections` — 列表 - `PUT {webroot}/api/connections` — 新建/更新 - `DELETE {webroot}/api/connections/{id}` — 删除 - `PUT {webroot}/api/connections/thumbnail` — 更新缩略图 浏览器 `sessionStorage` 仅用于页面刷新后恢复 RDP 会话(`sessionId`),不保存连接凭据。