cc-haha/docs/desktop/04-installation.md
2026-07-23 20:46:33 +08:00

170 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 安装、升级与 Web UI
Claude Code Haha Desktop 提供 macOS、Windows 和 Linux 安装包。普通用户应优先使用 GitHub Release而不是从源码启动。
## 下载正确的安装包
前往 [GitHub Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载最新正式版本:
| 平台 | 安装文件 |
|------|----------|
| macOS Apple SiliconM 系列) | `Claude-Code-Haha-<版本>-mac-arm64.dmg` |
| macOS Intel | `Claude-Code-Haha-<版本>-mac-x64.dmg` |
| Windows x64 | `Claude-Code-Haha-<版本>-win-x64.exe` |
| Windows ARM64 | `Claude-Code-Haha-<版本>-win-arm64.exe` |
| Linux x64 | `Claude-Code-Haha-<版本>-linux-x86_64.AppImage``...-linux-amd64.deb` |
| Linux ARM64 | `Claude-Code-Haha-<版本>-linux-arm64.AppImage``...-linux-arm64.deb` |
macOS 可从「关于本机」查看芯片Windows 可在「设置 → 系统 → 系统信息」查看系统类型。不要仅凭设备品牌猜测架构。
## macOS
1. 打开 DMG。
2. 把 Claude Code Haha 拖到「应用程序」。
3. 从「应用程序」打开。
正式 macOS Release 使用 Developer ID 签名和公证,通常只会显示标准的下载来源确认。
只有旧版或明确标注为 unsigned 的临时构建才可能需要手动放行。确认安装包确实来自本仓库后,可以在「系统设置 → 隐私与安全性」选择仍要打开。不要对来源不明的应用运行解除隔离命令。
## Windows
1. 完全退出正在运行的旧版 Claude Code Haha。
2. 直接双击 `.exe`,以当前用户安装。
3. 不要主动选择「以管理员身份运行」。
未签名构建可能触发 SmartScreen。确认文件来自本仓库 Release 后,可选择「更多信息 → 仍要运行」。
覆盖升级时,安装器会检查相关进程和旧安装目录中的用户数据。它会在可以确认来源与用户身份时恢复历史数据;遇到进程占用、来源歧义或复制失败时会停止安装,而不是猜测迁移。
如果安装器提示程序仍在运行:
1. 退出主窗口和托盘中的应用。
2. 等待几秒,让 sidecar 和 adapter 退出。
3. 仍失败时,在任务管理器中检查 Claude Code Haha 相关进程。
4. 重新运行安装器,不要先删除旧数据目录。
若你曾把重要资料放进安装目录,升级前仍建议单独备份。安装器的恢复保护不是通用备份方案。
## Linux
### AppImage
```bash
chmod +x Claude-Code-Haha-<版本>-linux-x86_64.AppImage
./Claude-Code-Haha-<版本>-linux-x86_64.AppImage
```
ARM64 机器请换用 `linux-arm64.AppImage`
Ubuntu 22.04 及更早版本缺少 FUSE 时可安装 `libfuse2`Ubuntu 24.04 及更新版本通常使用 `libfuse2t64`
### deb
```bash
sudo apt install ./Claude-Code-Haha-<版本>-linux-amd64.deb
```
ARM64 机器请换用对应的 `linux-arm64.deb`
## 首次启动检查
安装完成后,按这个顺序验证:
1. 打开「设置 → 服务商」,完成官方登录或 API Provider 配置。
2. 新建会话并选择一个可读写的测试项目。
3. 使用「询问权限」发送一个只读任务。
4. 确认回复、工具调用和停止按钮正常。
5. 再测试文件修改、Diff 和权限拒绝。
不要把 H5、Auto、跳过权限、Computer Use 和 IM 一次全部打开。逐项启用更容易判断故障位于模型、桌面服务还是外部入口。
## 应用内更新
正式安装包会通过 GitHub Releases 检查更新,并下载当前平台的更新资产。
更新前:
- 保存项目中的未提交工作。
- 等待或停止正在运行的会话、定时任务和 SubAgent。
- 完全退出应用后再安装。
覆盖安装和应用内更新不应删除正常用户目录中的会话、Provider、Skills、Agents、记忆和自定义宠物。若升级后列表暂时为空先不要删除配置打开「设置 → 诊断」检查本地索引状态,必要时只重建派生索引。
Windows 与 Linux 的真实安装行为依赖对应 Release 产物;其他平台上的本地构建通过不等于当前平台已经完成安装验证。
## 从源码运行同源 Web UI
服务端可以直接提供构建后的 Web UI。这样页面、REST API 和 WebSocket 使用同一个 `3456` 端口,最接近 H5 与发布版的同源路径。
```bash
# 项目根目录
bun install
# 构建 Web UI
cd desktop
bun install
bun run build
cd ..
# 只允许本机访问
SERVER_HOST=127.0.0.1 SERVER_PORT=3456 bun run src/server/index.ts
```
打开:
```text
http://127.0.0.1:3456/
```
本机回环访问不需要开启 H5也不需要 H5 Token。这个豁免只适用于真正的本地访问不会自动扩展到局域网地址或反向代理。
如果服务不是从项目根目录启动,设置 `CLAUDE_H5_DIST_DIR` 指向 `desktop/dist` 的绝对路径。缺少构建产物时 API 仍可能启动,但浏览器根路径会返回 404。
## 前端热更新开发模式
需要修改 React 页面时,可以把前端开发服务器和后端分开运行:
```bash
# 终端 1项目根目录
SERVER_HOST=127.0.0.1 SERVER_PORT=3456 bun run src/server/index.ts
# 终端 2
cd desktop
bun run dev --host 127.0.0.1 --port 2024
```
打开:
```text
http://127.0.0.1:2024/?serverUrl=http%3A%2F%2F127.0.0.1%3A3456
```
这条双端口路径只用于开发热更新。手机访问、反向代理和部署排查应优先使用构建后的 `3456` 同源路径,减少 CORS 与 WebSocket 配置变量。
## 无桌面环境的 Linux 主机
最安全的个人访问方式是 SSH 端口转发:
```bash
# 服务器:按上一节构建后,只监听回环地址
SERVER_HOST=127.0.0.1 SERVER_PORT=3456 bun run src/server/index.ts
# 自己的电脑
ssh -L 3456:127.0.0.1:3456 user@example.com
```
随后在自己的电脑打开 `http://127.0.0.1:3456/`。因为服务没有暴露到局域网,这条路径不需要 H5 Token。
需要让手机或反向代理直接访问时,必须显式启用 H5、生成 Token并理解公网暴露边界。参见[H5 访问](./06-h5-access.md)。
## 安装后仍无法启动
按以下顺序排查:
1. 确认下载的平台和 CPU 架构正确。
2. 确认旧版本进程已经退出。
3. 重新启动应用,而不是反复覆盖安装。
4. 打开「设置 → 诊断」复制错误摘要或导出诊断包。
5. 查看[常见问题](./05-FAQ.md),再携带版本、系统、复现步骤和脱敏诊断信息求助。