news 2026/9/6 21:36:04

1Panel 开源 Linux 服务器管理面板全解:核心特性、快速部署与源码导读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1Panel 开源 Linux 服务器管理面板全解:核心特性、快速部署与源码导读

1Panel 开源 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

本文以官方多语言文档中的土耳其语版本 docs/README.tr.md 为核心素材,完整继承其项目定位、五大核心特性、一键安装步骤与安全/许可证说明,并深入当前仓库源码,逐一印证这些特性背后的模块实现、双二进制(core/agent)架构、1pctl命令行工具与 i18n 多语言体系,帮助读者既能快速部署 1Panel,又能从源码层面理解它的设计与工程组织。

一、1Panel 是什么:定位与五大核心特性

文档开篇的定义很简洁:

1Panel, Linux sunucu yönetimi için modern, açık kaynaklı bir web tabanlı kontrol panelidir. (1Panel 是一款现代化的、开源的、基于 Web 的 Linux 服务器管理控制面板。)

即“一款现代、开源的 Linux 服务器管理面板”。文档随后列出五项核心能力,这些能力在仓库中均有对应的模块落点:

文档中的特性(土耳其语原文大意)仓库中的实现落点
高效管理:主机监控、文件管理、数据库管理、容器管理agent/service/monitor.go、agent/service/file.go、agent/service/database.go、agent/service/container.go
快速建站:深度集成 WordPress 等建站软件,一键域名绑定与 SSL 配置agent/service/website.go、agent/service/website_ssl.go、agent/service/website_acme_account.go
应用商店:高质量开源应用的一键安装与升级agent/service/app_install.go、agent/service/app_upgrade.go、agent/service/app_sync_task.go
安全与可靠:容器化隔离、安全的应用部署、防火墙管理与日志审计agent/service/firewall.go、agent/service/firewall_docker.go、agent/middleware/operation.go
一键备份与恢复:支持多种云存储方案,保障数据完整性与可用性agent/service/backup.go 及 backup_*.go 系列文件、agent/utils/cloud_storage/ 下的多厂商云存储客户端

从源码结构看,上述模块都位于agent/侧,即真正操作宿主机的“执行端”;而 Web 界面、登录认证、分组管理等则由core/侧承担,这一分工在后面的构建与架构部分进一步展开。

二、快速开始:一键安装脚本

文档给出的官方安装方式是“Tek Tuşlu Yükleme”(一键安装):

curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh

执行该脚本后按交互提示操作即可完成安装。文档建议读者查阅官方文档站点获取更多细节(docs.1panel.pro,此处不重复外链)。

安装完成后如何访问面板?结合仓库源码可以给出确切答案:

  • 安装入口地址的构成是协议://地址:端口/安全入口1pctl user-info子命令的输出逻辑就保存在 core/cmd/server/cmd/user-info.go:它从数据库读取ServerPortSSLSecurityEntranceBindDomainSystemIP等键值,拼出访问地址。若启用 SSL 则协议为https,否则为http;若配置了绑定域名则优先用域名替代 IP。
  • 凭据展示策略:只有当数据库中没有任何“登录成功”记录时,命令才会显示初始密码,否则密码以********掩码显示,并提示使用1pctl update password重置(见 core/cmd/server/cmd/root.go 中的shouldShowInitialPassword逻辑)。
  • 密码在数据库中是加密存储的,命令会用EncryptKey配置项解密后再打印(core/cmd/server/cmd/user-info.go),这解释了为什么安装脚本生成的凭据既安全又可通过命令行找回。
  • 权限要求:非 root 用户执行时,命令会直接提示改用sudo 1pctl user-info(core/cmd/server/cmd/user-info.go)。

因此,推荐的部署验证流程为:

  1. 以 root 身份执行一键安装脚本;
  2. SSH 登录服务器执行1pctl user-info,得到面板访问地址(http(s)://IP:端口/安全入口)与初始用户名/密码;
  3. 浏览器访问该地址完成首次登录,之后建议立即修改密码。

命令行入口一览

1pctl对应 core 侧的 cobra 命令树,子命令定义在 core/cmd/server/cmd/ 目录下:

子命令文件用途
user-infouser-info.go查看访问地址与凭据
updateupdate.go更新面板/重置密码(1pctl update password
restorerestore.go恢复快照
resetreset.go重置配置
versionversion.go查看版本
app/listen-ip/userapp.go 等应用与网络监听相关操作

core 命令通过ctl_conf.LoadFromFile("/usr/local/bin/1pctl", "BASE_DIR")从 1pctl 可执行文件中解析出安装基目录,再定位BASE_DIR/1panel/db下的 SQLite 数据库(core/cmd/server/cmd/root.go)。这也从源码层面解释了为什么1pctl是安装后的“控制中枢”。

三、架构与工程组织:core 与 agent 双端

从仓库目录结构可以清楚看到 1Panel 是“双端”设计:

  • core/:核心服务(Web 服务、会话认证、分组、备份调度、脚本库、命令通道等),入口为 core/cmd/server/main.go,二进制名为1panel-core
  • agent/:主机侧代理(监控、文件、容器、数据库、网站、备份执行、防火墙等),入口为 agent/cmd/server/main.go,二进制名为1panel-agent,其根命令名为1panel-agent(agent/cmd/server/cmd/root.go);
  • frontend/:Vue 前端工程,构建产物被嵌入 core 的 Web 资源目录;
  • docs/:各语言 README 与翻译规范(docs/TRANSLATION.md)。

Makefile 完整描述了构建链路:

build_frontend: cd $(WEB_PATH) && npm install && npm run build:pro build_core_on_linux: cd $(CORE_PATH) \ && CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) $(GOBUILD) -trimpath -ldflags '-s -w' -o $(BUILD_PATH)/$(CORE_NAME) $(CORE_MAIN) build_agent_on_linux: cd $(AGENT_PATH) \ && CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) $(GOBUILD) -trimpath -ldflags '-s -w' -o $(BUILD_PATH)/$(AGENT_NAME) $(AGENT_MAIN) build_all: build_frontend build_core_on_linux build_agent_on_linux

要点:前端先执行npm run build:pro产出静态资源(Makefile),随后 core、agent 两个 Go 模块分别在各自模块目录下以CGO_ENABLED=0-trimpath -ldflags '-s -w'静态编译(Makefile),最终产出1panel-core1panel-agent两个可执行文件(见 Makefile 的CORE_NAME/AGENT_NAME变量)。在 macOS 上可用build_on_local目标交叉编译出 linux/amd64 二进制(Makefile)。

从源码结构看,这种拆分让 agent 可以在远程节点上独立运行、执行主机级操作,而 core 负责统一的 Web 入口与鉴权——这也为多节点管理类能力提供了基础。

API 风格与 API Key 鉴权

agent/cmd/server/main.go 的 Swagger 注释声明了 API 约定:

  • 所有业务接口挂在/api/v2前缀下(@BasePath /api/v2);
  • 支持 API Key 鉴权,Token 计算规则为md5('1panel' + API-Key + UnixTimestamp)
  • 请求头需携带1Panel-Token1Panel-Timestamp(当前 Unix 秒级时间戳)。

按该注释给出的调用示例(已转述自源码注释):

curl -X GET "http://{host}:{port}/api/v2/toolbox/device/base" \ -H "1Panel-Token: <1panel_token>" \ -H "1Panel-Timestamp: <current_unix_timestamp>"

路由组织方面,core 侧路由按资源拆分在 core/router/(如 ro_setting.go、ro_backup.go、ro_group.go),agent 侧同理位于 agent/router/(如 ro_dashboard.go、ro_website.go)。

四、多语言文档体系与 i18n 机制

本文素材所在的docs/目录是 1Panel 的多语言 README 集合,共 15 个文件:README.tr.md(土耳其语,本文主体)、README.zh-Hans.md、README.zh-Hant.md、README.ja.md、README.ru.md、README.de.md、README.es-es.md、README.fr.md、README.ko.md、README.ar.md、README.id.md、README.ms.md、README.pt-br.md、README.fa.md、README.lo.md,以及维护翻译流程的 docs/TRANSLATION.md。文档内顶部的语言徽章即链接到这些文件(例如土耳其语徽章指向docs/README.tr.md,根 README 见 README.md 第 29 行附近)。

翻译工作并非只有文档层面。程序自身的多语言同样由仓库内维护:

  • 核心文案资源位于 core/i18n/lang/ 与 agent/i18n/lang/,各含 14 个语言包:zh.yamlen.yamltr.yamlja.yamlru.yaml等——注意 agent/i18n/lang/tr.yaml 正是土耳其语的界面文案;
  • 1pctl命令输出也走 i18n:user-info支持--language/-l参数切换输出语言(core/cmd/server/cmd/root.go),如1pctl user-info -l tr可以推断会输出土耳其语文案;
  • 语言初始化逻辑分别在 core/i18n/i18n.go 与 agent/i18n/i18n.go。

特性到源码的索引

结合文档五大特性,给出一份“从文档读到源码”的索引,方便延伸阅读:

关注点建议阅读路径
主机监控/设备信息agent/service/monitor.go、agent/service/device.go、agent/utils/psutil/
容器与 Composeagent/service/container.go、agent/service/container_compose.go、agent/utils/docker/
数据库(MySQL/PostgreSQL/MongoDB/Redis)agent/service/database.go、agent/utils/mysql/、agent/utils/postgresql/、agent/utils/redis/
网站与 SSLagent/service/website.go、agent/service/website_ssl.go、agent/utils/ssl/
应用商店agent/service/app_install.go、agent/service/app_sync_task.go
备份(本地/容器/网站/数据库/云存储)agent/service/backup.go、agent/service/backup_container.go、agent/service/backup_website.go、agent/utils/cloud_storage/
防火墙(iptables/nftables 双后端)agent/utils/firewall/iptables_helper/、agent/utils/firewall/nftables_helper/
计划任务agent/cron/cron.go 及 agent/cron/job/
定时快照/SSL 自动续签agent/cron/job/ssl.go、agent/cron/job/website.go

此外,仓库根目录还包含 AI 管理相关能力(如 agent/service/tensorrt_llm.go、agent/utils/ai_tools/ 下的 GPU/NPU 加速工具链),与土耳其语文档中“轻量 AI 管理平台”的项目描述相呼应;如需了解版本能力差异,根 README.md 中给出了 OSS/Pro/Ent 的特性对照表,可作为补充参考。

五、安全信息与许可证

文档“Güvenlik Bilgileri”一节明确给出:发现任何安全问题时,请通过邮件wanghe@fit2cloud.com联系项目方披露。根目录的 SECURITY.md 同样描述了漏洞披露流程,建议披露前先阅读。

文档“Lisans”一节的完整表述(转述自 docs/README.tr.md 第 71-75 行):

  • 本软件以GNU 通用公共许可证 v3(GPLv3)授权发布;
  • 只能以与许可证兼容的方式使用本软件;
  • 除适用法律要求或书面同意外,按许可证分发的软件按“原样”(OLDUĞU GİBİ / AS IS)提供,不带任何明示或暗示的保证或条件
  • 具体权限与限制条款以许可证原文为准,许可证全文见 LICENSE。

这一点也与 agent/cmd/server/main.go 中 Swagger 注释声明的@license.name GPL-3.0相互印证:文档、协议文件与源码注释三处一致,均为 GPLv3。

六、小结与延伸阅读

回到本文的核心素材——土耳其语文档本身,它浓缩了 1Panel 的四个信息面:是什么(现代开源 Web 面板)、能做什么(管理/建站/应用商店/安全/备份五大特性)、怎么开始(一键安装脚本)、合规与披露(GPLv3 + 安全邮箱)。而结合仓库源码后可以补充回答四个更深层的问题:

  1. 代码怎么组织:core(Web 入口与鉴权)+ agent(主机执行端)+ frontend(Vue 前端)三大模块,由 Makefile 串联构建;
  2. 安装后怎么运维1pctl user-info1pctl update password等子命令基于 SQLite 配置库(BASE_DIR/1panel/db)实现,源码位于 core/cmd/server/cmd/;
  3. 多语言怎么落地:文档层是 docs/ 下 15 份语言版 README,程序层是 core/i18n/lang/ 与 agent/i18n/lang/ 的 YAML 文案包,含完整的土耳其语支持;
  4. 接口怎么调用/api/v2前缀 +1Panel-Token/1Panel-Timestamp双请求头的 API Key 鉴权约定(见 agent/cmd/server/main.go 注释)。

建议的后续路径:先按本文第二节完成一次真实安装与访问,再沿第四节的“特性到源码索引”选取自己关心的模块(如备份或防火墙)深入阅读对应 service 目录,即可把文档级认知升级为源码级理解。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 21:33:46

Python三级考级全攻略:核心考点、备考路线与上机实操指南

简介&#xff1a;中国电子学会青少年软件编程等级考试Python三级备考资料&#xff0c;面向参加等级考试的青少年及辅导教师&#xff0c;系统梳理三级涉及的Python语言基础核心知识与常见题型。文档重点覆盖表达式与运算符、变量与数据类型、条件判断与循环控制、赋值语句、变量…

作者头像 李华
网站建设 2026/9/6 21:30:23

猫抓 cat-catch 视频嗅探与下载:3 步拿到网页视频的完整指南

猫抓 cat-catch 视频嗅探与下载&#xff1a;3 步拿到网页视频的完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff08;cat-catc…

作者头像 李华
网站建设 2026/9/6 21:30:07

单相电压型全桥逆变电路Simulink仿真与参数设计全解析

简介&#xff1a;《单相电压型全桥逆变电路及其Simulink仿真课程设计》是一份完整的电力电子课程设计文档&#xff0c;面向电气工程及相关专业学生或需要完成逆变电路设计任务的学习者。资料以docx格式提供&#xff0c;压缩包内共1个文件&#xff0c;大小约903KB&#xff0c;内…

作者头像 李华
网站建设 2026/9/6 21:26:24

猫抓浏览器资源嗅探扩展:免费的视频下载与M3U8解析完整指南

猫抓浏览器资源嗅探扩展&#xff1a;免费的视频下载与M3U8解析完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你打开一个网页&#xff0c…

作者头像 李华
网站建设 2026/9/6 21:24:36

5条命令跑通WeKnora本地知识问答:私有RAG知识库快速搭建

5条命令跑通WeKnora本地知识问答&#xff1a;私有RAG知识库快速搭建 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://gitcode.com…

作者头像 李华