PPanel介绍

PPanel整体采用分离部署,需要分别部署前后端,前端可以交给vercel部署,后端由本地服务器部署,并且官方文档提供了多种部署方式,可以根据需求自行选择,本文采取通过1panel全docker部署

官方Web: Index - PPanel

PPanel整体架构:

  • 用户端 为最终用户提供的界面,用户通过该界面与系统进行交互。您可以根据需求自定义或重构该界面,实现站点的个性化定制。

  • 管理端 用于管理员操作的界面,负责管理系统、用户及数据。您可以根据需求对该界面进行定制或重构,以适应您的管理需求。

  • 服务端 PPanel 的 API 层,处理与前端的所有数据交互,负责业务逻辑的执行与数据服务的提供。

  • 节点端 负责 PPanel 服务端与各节点(落地端)的通信,确保网络节点的连接与服务的稳定性。

  • 客户端 用户用来连接系统的应用程序,通常是指用户的设备端软件或应用,负责与系统建立连接并使用相关服务。

前期准备

  • 服务器(根据需求)

  • 域名,提前解析好三个子域名:

服务端:api.domain.com

管理端:admin.domain.com

用户端:user.domain.com (根据自己需求调整)

安装1Panel

官方文档:在线安装 - 1Panel 文档

Debian:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

若无特殊需求,全默认即可

如果遇到 Docker 安装失败等问题,可以尝试运行以下脚本:

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

安装成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel:

http://目标服务器 IP 地址:目标端口/安全入口
  • 如果使用的是云服务器,请至安全组开放目标端口。

  • ssh 登录 1Panel 服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)

安装数据库

安装MySQL:

注:无特殊需求默认配置安装即可,如果本地部署后端可以不开放外部端口访问,否则需要开启

创建数据库

安装redis:

注:无特殊需求默认配置安装即可,如果本地部署后端可以不开放外部端口访问,否则需要开启

查看连接信息

MySQL:

redis:

提前记录下连接密码,部署后端会用到

部署后端

官方文档:Docker - PPanel

创建必须的配置文件:首先手动创建并配置 /app/etc/ppanel.yaml 文件,以便进行后续配置。

ppanel.yaml 的配置项示例:

Host: 0.0.0.0 # 监听 IP
Port: 8080 # 运行端口
Debug: true # 是否开启调试模式
JwtAuth:
  AccessSecret: your-secret-key # Token 密钥(请修改)
  AccessExpire: 604800 # Token 有效期(秒)
Logger:
  FilePath: ./ppanel.log # 日志文件路径
  MaxSize: 50
  MaxBackup: 3
  MaxAge: 30
  Compress: true
  LogType: json
  Level: info # 日志级别:info, debug, error
MySQL:
  Addr: 127.0.0.1:3306 # 数据库地址(默认可无需修改)
  Dbname: vpnboard # 数据库名称(根据实际修改)
  Username: root # 数据库用户名(根据实际修改)
  Password: your-password # 数据库密码(请修改)
  Config: charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai
  MaxIdleConns: 10
  MaxOpenConns: 10
  LogMode: dev
  LogZap: false
  SlowThreshold: 1000
Redis:
  Host: 127.0.0.1:6379
  Pass: # Redis 密码(如果有)
  DB: 0
 
Administrator:
  Password: password # 管理员密码(应更改)
  Email: admin@ppanel.dev # 管理员邮箱地址

运行 Docker 容器

docker run -d \
  --network host \
  --name ppanel-server \
  -v /app/etc/ppanel.yaml:/app/etc/ppanel.yaml \
  --restart=always \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  ppanel/ppanel-server:latest

或通过1Panel部署

后端部署完成:

部署前端

管理端

docker run -d -p 3001:3000 \
  -e NEXT_PUBLIC_DEFAULT_LANGUAGE=en-US \
  -e NEXT_PUBLIC_SITE_URL=https://admin.example.com \
  -e NEXT_PUBLIC_API_URL=https://api.example.com \
  --name ppanel-admin-web \
  ppanel/ppanel-admin-web:latest

1Panel部署:

部署成功:

用户端

docker run -d -p 3000:3000 \
  -e NEXT_PUBLIC_DEFAULT_LANGUAGE=en-US \
  -e NEXT_PUBLIC_SITE_URL=https://user.example.com \
  -e NEXT_PUBLIC_API_URL=https://api.example.com \
  --name ppanel-user-web \
  ppanel/ppanel-user-web:latest

1Panel部署:

用户端部署完成:

三个容器全部已启动即成功

对接域名

安装OpenResty

在防火墙中放行443端口,3001/3000端口无需放行,直接反代走443出

同理user反代3000端口,admin反代3001端口即可

申请证书

先分别创建Acme账户和DNS账户

DNS账户(通过Cloudflare)

选择需要申请证书的域名然后继续

复制下令牌(注意保存,仅可复制一次)

依次填入信息即可

分别给三个域名申请证书

开启HTTPS

访问admin.domain.com

按照ppanel.yaml 中设置的管理账户和密码登录即可

管理端:

用户端:

自此,docker版本的ppanel部署完成,全程仅需三个docker即可完成,并且后续便于升级,直接重新拉取新镜像即可,数据库不会被影响,可以通过其他云服务商提供的数据库完成部署,数据保存更为安全

节点对接

官方文档:PPanel-node - PPanel

推荐使用官方推出的ppnode,或者soga,个人使用很方便

  • 节点配置

记录下通信密钥

  • 创建节点组

Shadowsocks:

地址填入ip,如果是中转,中转模式选择全部,中转地址填国内入口地址,中转端口填国内入口端口,前缀为中转名字,可不填无影响

节点服务器:

安装ppnode

wget -N https://raw.githubusercontent.com/wyx2685/ppanel-node/master/Scripts/install.sh && bash install.sh

根据提示完成选择即可,ppnode修改自v2bx,可以参考v2bx配置文件设置即可

刷新节点确定对接完成

Vless+Reality:

重新生成配置,也可直接修改配置文件

配置文件参考v2bx:配置文件说明 | V2bX文档

Trojan:

需要一个域名,提前解析好

需要手动修改配置文件完成dns证书申请

输入ppnode ,选择0,回车,输入i进入编辑模式

修改为:

输入ESC,输入:wq 即可保存退出,确认ppnode状态

管理刷新确认节点正常即可使用

总结

PPanel作为一个新面板,并且已经全部开源PPanel,近半个月使用下来感觉还是挺方便的,部署简单,前后端分离,支持的协议多,并且UI很不错,开发团队后续也会持续运营并优化bug,如果在部署过程中遇到任何问题欢迎留言或者联系我,也欢迎前往PPanel交流群询问

人生除死无大事