一个基于 Next.js 构建的轻量级 API 服务,用于通过 WebSocket 协议连接到 fnOS NAS,进行身份验证并获取特定 Docker 服务的访问地址。
URL: /api/fn/connect
描述: 连接到 fnOS NAS 并获取指定 Docker 服务的访问 Token 和 URL。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
fnId | string | 是 | 您的 fnOS ID |
username | string | 是 | NAS 登录用户名 |
password | string | 是 | NAS 登录密码 |
port | number/string | 是 | 目标 Docker 服务的端口号 |
key | string | 是 | API 鉴权密钥 |
{
"success": true,
"token": "a1b2c3d4...",
"url": "https://your-fn-domain.nas-host.com"
}{
"success": false,
"error": "App not found on port 5244"
}URL: /api/fn/services
描述: 获取 NAS 上运行的所有 Docker 服务列表。
/api/fn/services?fnId=xxx&username=xxx...| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
fnId | string | 是 | 您的 fnOS ID |
username | string | 是 | NAS 登录用户名 |
password | string | 是 | NAS 登录密码 |
key | string | 是 | API 鉴权密钥 |
isLocal | boolean | 否 | 是否返回本地局域网地址 (默认 false) |
{
"success": true,
"services": [
{
"title": "alist",
"url": "https://alist-xxxx.fnos.net",
"port": 5244,
"alias": "alist_5244"
},
...
],
"entryToken": "9f531e22575646b5ab5ffa3254e14006"
}{
"success": true,
"services": [
{
"title": "alist",
"url": "http://192.168.1.10:5244",
"port": 5244,
"alias": "alist_5244"
},
...
]
}当请求失败时,API 会返回 HTTP 4xx 或 5xx 状态码,JSON 结构如下:
{
"success": false,
"error": "Unauthorized: Invalid key"
}{
"success": false,
"error": "NAS Connection Failed: ..."
}