<!-- Source: https://deepseek-browser-use.io.nexus/02 -->

# 安装、启动与健康检查

本章目标是让 deepseek-browser-use 服务正常响应健康检查。浏览器任务在下一章创建。

## 环境准备

当前源码需要 Java 21 或以上环境。源码运行还需要 Maven；使用 `dsb` 客户端不需要 Python 或其他运行时 —— 它是一个静态二进制（源码在仓库 `dsb/`，`go build` 一下即可，见 [Go 客户端](<https://deepseek-browser-use.io.nexus/37>)）。选用平台对应的发行包或在源码目录运行，示例中的路径均相对于项目根目录。

## 方式一：运行发行包

准备与操作系统、处理器架构对应的发行 JAR：

```shell
java -jar <发行包文件名>.jar
```

平台发行包包含相应 Chromium 资源。实际选用的浏览器由配置和任务启动参数决定，创建任务后应检查回执中的 `effectiveBrowser` 与 `engineHonored`。不要仅凭包名判断浏览器引擎。

## 方式二：运行源码

在仓库根目录执行：

```shell
cd playwright-server
mvn spring-boot:run
```

这里使用 Maven 插件启动配置的主类；真正的应用入口是 `nexus.io.ai.browser.PlaywrightApp`，内部调用 `TioApplication.run(...)`。

Windows 长时间使用时，可以在仓库根目录运行项目自带后台脚本：

```powershell
.\scripts\run\start-server.cmd -Port 10049 -Engine chromium
```

后台脚本执行健康检查，并记录日志。不要同时重复启动占用相同端口和 profile 的服务。浏览器安装或启动失败时，先查看启动日志与实际配置，再按 [浏览器与 profile](<https://deepseek-browser-use.io.nexus/05>) 排查。

## 确认服务可访问

在另一个终端进入仓库根目录：

```shell
python client/dsb.py --port 10049 health
python client/dsb.py --port 10049 methods
python client/dsb.py --port 10049 config
```

也可以直接用客户端包装（Windows 在项目根目录写 `.\client\dsb.cmd`，Linux/macOS 写 `./client/dsb`）：

```shell
.\client\dsb.cmd --port 10049 health
.\client\dsb.cmd --port 10049 methods
```

健康检查应返回 `ok:true`；命令列表位于 `data.methods`。健康检查通过只表示 HTTP 服务正常，不能证明浏览器已经成功启动。下一章的 `start` 才会验证浏览器创建。

配置文件 `playwright-server/src/main/resources/app.properties` 设置默认端口。Java 扩展代码使用 `EnvUtils.get` 读取配置。配置项的实际生效值可以通过 `/playwright/config` 查看，详见 [配置与运维](<https://deepseek-browser-use.io.nexus/12>)。

示例使用 localhost 访问；这不等于服务绑定地址已经限制为回环接口。当前应用配置只明确了端口，没有提供内置鉴权，部署时需核对实际监听地址和网络访问范围。

## 停止服务

任务结束先调用该任务的 `close`。需要停止整个服务时，在仓库根目录运行：

```powershell
.\scripts\run\stop-server.cmd -Port 10049
```

停止脚本先关闭浏览器，再结束服务进程。命令 `shutdown` 会关闭所有任务与共享浏览器，但不会单独终止 Java 进程。已有登录任务运行时，不要为了新建任务随意停止共享服务。

下一步：[运行第一个完整任务](<https://deepseek-browser-use.io.nexus/03>)。
