1Panel 技术全解析:开源 Linux 服务器面板如何将 Docker 运维与 OpenClaw AI Agent 合二为一
【免费下载链接】1Panel🔥 1Panel is a modern, open-source Linux server management panel and a lightweight AI management platform.项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel
1Panel 是一款现代化、开源的 Linux 服务器可视化管理面板,其最鲜明的定位是"从裸机到 Agent(Metal-to-Agent)"的一体化 AI 管理平台:既能以 Web 界面完成主机监控、文件、数据库、容器等常规运维,又能原生运行 Ollama 等本地 LLM 并编排 OpenClaw 个人 AI Agent,无需额外维护一套独立的 AI 技术栈。本文以官方文档 docs/README.fa.md 为主线,对照仓库源码,系统梳理 1Panel 的核心功能、架构布局与快速上手路径,帮助你理解它的面板能力边界以及 AI 管理功能在底层是如何落地的。
1Panel 是什么:从服务器面板到 AI 管理平台
1Panel 是一个现代、开源的 Linux 服务器管理面板,同时也是一个轻量级的 AI 管理平台。官方文档(波斯语版)给出的定位是:通过直观的 Web 界面,用户可以运行 Ollama 等开源 LLM 模型、部署个人的 OpenClaw Agent,并从一个干净的统一界面管理整个服务器环境,无需记忆繁杂的 CLI 命令。仓库代码恰好与这一描述对应,其主要能力被组织为三个并行的工程目录:
- agent/:v2 代后端(Go),承载网站、容器、数据库、备份等业务,并集中实现了 AI 管理相关的能力,如模型提供方目录、OpenClaw Agent 编排、Skills/Plugins 管理等;
- core/:精简后的基础核心后端,保留认证、备份、设置、命令、脚本库等通用能力;
- frontend/:基于 Vue 3 的现代 Web 前端。
从源码结构可以推断,1Panel 把"面板"与"AI 平台"做成了同一套代码基座:常规运维服务与 AI 编排服务并列于 agent/app/service/ 目录之下,这种"一体化"设计正是它在同类工具中区别于纯运维面板的关键。
为什么选 1Panel:面板选型横向对照
官方 README 以一张对照表说明 1Panel 在面板市场的差异点。以下信息源自官方文档声明(docs/README.fa.md),可作为选型时的参考输入而非第三方评测结论:
| 维度 | 1Panel | cPanel / Plesk | aaPanel | Webmin |
|---|---|---|---|---|
| 免费且开源 | ✅ | ❌ | 部分 | ✅ |
| 原生 AI Agent 运行环境 | ✅ | ❌ | ❌ | ❌ |
| 一键应用市场 | ✅ 165+ 应用 | ❌ | ✅ | ❌ |
| 现代化 UI(2020 年后设计) | ✅ | ❌ | 部分 | ❌ |
| Docker / 容器管理 | ✅ | ❌ | ❌ | ❌ |
| 活跃开发 | ✅ | ✅ | ✅ | 缓慢 |
这张表浓缩了 1Panel 的四个差异化方向:开源免费、内置 AI 运行时、容器化应用市场、现代交互设计。其中"容器管理"与"AI Agent 运行环境"两项需要源码佐证才能理解其真实实现,下文将分别展开。
核心特性与源码级佐证
1. AI 管理:模型目录、API 类型与认证抽象
面板级 AI 管理的地基是 agent/app/provider/catalog.go 中维护的"模型提供方目录"。从源码看,目录以catalog map[string]Meta定义(catalog.go),每个提供方通过Meta结构体描述:
type Meta struct { Key string DisplayName string DisplayNameKey string Sort uint DefaultAPIType string APIConfigs []APIConfig EnvKey string Models []Model }- 提供方覆盖面:内置了
custom、ollama、llmman、vllm、deepseek、openai、openrouter、anthropic、gemini、moonshot/kimi等主流来源,还包含zai(Z.ai/GLM)、minimax、xiaomi(MiMo)等国产模型提供方; - API 类型归一化:同一提供方可暴露多种协议,如
openai-completions、openai-responses、anthropic-messages、openai-images、openai-embeddings、gemini-generate-content等,并给出默认 API 类型(DefaultAPIType)与默认 BaseURL; - 认证模式抽象:定义了
AuthModeBearer(Authorization: Bearer)与AuthModeXAPIKey两种认证方式,例如 Anthropic 风格端点默认使用x-api-key(catalog.go),且部分提供方如custom允许编辑 BaseURL、DiscoverModels标记支持自动发现模型列表; - 规范化处理:
ResolveAuthMode、ResolveBaseURL、NormalizeModelID等函数处理模型 ID 前缀、遗留命名与端点路径归一化(如自动剥离/chat/completions、/v1/messages后缀),避免用户在填写模型时因格式差异反复出错。
因此文档中所说的"在面板内运行/接入多种 LLM",在实现上是对"提供方 + API 类型 + 认证方式 + BaseURL + 模型名"这一统一配置模型的展开,而 Ollama/vLLM/llmman 这类本地运行时则被定义为固定本地端点(如llmman指向http://127.0.0.1:17434/v1)的普通提供方。
2. OpenClaw Agent:一键部署与命令行编排
文档着重强调"部署个人 OpenClaw Agent、无需单独管理 AI 技术栈"。对照源码,1Panel 对 OpenClaw 的管理实际上是面板服务层通过 Docker exec 驱动容器内的 openclaw CLI完成的。
在 agent/app/service/agents_agents.go 的CreateRole中可以看到创建 Agent 角色的核心调用链:
args := []string{"openclaw", "agents", "add", req.Name} workspace := "/home/node/.openclaw/workspace-agent_" + req.Name agentDir := "/home/node/.openclaw/agents/" + req.Name args = append(args, "--workspace", workspace) if model := strings.TrimSpace(req.Model); model != "" { args = append(args, "--model", model) } for _, binding := range req.Bindings { ... args = append(args, "--bind", channel) } args = append(args, "--agent-dir", agentDir) args = append(args, "--non-interactive", "--json") output, err := cmd.RunDockerExecWithStdout(5*time.Minute, install.ContainerName, args...)这意味着每次 Agent 创建都会:在安装目录下分配独立 workspace(workspace-agent_<name>)与 agent 目录(agents/<name>),把面板选定的模型与频道绑定(如 Telegram/Discord 等渠道的--bind channel:accountID)透传给 openclaw,并以--json非交互方式执行。文件头部还定义了 Agent 支持的角色描述文件(AGENTS.md、SOUL.md、USER.md、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOT.md、BOOTSTRAP.md),可见 Agent 的"人格/身份/工具"均可通过 Markdown 文件定制。
而 agent/app/provider/openclaw.go 中的BuildOpenClawProviderPatch负责把面板侧的模型选择翻译为 OpenClaw 可用的 provider 补丁:它会把gemini归一化为google与google-generative-ai协议、把ollama/llmman视为免密钥的本地来源、处理 openai/openrouter/anthropic 的限定模型名保留逻辑,并最终产出PrimaryModel、ProviderKey、ModelID、APIKey、BaseURL、APIType、AuthHeader一套结构化配置,写入 OpenClaw 运行配置。
面板上呈现的 Agent 概览由 agent/app/service/agents_overview.go 的GetOverview实现:它汇总容器运行状态、应用版本、默认模型(从配置中agents.defaults.model.primary读取)与已配置频道数;当容器处于运行态时,还会并发统计 Skill 数量(通过docker exec ... openclaw skills list --json解析)、会话数量(读取data/conf/agents/*/sessions/*.jsonl文件)与定时任务数量。也就是说,"AI Agent 从创建到运行再到监控"的全流程,在面板内确实都有对应的操作与数据支撑,而非仅有入口。
此外,仓库 agent/utils/ai_tools/ 下提供gpu/、npu/、xpu/、accelerator/等探测子模块——从源码结构看,这与文档"监控 GPU 消耗"的能力相呼应,为本地推理场景提供硬件视角的观测基础。
3. 网站一键部署:域名、SSL 与 Nginx 自动装配
文档将"网站部署"描述为"生产就绪 + 自动域名绑定 + SSL 证书 + Nginx 配置"。仓库中以WebsiteService为入口(agent/app/service/website.go),其接口方法完整覆盖了网站生命周期:
type IWebsiteService interface { PageWebsite(req request.WebsiteSearch) (int64, []response.WebsiteRes, error) GetWebsites() ([]response.WebsiteDTO, error) CreateWebsite(create request.WebsiteCreate) error OpWebsite(req request.WebsiteOp) error ... DeleteWebsite(req request.WebsiteDelete) error }围绕该服务,仓库还配备了成体系的支撑模块:agent/app/service/website_ssl.go(SSL 证书签发与续期)、website_acme_account.go 与 website_dns_account.go(ACME/DNS 服务商凭据管理)、website_domain.go、website_proxy.go(反向代理)以及 website_rewrite.go(伪静态规则)。同时 agent/cmd/server/nginx_conf/ 内置了一批 Nginx 配置模板,配合 utils/nginx(parser 与 components),把"生成站点配置"从手写 conf 变为代码可解析、可渲染的结构化流程。域名绑定与 SSL 配置由此实现了自动化,这正是"无需手工折腾 Nginx"承诺背后的工程基础。
4. 应用市场:一键安装与升级
文档声明应用市场提供 165+ 开源应用的一键安装升级(数据为官方文档声明)。源码层面,应用生命周期由 agent/app/service/app_install.go、agent/app/service/app_upgrade.go 与 agent/app/service/app_sync_task.go 等模块承载,配套 agent/app/model/app_install.go 等数据模型;应用安装采用容器化隔离,把应用运行环境收敛到 Docker 中,从源头降低漏洞暴露面。应用升级、忽略升级名单(app_ingore_upgrade.go)等功能也均有独立服务实现,属于一个完整的"市场-安装-运维"闭环。
5. 容器与 Docker 管理
面板的容器管理并非简单封装,而是覆盖了容器、镜像、网络、卷与 Compose 的完整视图。相关服务散见于 agent/app/service/container*.go(容器基础操作、container_network.go 网络、container_volume.go 卷、container_compose.go Compose 栈),并向下封装为 utils/docker 的工具库。从目录结构看,甚至包含端口守卫(repo/docker_port_guard.go)与防火墙联动逻辑(firewall_docker.go),说明其容器管理是和安全策略打通设计的。
6. 安全与备份:企业级默认项
文档列出 WAF、防火墙规则、fail2ban、容器隔离、审计日志,以及一键备份到 AWS S3 / Cloudflare R2 / 本地存储并支持快照恢复。仓库中的实现分布如下:
- 防火墙:agent/app/service/firewall*.go 与 utils/firewall/(含 iptables/nftables helper、端口白名单、生命周期管理),实现规则下发而非仅展示;
- fail2ban 与 FTP 加固:utils/toolbox/fail2ban.go、utils/toolbox/pure-ftpd.go;
- 备份存储客户端:utils/cloud_storage/client/ 下按 20+ 个对象存储/云盘分别封装了上传客户端,与 agent/app/service/backup*.go 系列(按网站、应用、容器、数据库等粒度分文件)配对;
- 快照:agent/app/service/snapshot_create.go、snapshot_recover.go、snapshot_rollback.go 三件套实现创建-恢复-回滚的完整链路。
审计与操作追踪方面,Web 层存在 middleware/operation.go 操作中间件,可推断其对关键写操作做记录,为安全审计提供依据。
快速开始:从裸机到面板上线
官方 README 给出的上手路径非常短,整个安装通常在一分钟内完成。前置条件如下:
系统要求:Linux 服务器(Debian / Ubuntu / CentOS / Rocky),1 GB 内存,可访问互联网;官方文档称安装过程约 60 秒(docs/README.fa.md)。
在满足条件的服务器上执行官方快速安装脚本:
bash -c "$(curl -sSL https://resource.1panel.pro/v2/quick_start.sh)"安装完成后:
- 浏览器访问
http://<your-server-ip>:<port>/<security-path>; - 若需要找回登录凭据,通过 SSH 执行
1pctl user-info。
这里的<port>与<security-path>是安装过程中生成的随机端口与安全访问路径,体现了"安全默认值"的产品取向——即使初次使用,面板也不会暴露在默认端口与裸路径上。随后的运维基本都在 Web UI 完成:建站绑定域名、安装应用商店软件、创建备份计划、编排 OpenClaw Agent,CLI 仅在取回凭据等场景出现。
开源版与 Pro 版:能力边界对照
官方文档(docs/README.fa.md)承诺1Panel OSS 永久免费,Pro 版面向团队与生产负载增加能力,其对照关系如下(依据官方文档整理):
| 能力 | OSS | Pro |
|---|---|---|
| 应用一键安装 | ✅ | ✅ |
| AI Agent(OpenClaw) | 1 个 Agent | 无限 |
| WAF 与高级安全 | 基础 | ✅ |
| 网站防篡改保护 | ❌ | ✅ |
| 网站可用性监控 | ❌ | ✅ |
| 多节点管理 | ❌ | ✅ |
| 自定义 Logo 与主题 | ❌ | ✅ |
| 优先支持 | ❌ | ✅ |
从上表可见,OSS 版的核心价值(一键安装、基础安全、单 Agent 的 AI 能力)保持完整,Pro 更多在"规模化与多租户"维度增值,例如解除 Agent 数量限制、多节点统一管理。官方文档同时提及 Pro 订阅按年计费并提供 30 天免费试用,具体价格以官方定价页为准,此处不展开。
工程结构与参与方式
若想继续深入阅读代码,建议按以下路径切入:
- AI 管理入口:agent/app/provider/catalog.go(提供方目录)→ agent/app/service/agents_agents.go(Agent 编排)→ agent/app/service/agents_overview.go(运行概览);
- 网站与 SSL:agent/app/service/website.go 与 agent/app/service/website_ssl.go;
- 备份体系:agent/app/service/backup.go 与 utils/cloud_storage/client/;
- 安全:agent/app/service/firewall.go 与 utils/firewall/;
- 前端交互:frontend/views/(472 个 Vue 组件,按功能域组织)。
1Panel 采用 GNU GPL v3.0 协议开源;发现安全漏洞时,请先阅读 SECURITY.md 中关于披露流程的说明再行反馈。官方还通过社区(Discord)、官方文档站与 Issue 系统提供支持与答疑(外部社区链接未在此罗列,可从仓库根 README.md 导航查阅)。
总结
综合官方文档与仓库源码可以确认:1Panel 的核心竞争力并非某一个单一功能,而是"用面板的交互体验,统一承载传统运维与新兴 AI 负载"的系统工程。传统侧,它以容器化为底座,把网站、数据库、备份、安全规则的日常操作收敛为可点击的流程;AI 侧,它通过提供方目录与认证抽象接入主流模型,并借助openclawCLI 的容器内编排,把 Agent 的创建、绑定、监控做成面板原生能力。如果你正在寻找"一份能同时管好服务器与 AI Agent 的开源面板",1Panel 的设计思路值得作为重点评估对象,而上手成本——一次 60 秒的脚本安装——也足够低,可以直接在自己的 Linux 服务器上验证。
【免费下载链接】1Panel🔥 1Panel is a modern, open-source Linux server management panel and a lightweight AI management platform.项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考