Logo

Edge Fn Docker API

一个基于 Next.js 构建的轻量级 API 服务,用于通过 WebSocket 协议连接到 fnOS NAS,进行身份验证并获取特定 Docker 服务的访问地址。

功能特性

接口文档

1. 连接 NAS 服务 (单个)GET

URL: /api/fn/connect

描述: 连接到 fnOS NAS 并获取指定 Docker 服务的访问 Token 和 URL。

请求参数 (URL Query Params)

参数名类型必填描述
fnIdstring您的 fnOS ID
usernamestringNAS 登录用户名
passwordstringNAS 登录密码
portnumber/string目标 Docker 服务的端口号
keystringAPI 鉴权密钥

响应示例 (成功)

{
  "success": true,
  "token": "a1b2c3d4...",
  "url": "https://your-fn-domain.nas-host.com"
}

响应示例 (失败)

未找到服务 (404 Not Found)
{
  "success": false,
  "error": "App not found on port 5244"
}

2. 获取所有服务列表GET

URL: /api/fn/services

描述: 获取 NAS 上运行的所有 Docker 服务列表。

提示: 为确保在 Serverless 环境(如腾讯云 EdgeOne/SCF)下的兼容性,本接口推荐使用 GET 请求,所有参数通过 URL Query String 传递。
例如: /api/fn/services?fnId=xxx&username=xxx...

请求参数 (URL Query Params)

参数名类型必填描述
fnIdstring您的 fnOS ID
usernamestringNAS 登录用户名
passwordstringNAS 登录密码
keystringAPI 鉴权密钥
isLocalboolean是否返回本地局域网地址 (默认 false)

响应示例 (成功)

1. 外部模式 (默认, isLocal: false)
{
  "success": true,
  "services": [
    {
      "title": "alist",
      "url": "https://alist-xxxx.fnos.net",
      "port": 5244,
      "alias": "alist_5244"
    },
    ...
  ],
  "entryToken": "9f531e22575646b5ab5ffa3254e14006"
}
2. 本地模式 (isLocal: true)
{
  "success": true,
  "services": [
    {
      "title": "alist",
      "url": "http://192.168.1.10:5244",
      "port": 5244,
      "alias": "alist_5244"
    },
    ...
  ]
}

3. 通用错误响应

当请求失败时,API 会返回 HTTP 4xx 或 5xx 状态码,JSON 结构如下:

鉴权失败 (401 Unauthorized)
{
  "success": false,
  "error": "Unauthorized: Invalid key"
}
服务器错误 (500 Internal Server Error)
{
  "success": false,
  "error": "NAS Connection Failed: ..."
}