部署时遇到一个问题:当后端 `opencode serve` 配置了 `OPENCODE_SERVER_PASSWORD` 时,容器内置 `Caddyfile.standalone` 的 `reverse_proxy` 只转发 `Host` 头,不携带 `Authorization` 头,导致所有 `/api/*` 请求返回 401,前端页面无法连接后端。 建议在 README 的部署说明中补充以下配置指引: **后端开启了密码认证时** 容器内置 Caddy 不会自动转发认证头。若后端配置了 `OPENCODE_SERVER_PASSWORD`,需要在 docker-compose 中挂载自定义 Caddyfile,并在 `reverse_proxy` 块中添加: ``` header_up Authorization "Basic <base64编码的用户名:密码>" ``` 凭证生成: ```bash echo -n "user:pass" | base64 ``` compose 中增加 volumes 挂载: ```yaml volumes: - ./Caddyfile.standalone:/etc/caddy/Caddyfile.standalone:ro ```
Activity
lehhair commentedon Aug 29, 2026
已修复,感谢反馈!
原因
前端在服务器连接界面填入用户名/密码后,会为每个请求携带
Authorization: Basic <base64>头(src/api/http.ts的getAuthHeader)。但镜像内置的Caddyfile.standalone未显式转发该头到后端,部分反代场景下被丢弃,导致/api/*返回 401。修复内容(commit
db9ff56f,已推送 dev/main)docker/Caddyfile.standalone:在reverse_proxy块中显式转发客户端Authorization头:header_up Authorization+ compose 挂载)。验证
重新构建 frontend 镜像(或升级到包含该 commit 的镜像)后,在 UI 填好用户名/密码连接带密码认证的后端即可。若你用的是自定义 Caddyfile,按 README 中新增的示例手动加一行
header_up Authorization {http.request.header.Authorization}即可。麻烦验证后如有问题再反馈,没问题可关闭此 issue。
fix(deploy): forward Authorization header through standalone Caddy proxy