首页
/ 1Panel 开源 Linux 服务器管理面板:功能全景、快速安装与源码架构解读

1Panel 开源 Linux 服务器管理面板:功能全景、快速安装与源码架构解读

2026-09-05 12:47:34作者:谭伦延

本文以 1Panel 仓库中的日语版项目文档 docs/README.ja.md 为主体,系统梳理该开源 Linux 服务器管理面板的五大核心能力、一键安装命令与多语言支持矩阵,并结合 coreagent 两个 Go 服务、frontend Vue 3 前端的源码结构,解读其"双后端 + 前端"的工程架构,帮助读者在几分钟内完成部署决策并理解面板的底层实现脉络。

1Panel 是什么

1Panel 定位为"最高评价的 Web 版 Linux 服务器管理工具"(原文档日语表述:最高評価のWebベースのLinuxサーバー管理ツール),即一款现代化的开源 Linux 服务器操作与管理系统。根据 docs/README.ja.md 的官方描述,它提供五大核心能力:

  • 效率化管理(効率的管理):通过 Web 图形界面管理 Linux 服务器,覆盖主机监控、文件管理、数据库管理、容器管理等日常运维场景,无需登录终端即可完成绝大多数操作。
  • 快速网站构建(迅速なウェブサイト構築):深度集成开源建站软件 WordPress 与 Halo,支持域名绑定、SSL 证书配置等步骤的一键化完成,显著降低建站门槛。
  • 应用商店(アプリストア):内置经过筛选的高质量开源工具与应用目录,支持一键安装与升级。英文版主 README.md 中进一步注明应用市场包含 165+ 应用。
  • 安全与可靠性:基于容器管理与应用部署技术,将应用运行在容器中以收敛最小脆弱性暴露面,同时提供防火墙、日志审计等安全功能。
  • 一键备份(ワンクリックバックアップ):支持一键备份与恢复,并可把备份数据同步到多种云存储介质,避免数据永久丢失。

此外,英文版 README.md 还指出 1Panel 同时是一个轻量级 AI 管理平台,提供 AI 网关、Skills Hub 以及 Agent 与模型的集中管理能力,属于在日语文档五大能力基础上的新版演进方向。

快速开始:一条命令安装面板

docs/README.ja.md 给出的快速开始方式是在目标 Linux 服务器执行一条安装脚本命令:

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

该命令分两步:先用 curl -sSL 静默下载官方快速开始脚本到本地 quick_start.sh,再用 bash 执行完成初始化安装。

需要说明版本适用前提:仓库根目录的英文版 README.md 给出的当前(v2)安装命令为:

bash -c "$(curl -sSL https://resource.1panel.pro/v2/quick_start.sh)"

两条命令分别对应面板的不同代际脚本入口,部署新版面板时建议以 README 中的 v2 脚本为准。安装完成后:

  1. 在浏览器打开 http://<服务器IP>:<端口>/<安全路径> 进入面板登录页;
  2. 如需要找回访问凭据,可通过 SSH 执行 1pctl user-info 命令获取当前面板的用户信息。

面板以独立进程运行于宿主机,因此上述凭据查询与安装脚本均由服务器侧完成,Web 界面仅用于登录后的管理操作。

多语言支持:16 种语言的文档矩阵

docs/README.ja.md 文档头部以徽章链接的形式列出了 16 种语言的版本入口,覆盖从欧洲到亚洲的主要语言。转换为仓库根路径后,各语言文档的位置如下:

语言 文档路径
English README.md
中文(简体) docs/README.zh-Hans.md
中文(繁体) docs/README.zh-Hant.md
日本語 docs/README.ja.md
Português (Brasil) docs/README.pt-br.md
العربية docs/README.ar.md
Deutsch docs/README.de.md
Español docs/README.es-es.md
français docs/README.fr.md
한국어 docs/README.ko.md
Bahasa Indonesia docs/README.id.md
Türkçe docs/README.tr.md
Русский docs/README.ru.md
Bahasa Melayu docs/README.ms.md
Persian docs/README.fa.md
ພາສາລາວ docs/README.lo.md

这种多语言矩阵并不只是文档层面——从源码结构看,前后端均内置了 i18n 语言包:agent/i18n/lang/core/i18n/lang/ 目录下各存放了 14 份语言 YAML 文件(含 en、zh、zh-Hant、ja、ko、lo、pt-BR、ms、ru、tr、fa、es-ES、fr 等),前端 frontend/src/lang/ 下同样维护着 14 个语言文件,说明面板界面与错误提示消息在运行时均可按用户选择的语言输出。

安全性与漏洞披露

docs/README.ja.md 在"セキュリティ情報"一节中说明:发现安全问题时应通过邮件 wanghe@fit2cloud.com 联系开发团队。仓库中的 SECURITY.md 给出了与之对应、更完整的披露策略:

  • 目前处于安全支持范围内的版本为 v1.x
  • 官方明确请求:在漏洞修复发布之前,不要向 1Panel 开发团队以外的任何人披露漏洞细节,统一通过上述邮箱提交报告。

结合面板"容器化部署应用、防火墙与日志审计"的设计(见上文功能全景),安全策略与产品能力是相互配套的:产品侧收敛攻击面,社区侧规范漏洞披露流程。

许可证:GPLv3

docs/README.ja.md 的 License 部分声明:该项目文件依据 GNU General Public License 版本 3(GPLv3)授权;除遵守该许可证外不得使用本文件,且依照适用法律要求或书面同意的情形除外,按许可证分发的软件均以"现状(AS IS)"提供,不含任何形式担保。仓库根目录的 LICENSE 即完整的 GPLv3 协议文本,agent 服务的 Swagger 元信息(见 agent/cmd/server/main.go 中的 @license.name GPL-3.0 注释)也与其保持一致。

源码架构解读:core / agent / frontend 三段式结构

原文档以功能与部署视角介绍 1Panel,而仓库源码则揭示了支撑这些功能的工程骨架。整个项目由三个可独立构建的模块组成:

1. core:面板核心服务(1panel-core)

core/cmd/server/main.go 是核心服务入口,构建产物名为 1panel-core(见 Makefile)。从 core/go.mod 的依赖清单可以确认其职责范围:

  • Web 框架与 API:gin(HTTP 框架)、gin-contrib/gzip
  • 会话与安全认证:go-oidc/v3(OIDC)、crewjam/saml(SAML SSO)、go-ldap/ldap/v3(LDAP)、go-webauthn/webauthn(通行密钥/passkey)、自研验证码依赖 base64Captcha
  • 数据库:glebarez/sqlite(纯 Go SQLite 实现)与 go-gormigrate/gormigrate/v2 做数据库迁移。

结合 core/app/ 下的 auth、backup、group、logs、setting、upgrade 等服务目录可以推断:core 负责登录认证、多节点分组管理(group)、面板备份、日志与版本升级等"面板自身"层面的能力。

2. agent:服务器代理(1panel-agent)

agent/cmd/server/main.go 是代理入口,构建产物名为 1panel-agent(见 Makefile)。该文件头部的 Swagger 注释还直接给出了面板对外 OpenAPI 的鉴权方式:

  • API 基础路径为 /api/v2
  • 请求头需携带 1Panel-Token(面板 API Key)与 1Panel-Timestamp(当前 Unix 秒级时间戳),Token 的计算规则为 md5('1panel' + API-Key + UnixTimestamp)
  • 注释中附有一个可直接复制的 curl 示例,调用 GET /api/v2/toolbox/device/base 接口获取设备基础信息。

agent/go.mod 的依赖可见其核心职责:docker/dockerdocker/cli(容器管理)、go-acme/lego/v5(ACME 证书申请,且替换为 1Panel 维护的 fork 版本)、compose-spec/compose-go(Compose 编排)、aliyun-oss-go-sdk 等云存储 SDK,以及 creack/pty(终端伪终端,支撑 Web 终端功能)。agent/app/service/ 目录进一步细化了数据库(MySQL/MongoDB/PostgreSQL/Redis)、网站(域名、SSL、反代、负载均衡)、备份、容器、防火墙、监控等具体业务实现。

3. frontend:Vue 3 Web 界面

frontend/package.json 显示前端基于 Vue 3.5 + TypeScript + Vite 构建,UI 组件库为 Element Plus 2.14,状态管理使用 Pinia,国际化使用 vue-i18n。与面板功能直接相关的依赖包括:

  • @xterm/xterm + @xterm/addon-fit:Web 终端组件;
  • monaco-editorcodemirror:文件编辑器(对应"文件管理"能力);
  • @novnc/novnc:VNC 远程桌面客户端;
  • echarts:监控图表(对应"主机监控"能力);
  • @vue-office/docx / @vue-office/excel:文档与表格在线预览。

开发侧脚本同样可直接复用:npm run dev 启动 Vite 开发服务器(node --max-old-space-size=8192 为构建预留了 8GB 堆内存),npm run build:pro 执行生产构建,npm run type-check 跑 vue-tsc 类型检查。

4. 构建与发布流程

Makefile 完整定义了三段式构建流程,值得作为实操参考:

build_all: build_frontend build_core_on_linux build_agent_on_linux
  • build_frontend:进入 frontend 目录执行 npm install && npm run build:pro
  • build_core_on_linux / build_agent_on_linux:分别编译 coreagentcmd/server/main.go,均采用 CGO_ENABLED=0 纯静态编译、-trimpath -ldflags '-s -w' 去除调试符号,产物输出到 build/1panel-corebuild/1panel-agent
  • build_on_local:为 macOS 开发者提供的交叉编译目标(GOOS=linux GOARCH=amd64),方便在本机直接产出 Linux 二进制。

一键备份能力背后的云存储适配层

日语文档中"ワンクリックバックアップ"提到可把数据备份到"さまざまなクラウドストレージメディア"(多种云存储介质)。这一承诺在源码中有明确的落地实现:agent/utils/cloud_storage/cloud_storage_client.go 定义了统一的 CloudStorageClient 接口(ListBucketsListObjectsExistDeleteUploadDownloadSize),并由 NewCloudStorageClient 工厂方法按备份类型分发到 13 个具体实现。

agent/utils/cloud_storage/client/ 目录可确认支持的介质包括:本地存储(local)、S3 兼容协议(s3)、阿里云 OSS(oss)、SFTP(sftp)、WebDAV(webdav)、MinIO(minio)、腾讯云 COS(cos)、七牛 KODO(kodo)、OneDrive(onedrive)、又拍云(up)、阿里(ali)以及 Google Drive(google_drive)。以 agent/utils/cloud_storage/client/s3.go 为例,S3 客户端基于 minio-go/v7 实现,从配置参数 accessKeysecretKeyendpointregionbucketscType 中读取连接信息(存储类别缺省为 Standard),并内置了 30 秒默认控制超时与 24 小时传输超时的保护机制。

小结

docs/README.ja.md 为线索可以完整勾勒出 1Panel 的使用闭环:用一条 curl 安装脚本完成部署,通过 http://<IP>:<端口>/<安全路径> 访问图形界面,用 16 种语言的文档与界面覆盖多语言用户,用容器化 + 防火墙 + 审计的机制保障安全,用统一抽象的云存储适配层保证备份可恢复。而 coreagentfrontend 三模块的源码结构与 Makefile 构建体系,则为想要深入定制或二次开发的贡献者提供了清晰的切入路径。

登录后查看全文
热门项目推荐
相关项目推荐