HTTP API
最後更新
本頁列出 API Server 的端點、請求格式與資料表結構。
端點
API Server 監聽 :8080,成功時回傳 ok 字串或 {"data": [...]};JSON 綁定失敗回 400,資料庫錯誤回 500,內容皆為錯誤訊息字串。
| 方法 | 路徑 | Body | 說明 |
|---|---|---|---|
GET |
/api/health |
— | 健康檢查,回傳 ok |
GET |
/api/pod/list |
— | 列出 dismiss = 0 的部署 |
POST |
/api/pod/upsert |
Pod |
依 uid 新增或更新部署,並重設 dismiss = 0 |
POST |
/api/pod/update/:uid |
Pod(只取 status、dismiss) |
更新指定部署 |
POST |
/api/pod/record/insert |
Record(取 uid、content、hostname、ip) |
依 uid 寫入一筆操作紀錄 |
未註冊的路徑由 NoRoute 處理,請求會一直掛著不回應。
範例
curl -X POST localhost:8080/api/pod/upsert \
-d '{"uid":"t1","pod_id":"p","pod_name":"n","local_dir":"/a","remote_dir":"/b","status":"starting","replicas":1}'
curl localhost:8080/api/pod/list
Pod 欄位
| 欄位 | 型別 | 說明 |
|---|---|---|
uid |
string |
md5("<MAC>@<本地絕對路徑>") 或 -u 指定值 |
pod_id |
string |
Podman Pod ID;查不到時為遠端目錄名 |
pod_name |
string |
Podman Pod 名稱;查不到時為遠端目錄名 |
local_dir |
string |
本地專案絕對路徑 |
remote_dir |
string |
/home/podrun/<目錄名>_<雜湊前 8 碼> |
file |
string |
-f 指定的 compose 檔 |
target |
string |
--type 的值;[未完成] k3s 僅作紀錄 |
status |
string |
CLI 寫入 starting |
hostname |
string |
執行 CLI 的主機名稱 |
ip |
string |
執行 CLI 的主機第一個非 loopback IPv4 |
replicas |
int |
固定為 1 |
created_at/updated_at |
time |
由資料庫寫入 |
dismiss |
int |
0 有效、1 已移除 |
pod_id 寫入資料表的 pod_uid 欄位。
資料表
| 資料表 | 用途 | 欄位 |
|---|---|---|
pods |
每個部署一列,uid 與 pod_uid 唯一 |
uid、pod_uid、pod_name、local_dir、remote_dir、file、target、status、hostname、ip、replicas、created_at、updated_at、dismiss |
records |
操作紀錄,pod_id 參照 pods.id(刪除時連動) |
pod_id、content、hostname、ip |
domains |
[未完成] 預留給 domain 指令 |
pod_id、container_name、domain、created_at、updated_at、dismiss |