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交流群询问