diff --git a/README.md b/README.md index f168e95e..113ec437 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,7 @@ docker pull ghcr.io/rain-kl/openflare-agent:latest docker rm -f openflare-agent 2>/dev/null || true docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL=http://your-server:3000 \ -e OPENFLARE_AGENT_TOKEN=YOUR_AGENT_TOKEN \ ghcr.io/rain-kl/openflare-agent:latest diff --git a/docs/changelog/index.md b/docs/changelog/index.md index cf74ac0d..2cb07d64 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -29,6 +29,7 @@ sidebar: false ### 改进 - 站点流量限制语义调整为空或 `0` 继承全局默认、`-1` 关闭、大于 `0` 自定义;修改全局默认后需发布配置版本生效。 +- Agent Docker 部署命令默认挂载命名卷 `openflare-agent-pages` 持久化 Pages 目录,重建容器时无需重新拉取静态站点包。 ## [v3.4.1] - 2026-07-19 diff --git a/docs/deployment/agent.md b/docs/deployment/agent.md index fff193e7..a622f2ec 100644 --- a/docs/deployment/agent.md +++ b/docs/deployment/agent.md @@ -126,11 +126,16 @@ docker pull ghcr.io/rain-kl/openflare-agent:latest docker rm -f openflare-agent 2>/dev/null || true docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL=http://your-server:3000 \ -e OPENFLARE_AGENT_TOKEN=YOUR_AGENT_TOKEN \ ghcr.io/rain-kl/openflare-agent:latest ``` +> [!NOTE] +> **Pages 持久化** +> 默认将 Pages 部署目录挂载到 Docker 命名卷 `openflare-agent-pages`(容器内路径 `/data/var/lib/openflare/pages`)。重建或升级 Agent 容器时无需重新拉取静态站点包。 + > [!NOTE] > **非 Root 安全加固运行** > Agent 容器内部已完成安全加固,在启动后会统一以低权限非 root 用户 `openflare` 运行。 diff --git a/docs/deployment/deployment.md b/docs/deployment/deployment.md index fcec892f..275e8556 100644 --- a/docs/deployment/deployment.md +++ b/docs/deployment/deployment.md @@ -123,11 +123,14 @@ docker pull ghcr.io/rain-kl/openflare-agent:latest docker rm -f openflare-agent 2>/dev/null || true docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL=http://your-server:3000 \ -e OPENFLARE_AGENT_TOKEN=YOUR_AGENT_TOKEN \ ghcr.io/rain-kl/openflare-agent:latest ``` +命名卷 `openflare-agent-pages` 持久化 Pages 部署目录,重建容器时无需重新拉取静态站点包。 + ## Agent 接入(脚本安装) 除了 Docker 部署外,也支持通过安装脚本将 Agent 部署在本地宿主机上。安装脚本会自动在本地 Linux 系统中注册低权限的 `openflare` 服务账号,并将 systemd 服务配置为以该用户身份运行,利用 Linux Capabilities 安全地监听 80/443 特权端口。 diff --git a/docs/guide/quick-start.md b/docs/guide/quick-start.md index cb2600f8..20743df2 100644 --- a/docs/guide/quick-start.md +++ b/docs/guide/quick-start.md @@ -189,6 +189,7 @@ docker pull ghcr.io/rain-kl/openflare-agent:latest docker rm -f openflare-agent 2>/dev/null || true docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL=http://your-server:3000 \ -e OPENFLARE_AGENT_TOKEN=YOUR_AGENT_TOKEN \ ghcr.io/rain-kl/openflare-agent:latest diff --git a/frontend/app/(main)/nodes/components/node-utils.ts b/frontend/app/(main)/nodes/components/node-utils.ts index 4f33a9ef..fc31f09a 100644 --- a/frontend/app/(main)/nodes/components/node-utils.ts +++ b/frontend/app/(main)/nodes/components/node-utils.ts @@ -151,6 +151,7 @@ export function buildEdgeDockerInstallCommand( `docker rm -f openflare-agent 2>/dev/null || true`, `docker run -d --name openflare-agent --restart unless-stopped \\`, ` -p 80:80 -p 443:443/tcp -p 443:443/udp \\`, + ` -v openflare-agent-pages:/data/var/lib/openflare/pages \\`, ` -e OPENFLARE_SERVER_URL=${serverUrl} \\`, ` -e OPENFLARE_AGENT_TOKEN=${agentToken} \\`, ` ${image}`, diff --git a/scripts/install-agent.sh b/scripts/install-agent.sh index 981c5858..e565a492 100755 --- a/scripts/install-agent.sh +++ b/scripts/install-agent.sh @@ -381,12 +381,14 @@ if [[ "$INSTALL_METHOD" == "docker" ]]; then if [[ -n "$AGENT_TOKEN" ]]; then docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL="${SERVER_URL}" \ -e OPENFLARE_AGENT_TOKEN="${AGENT_TOKEN}" \ ghcr.io/rain-kl/openflare-agent:latest else docker run -d --name openflare-agent --restart unless-stopped \ -p 80:80 -p 443:443/tcp -p 443:443/udp \ + -v openflare-agent-pages:/data/var/lib/openflare/pages \ -e OPENFLARE_SERVER_URL="${SERVER_URL}" \ -e OPENFLARE_DISCOVERY_TOKEN="${DISCOVERY_TOKEN}" \ ghcr.io/rain-kl/openflare-agent:latest