1Panel:开源 Linux 服务器运维管理面板——一键部署、双引擎架构与核心能力全解析
1Panel 是一款现代、开源的 Linux 服务器运维管理面板,通过 Web 界面即可完成主机监控、文件与数据库管理、容器管理、快速建站、应用商店部署及一键备份恢复等运维工作。本文基于仓库主文档 README(繁体中文) 与根目录 README.md 的内容展开,并结合 Makefile、core 服务入口、agent 服务入口、备份数据模型 等仓库源码,帮助读者在完整继承官方文档功能说明的基础上,进一步理解 1Panel 的整体架构、技术选型与落地方式。
一、什么是 1Panel:五大核心能力
官方文档将 1Panel 定位为「新一代的 Linux 伺服器運維管理面板」(新版描述为「現代化、開源的 Linux 伺服器運維管理面板」),其核心能力可归纳为五点,每一点在仓库中都有对应的实现目录或模块:
- 高效管理:使用者可以透过 Web 介面轻松管理 Linux 伺服器,如主机监控、文件管理、数据库管理、容器管理等。从源码结构看,这些能力分别落在 agent/service 下的
monitor.go(监控)、file.go(文件)、database_mysql.go/database_postgresql.go/database_mongodb.go/database_redis.go(数据库)以及container.go(容器)等文件中。 - 快速建站:深度整合开源建站软件 WordPress 和 Halo,域名绑定、SSL 证书配置等操作一键搞定。对应实现可见 agent/service/website.go 及
website_domain.go、website_ssl.go、website_acme_account.go、website_dns_account.go等文件,覆盖站点、域名、ACME 证书与 DNS 账户的完整链路;agent/go.mod中依赖了go-acme/lego库(且指向维护分支github.com/1Panel-dev/lego/v5),印证了证书自动签发能力。 - 应用商店:精选上架各类高品质的开源工具和应用程序,协助使用者轻松安装并升级。实现位于 agent/service/app_install.go、
app_upgrade.go、app_sync_task.go与 agent/app/model/app_detail.go 等文件中,覆盖应用安装、版本同步与升级流程。 - 安全可靠:基于容器管理并部署应用,实现最小的漏洞暴露面,同时提供病毒防护、防火墙和日志审计等功能。仓库中可见 agent/utils/firewall/filter 防火墙适配层、
fail2ban.go入侵防护、clam.go病毒防护(ClamAV 相关)以及logs.go日志审计等模块。 - 一键备份:支持一键备份和复原,使用者可以将资料备份到各类云端存储介质,永不遗失。下文第四节将结合源码详细展开备份类型与云端存储适配器的具体范围。
二、快速开始:一键安装
文档给出的官方一键安装方式为(适用于可联网的 Linux 主机,以 root 或具备 sudo 权限的用户执行):
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
文档同时指出:如果是用于离线环境,推荐使用安装包方式进行安装部署(即先在有网环境下载离线安装包,再拷贝到目标主机部署)。
根目录 README.md 在安装完成后补充了两个实用要点,可一并掌握:
- 安装完成后,在浏览器中打开
http://<你的服务器IP>:<端口>/<安全入口路径>即可访问面板; - 如需通过 SSH 找回访问凭据,可执行
1pctl user-info查看账户信息。
这一「安全入口路径」机制本身就是一种安全设计:面板入口并非固定挂在根路径,而是安装时生成的随机子路径,降低了被自动化扫描命中的概率。
三、双引擎架构:core 与 agent 如何分工
1Panel 采用「核心 + 代理」的双服务架构,这一设计在 Makefile 中体现得非常直接:构建产物包含两个独立的 Go 二进制文件——1panel-core(由 core/cmd/server/main.go 编译)与 1panel-agent(由 agent/cmd/server/main.go 编译),再加上 Vite 构建的前端静态资源。
从源码结构看,两个服务的职责边界大致如下:
| 组件 | 目录 | 职责 |
|---|---|---|
| core | core/ | 面板自身的认证、账户与群组、备份账户、脚本库、系统设置、升级与日志等「面板级」业务 |
| agent | agent/ | 直接面向宿主机的运维操作:主机监控、文件、容器、数据库、网站、应用商店、防火墙、定时任务等 |
| frontend | frontend/ | 基于 Vue 3 的 Web 前端 |
两个入口文件均使用 Cobra 风格命令框架(cmd.RootCmd.Execute()),并通过 Swagger 注解声明了对外 API 的安全认证方式(见 core/cmd/server/main.go 的注解注释):
- API Key 认证格式:
md5('1panel' + API-Key + UnixTimestamp); - 请求头:
1Panel-Token(面板 API Key 对应的令牌)与1Panel-Timestamp(当前 Unix 秒级时间戳); - 示例调用:
curl -X GET "http://{host}:{port}/api/v2/toolbox/device/base" \
-H "1Panel-Token: <1panel_token>" \
-H "1Panel-Timestamp: <current_unix_timestamp>"
这套带时间戳的签名机制保证了 API 请求的时效性,可用于将 1Panel 能力接入外部自动化脚本。
四、技术栈与关键实现
4.1 后端(Go)
从 agent/go.mod 的依赖清单可以看出 agent 侧的技术选型:
- Web 框架:
gin-gonic/gin; - 数据库:
glebarez/sqlite(纯 Go 实现的 SQLite 驱动)配合gorm,面板自身元数据落地在本地 SQLite,零外部依赖; - 容器生态:
docker/docker、docker/cli、compose-spec/compose-go,支撑容器管理与 Docker Compose 编排; - 数据库客户端:
go-sql-driver/mysql、jackc/pgx/v5(PostgreSQL)、go-redis/redis; - 证书签发:
go-acme/lego/v5(ACME 协议客户端); - 终端能力:
creack/pty+gorilla/websocket,支撑 Web 终端的 WebSocket 会话(对应agent/utils/terminal/下的实现); - 多语言:
nicksnyder/go-i18n/v2,配套 agent/i18n/lang 下 14 个语言的 YAML 词条文件。
core 侧同样为 Go 服务(见 core/go.mod),负责登录认证、MFA、Passkey、会话等安全相关能力,core/middleware 目录下可见 IP 限流(ip_limit.go)、CSRF 防护(csrf_protect.go)、密码过期(password_expired.go)、会话管理(session.go)等中间件。
4.2 前端(Vue 3)
frontend/package.json 展示了前端的完整技术栈:
- 框架:Vue 3.5 + TypeScript + Pinia(状态管理)+ Vue Router;
- UI 组件库:Element Plus 2.14,配合 Tailwind CSS;
- 可视化:ECharts(监控图表)、nprogress(进度条);
- 终端与编辑器:
@xterm/xterm+@xterm/addon-fit(Web 终端)、@novnc/novnc(noVNC 远程桌面)、CodeMirror 6 / Monaco Editor(在线文件编辑,含 HTML/JSON/PHP 语言包); - 文档预览:
@vue-office/docx、@vue-office/excel,用于面板内直接预览 Office 文档; - 构建:Vite 8 + vite-plugin-eslint2(构建时强制 ESLint 检查)。
Makefile 中的构建流程为:build_frontend(npm install && npm run build:pro)→ build_core_on_linux / build_agent_on_linux(CGO_ENABLED=0 静态编译,-trimpath -ldflags '-s -w' 精简二进制),build_all 目标串起全链路。在 macOS 上可用 build_on_local 交叉编译出 Linux amd64 产物。静态编译(CGO 关闭 + SQLite 纯 Go 驱动)正是 1Panel 对目标发行版适配能力好的关键原因——单一静态二进制即可在大多数 Linux 环境运行。
五、一键备份体系:支持的类型与云端介质
文档将「一键备份」列为核心卖点:支持一键备份和复原,资料可备份到各类云端存储介质。结合源码,这一能力的覆盖范围可以精确描述:
5.1 备份对象类型
agent/app/dto/backup.go 中 CommonBackup / CommonRecover 结构体的 validate 标签枚举了备份与恢复支持的全部对象类型:
app、mysql、mariadb、redis、website、postgresql、mongodb、
mysql-cluster、postgresql-cluster、redis-cluster、container、compose
即:应用、六类数据库(含 MySQL/MariaDB/PostgreSQL/Redis/MongoDB 的单实例与集群)、网站、容器与 Compose 编排均可作为备份对象,且 CommonRecover 中标明恢复同样支持同一组类型,保证「备份—恢复」闭环。备份记录模型(BackupRecords)中还保留了账户类型、文件目录、任务 ID 与状态字段,可追踪每次备份的来源与结果。
5.2 云端存储适配器
agent/utils/cloud_storage/client 目录实现了多云适配层,每个介质一个客户端实现:
- 公有云对象存储:阿里云 OSS(
oss.go)、腾讯云 COS(cos.go)、华为云 Kodo(kodo.go)、Amazon S3 兼容存储(s3.go); - 企业/私有存储:MinIO(
minio.go)、WebDAV(webdav.go)、SFTP(sftp.go); - 网盘类:Google Drive(
google_drive.go)、OneDrive(onedrive.go)、UP 云盘(up.go); - 本地:
local.go(本机目录)。
备份账户的凭据结构在 agent/app/dto/backup.go 的 BackupOperate 中定义:Type(介质类型)、AccessKey / Credential(凭据)、Bucket(存储桶)、BackupPath(备份路径)与 Vars(附加参数),并对敏感凭据提供 RememberAuth 选项,避免每次都重新填写密钥。
六、社区版与专业版
官方文档说明:相较于社区版,1Panel 专业版为使用者提供了大量增强功能及技术支持服务,增强功能包括 WAF 增强、网站防篡改、网站监控、GPU 监控、黑金主题及自定义界面等。
从源码结构看,仓库通过 Go 构建标签实现了社区版/专业版的代码隔离:agent/utils/xpack/community.go 带有 //go:build !xpack && !enterprise 标签,在社区版构建下提供空实现的 AlertProvider 与 MultiNodeProvider(多节点管理),而专业版/企业版能力(如告警推送渠道、多节点)在开启 xpack 标签时由 agent/utils/xpack/providers 中的对应实现注入。这种设计让同一个代码库可以同时产出社区版与商业版二进制。
七、开源协议与项目生态
- License:本项目采用 GNU General Public License v3.0(GPLv3)协议发布,版权方为 FIT2CLOUD 飞致云(Copyright (c) 2014-2026)。相关声明见 LICENSE 与 docs/README.zh-Hant.md 的 License 章节。
- 贡献与安全:参与开发前可阅读 CONTRIBUTING.md 与行为准则 CODE_OF_CONDUCT.md;发现漏洞前请先阅读 SECURITY.md。
- 姊妹项目:文档列出了 FIT2CLOUD 生态中的其他明星开源项目,包括 MaxKB(基于 LLM 的开源知识库问答系统)、JumpServer(开源堡垒机)、Halo(开源建站工具)、DataEase(数据可视化分析工具)、MeterSphere(持续测试工具)与 KubePi(K8s 面板),它们与 1Panel 在运维与建站场景中可形成互补。
- 文档与社区:1Panel 的多语言 README 覆盖了繁/简体中文、英文、日文、法文、德文、西班牙文等 15 种语言(见 docs 目录下的
README.*.md文件),便于不同语言区的使用者查阅;简体中文版见 docs/README.zh-Hans.md。
八、小结
- 定位:1Panel 是一款开源(GPLv3)的 Linux 服务器运维管理面板,核心价值是「Web 界面 + 容器化部署 + 一键备份」;
- 架构:core(面板级业务与安全认证)+ agent(宿主机运维操作)+ frontend(Vue 3)三层结构,静态编译的双二进制部署模型;
- 上手:一条
curl ... quick_start.sh命令完成安装,离线环境使用安装包方式;1pctl user-info可找回登录凭据; - 能力边界:备份覆盖应用、六类数据库、网站、容器与 Compose 共 12 种对象类型,云端介质覆盖 S3 系对象存储、MinIO、WebDAV、SFTP、网盘及本地;专业版在 WAF 增强、网站防篡改、GPU 监控、多节点等方向提供增强能力。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00