From 462deb4820bca53baa5408d0a833989e627b65a1 Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 28 May 2026 23:39:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=20=E6=B7=BB=E5=8A=A0=20Doc?= =?UTF-8?q?ker=20=E5=AE=89=E8=A3=85=E5=91=BD=E4=BB=A4=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=B9=B6=E6=9B=B4=E6=96=B0=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nodes/components/node-detail-page.tsx | 64 ++++++++++++++----- openflare_server/web/features/nodes/utils.ts | 10 +++ 2 files changed, 58 insertions(+), 16 deletions(-) diff --git a/openflare_server/web/features/nodes/components/node-detail-page.tsx b/openflare_server/web/features/nodes/components/node-detail-page.tsx index de8dd7bf..3544dd14 100644 --- a/openflare_server/web/features/nodes/components/node-detail-page.tsx +++ b/openflare_server/web/features/nodes/components/node-detail-page.tsx @@ -51,6 +51,7 @@ import { } from '@/lib/utils/metrics'; import { buildNodeInstallCommand, + buildNodeDockerInstallCommand, getApplyLabel, getApplyVariant, getNodeStatusLabel, @@ -541,6 +542,10 @@ export function NodeDetailPage({ nodeId }: { nodeId: string }) { normalizedServerUrl && node.agent_token ? buildNodeInstallCommand(normalizedServerUrl, node.agent_token) : ''; + const nodeDockerInstallCommand = + normalizedServerUrl && node.agent_token + ? buildNodeDockerInstallCommand(normalizedServerUrl, node.agent_token) + : ''; const updateMode = getUpdateMode(node); const selectedAgentRelease = selectedReleaseChannel === 'preview' @@ -1536,19 +1541,34 @@ export function NodeDetailPage({ nodeId }: { nodeId: string }) { - void handleCopy( - nodeInstallCommand, - '节点专属部署命令已复制。', - ) - } - > - 复制部署命令 - - ) : null +
+ {nodeInstallCommand ? ( + + void handleCopy( + nodeInstallCommand, + '脚本部署命令已复制。', + ) + } + > + 复制脚本命令 + + ) : null} + {nodeDockerInstallCommand ? ( + + void handleCopy( + nodeDockerInstallCommand, + 'Docker 部署命令已复制。', + ) + } + > + 复制 Docker 命令 + + ) : null} +
} >
@@ -1582,9 +1602,21 @@ export function NodeDetailPage({ nodeId }: { nodeId: string }) { {nodeInstallCommand ? ( - - {nodeInstallCommand} - +
+

脚本部署 (Linux / macOS)

+ + {nodeInstallCommand} + +
+ ) : null} + + {nodeDockerInstallCommand ? ( +
+

Docker 部署

+ + {nodeDockerInstallCommand} + +
) : null}
diff --git a/openflare_server/web/features/nodes/utils.ts b/openflare_server/web/features/nodes/utils.ts index 54a1d154..fce1c5d2 100644 --- a/openflare_server/web/features/nodes/utils.ts +++ b/openflare_server/web/features/nodes/utils.ts @@ -167,3 +167,13 @@ export function buildNodeInstallCommand(serverUrl: string, agentToken: string) { ` --agent-token ${agentToken}`, ].join('\n'); } + +export function buildNodeDockerInstallCommand(serverUrl: string, agentToken: string) { + return [ + `docker run -d --name openflare-agent --restart unless-stopped \\`, + ` -p 80:80 -p 443:443 -p 127.0.0.1:18081:18081 \\`, + ` -e OPENFLARE_SERVER_URL=${serverUrl} \\`, + ` -e OPENFLARE_AGENT_TOKEN=${agentToken} \\`, + ` ghcr.io/rain-kl/openflare-agent:latest` + ].join('\n'); +}