▼@textjs / opencode
一座当地的桥 textjs.org/opencode 和他们谈谈 OpenCode 您的计算机上的服务器。它没有依赖关系,在节点22或Bun上运行。
bunx @textjs/opencode@latest proxy # or: npx @textjs/opencode@latest proxy
让它开着,打开 textjs.org/opencode,输入 http://127.0.0.1:4096 并按 连接。如果Chrome要求允许本地网络访问,则输入网桥打印的配对代码。用Ctrl C停止桥。
浏览器阻止公共页面读取 http://127.0.0.1 除非服务器应答CORS和专用网络访问preflights,并且OpenCode服务也需要密码。桥添加标头和密码,并将每个请求转发给OpenCode。
选项
| 国旗 | 描述 |
|---|---|
-p, --port <port> | 要监听的端口(默认) 4096) |
--target <url> | OpenCode服务器URL。跳过的发现。 |
--allow-origin <origin> | 允许另一个浏览器源,例如 https://example.com 或者 http://localhost:*. 可重复的。 |
-v, --version | 打印版本 |
-h, --help | 显示帮助 |
没有 --target桥问 opencode service status ,并读取其密码 opencode service get password。它将结果缓存30秒,并在OpenCode回答时再次查看 401 或者无法到达,因此它跟随一个使用新端口或密码重新启动的服务。
对于前台服务器,请传递其URL。如果服务器已使用端口4096,请在另一个端口上运行网桥并将页连接到该端口:
bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096
对于有密码保护的前台服务器,请导出 OPENCODE_PASSWORD 在桥的壳里。 OPENCODE_SERVER_URL 代替…进行的工程 --target.
安全
- 仅环回。 桥在听
127.0.0.1和答案只请求其Host是localhost,127.0.0.1或者[::1],阻止DNS重新绑定。 - 原点允许列表。 浏览器请求必须来自
https://textjs.org,https://www.textjs.org或者http://localhost,127.0.0.1和[::1]在任意端口。其他的起源403. 加上你自己的--allow-origin例如:--allow-origin 'https://*.textjs-avg.pages.dev'fo r textjs.org预览部署。 - 配对代码。 桥在启动时打印代码。一个页面发送一次到
POST /__bridge/pair并获得这个桥接运行的令牌,与该页的原点绑定。除了CORS预飞行和GET /__bridge,每个请求都需要令牌在x-textjs-bridge-token,或者得到428永远不会到达OpenCode。GET /__bridge表示页面是否配对,错误的代码会得到一个200与ok: false和尝试离开,所以页面永远不会记录失败的请求。十个错误的代码锁定配对,直到网桥重新启动。每一个响应携带x-textjs-bridge-pairing: 1,因此页面拒绝1.0。X桥接器,它的转发不需要代码。 - 密码保留在您的计算机上。 网桥将其保存在内存中,并将其添加到转发到OpenCode的请求中。它不会被记录,写入磁盘或发送到浏览器。
- 写需要一个自定义头。 请求以外的
GET,HEAD和OPTIONS必须发送x-opencode-client: 1, HTML表单无法设置标题。请求体的上限为4 MB。 - 只有几个头球传中。 桥梁向前
Accept,Content-Type,Last-Event-ID和x-opencode-directory到OpenCode,并返回Content-Type,Location和x-request-id. 饼干,Authorization并且来自浏览器的配对令牌将被丢弃。 - 密码仅适用于环回目标。
OPENCODE_PASSWORD从不发送到非环回--target,--target拒绝包含凭据、路径、查询或哈希的url (TX021)。
Text.js项目
@textjs/app 运行相同的桥梁 text proxy有相同的标志。
错误
| 代码 | 意义 |
|---|---|
| TX021 | --target 不是一个裸露的HTTP(S) 起源 |
| TX022 | --port 是OpenCode服务器自己的端口吗 |
| TX023 | 那个港口上已经有一座桥在运行 |
| TX024 | 其他东西正在使用该端口 |