快速入狱教程|使用1panel+docker部署PPanel面板

实用教程 admin 5小时前 15次浏览 0个评论

重要提醒

本教程仅作交流学习使用,请勿用作非法用途

啥是PPanel

之前我们写过一篇入狱教程:入狱教程|使用aapanel(宝塔)搭建v2board分支版并下发hysteria2和reality节点|开启webman支持

现在来了更快速入狱教程了,哈哈……

PPanel 是一个纯粹、专业且完美的开源代理面板工具,旨在成为您学习和实践的理想选择。

大白话:一个新的鸡场面板……具体可查看官方文档

术语说明

PPanel 的一些术语与其他面板系统存在差异,为确保您能准确理解文档内容并避免误解,建议在阅读前先了解以下术语:

  • 用户端 为最终用户提供的界面,用户通过该界面与系统进行交互。您可以根据需求自定义或重构该界面,实现站点的个性化定制。
  • 管理端 用于管理员操作的界面,负责管理系统、用户及数据。您可以根据需求对该界面进行定制或重构,以适应您的管理需求。
  • 服务端 PPanel 的 API 层,处理与前端的所有数据交互,负责业务逻辑的执行与数据服务的提供。
  • 节点端 负责 PPanel 服务端与各节点(落地端)的通信,确保网络节点的连接与服务的稳定性。
  • 客户端 用户用来连接系统的应用程序,通常是指用户的设备端软件或应用,负责与系统建立连接并使用相关服务。

部署方式

PPanel支持多种部署方式,可以借助1panel和aapanel等面板,也可以自己手搓,官方还提供一键脚本,甚至还有第三方一键docker脚本,连nginx反代都直接给你搞好……如果从大类来分,可以分为docker部署和和非docker部署。docker部署的话,可以配合Nginx手搓反代,也可借助1panel和aapanel等面板。非docker部署的话,又可分为Nginx + Supervisor + Node.js和Nginx + Supervisor + Bun。总之部署方式非常多样。

最方便的肯定是直接一键脚本,然后反代下,但是这样就失去了折腾的意义,所以小白今天用的1panel面板,我的想法是把数据库放在1panel面板,其他东西直接docker compose拉取,毕竟docker的数据库,小白太水了,玩不转……所以我们用1panel部署MySQL和redis,然后用PPanel官方自带的docker compose部署服务端(ppanel-server)、管理端(ppanel-admin-web)、用户端(ppanel-user-web)。

准备环境

一个vps:

公网ip:22.22.22.22

⼀个域名: userdomain.com

将以下二级域名解析至你的VPS:

api.userdomain.com: api接口地址, 用于前端请求后端服务

user.userdomain.com: 前端用户页面

admin.userdomain.com: 前端管理面板地址

数据库

1panel的安装直接参考官方文档,这里我们就不再赘述了。我们进入1panel应用商店,需要安装这三个应用:OpenRestyMySQLRedis

image-20250505191911039

这里需要注意的是,docker compose部署服务端(ppanel-server)、管理端(ppanel-admin-web)、用户端(ppanel-user-web)和1panel的应用不在同一个docker网络,所以MySQL和Redis需要放行端口外部访问。

image-20250505192242669

然后我们进入1panel的数据库,新建一个数据库。

image-20250505192426218

服务端和前端(管理端和用户端)

我们在/opt/目录下新建一个ppanel文件夹,然后把ppanel-script的安装脚本git clone下来。

mkdir -p /opt/ppanel && cd /opt/ppanel
git clone https://github.com/perfect-panel/ppanel-script.git

接下来我们需要对ppanel-script主目录下的docker-compose.yml文件做一些修改,简单起见,我们能够UI操作咱们就尽量UI操作,直接使用1panel的文件管理功能,双击修改。

image-20250505193140360

原版docker-compose.yml长这样:

version: '3.8'

services:
  ppanel-server:
    image: ppanel/ppanel-server:beta
    container_name: ppanel-server-beta
    ports:
      - '8080:8080'
    volumes:
      - ./config/ppanel.yaml:/app/etc/ppanel.yaml
    restart: always
    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_healthy
    networks:
      - ppanel-network

  mysql:
    image: mysql:8.0.23
    container_name: mysql_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: my_database
      MYSQL_USER: user
      MYSQL_PASSWORD: userpassword
    ports:
      - "3306:3306"
    volumes:
      - ./docker/mysql:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password --bind-address=0.0.0.0
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-prootpassword"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      - ppanel-network

  redis:
    image: redis:7
    container_name: redis_cache
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./docker/redis:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      - ppanel-network

  ppanel-admin-web:
    image: ppanel/ppanel-admin-web:latest
    container_name: ppanel-admin-web
    restart: always
    ports:
      - '3000:3000'
    environment:
      # Replace with actual API endpoint if needed
      NEXT_PUBLIC_API_URL: https://api.example.com

  ppanel-user-web:
    image: ppanel/ppanel-user-web:latest
    container_name: ppanel-user-web
    restart: always
    ports:
      - '3001:3000'
    environment:
      # Replace with actual API endpoint if needed
      NEXT_PUBLIC_API_URL: https://api.example.com

networks:
  ppanel-network:
    driver: bridge

由于我们的mysql和redis是用1panel安装的,所以我们ppanel-server容器的这两个依赖删掉,然后把docker-compose.yml里mysql和redis这两个容器也删掉,删掉这三个部分:

image-20250505193609717

image-20250505193620406

image-20250505193629660

删完之后是不是简洁了很多。然后我们需要在yml文件里增加几个简单的环境变量,主要是站点的语言和域名。

version: '3.8'

services:
  ppanel-server:
    image: ppanel/ppanel-server:beta
    container_name: ppanel-server-beta
    ports:
      - '8080:8080'
    volumes:
      - ./config/ppanel.yaml:/app/etc/ppanel.yaml
    restart: always
    networks:
      - ppanel-network

  ppanel-admin-web:
    image: ppanel/ppanel-admin-web:latest
    container_name: ppanel-admin-web
    restart: always
    ports:
      - '3000:3000'
    environment:
      # Replace with actual API endpoint if needed
      NEXT_PUBLIC_DEFAULT_LANGUAGE: zh-CN
      NEXT_PUBLIC_SITE_URL: https://admin.userdomain.com
      NEXT_PUBLIC_API_URL: https://api.userdomain.com

  ppanel-user-web:
    image: ppanel/ppanel-user-web:latest
    container_name: ppanel-user-web
    restart: always
    ports:
      - '3001:3000'
    environment:
      # Replace with actual API endpoint if needed
      NEXT_PUBLIC_DEFAULT_LANGUAGE: zh-CN
      NEXT_PUBLIC_SITE_URL: https://user.userdomain.com
      NEXT_PUBLIC_API_URL: https://api.userdomain.com

networks:
  ppanel-network:
    driver: bridge

 

 

然后,PPanel 支持基于 Web 的初始化,简化了手动配置过程,所以我们进入config目录,把ppanel.yaml的文件内容全都删掉,但是保留文件,这样我们就能通过 Web 界面初始化了。

image-20250505194023862

docker compose

本着能UI操作我们就不用命令行的原则,我们直接进入容器-编排-创建编排

image-20250505195335834

来源选择路径选择,选中我们刚刚编辑好的docker-compose.yml文件。

image-20250505195530380

点击确认,看到successful可以了。

image-20250505200103959

我们也可以看到这个docker-compose.yml一个创建了三个容器,分别是服务端,管理端和用户端。

image-20250505200202156

反代

我们之前的三个域名:

api.userdomain.com: api接口地址, 用于前端请求后端服务

user.userdomain.com: 前端用户页面

admin.userdomain.com: 前端管理面板地址

分别在1panel建立三个反向代理的网站,api.userdomain.com反代到127.0.0.1:8080,admin.userdomain.com反代到127.0.0.1:3000,user.userdomain.com反代到127.0.0.1:3001。

image-20250505200543599

image-20250505200615986

然后需要申请证书的,自行申请即可,小白这边域名是托管在cf的,直接使用cf的证书,就不申请本地证书了。

初始化

我们直接进入api.userdomain.com,语言改成中文

image-20250505200828779

其中数据库主机和Redis 主机需要填写我们vps的公网IP,其余用户名和密码,进入数据库,点击连接信息,把相应的用户名和密码填进去即可。

image-20250505201053039

image-20250505201117501

我们可以看到已经成功连接到MySQL和Redis:

image-20250505201223813

image-20250505201234206

点击开始初始化,至此,面板安装就完成了。

image-20250505201340324

面板外观

我们可以分别进入user.userdomain.com: 前端用户页面和admin.userdomain.com: 前端管理面板地址,来看下面板长啥样。

image-20250505201526586

image-20250505201542199

可以看到面板研制还是相当高的。

面板设置

系统配置里,自行修改即可:

image-20250505202220992

下面的内容就开始刑起来了,重要提醒:本教程仅作交流学习使用,请勿用作非法用途

我们来看下添加节点和订阅,PPanel的操作逻辑和V2board以及Xboard差不多,也是要先添加节点组和订阅组。

添加节点

先添加一个节点组。

image-20250505202650124

再添加节点。

image-20250505202731859

比如我们添加一个直连的ss节点。

image-20250505202901459

我们可以看到PPanel是能自动识别国家和地区的。

image-20250505202956485

节点通信密钥,记得要改一下,待会儿对接后端要用。

image-20250505203737061

 

 

订阅管理

先添加一个订阅组。

image-20250505202505589

然后再添加一个订阅。

image-20250505203042549

记得定价填一下。

image-20250505203158348

服务记得选中我们的刚刚创建的服务组。

image-20250505203238135

打开首页显示和销售,这样我们在用户端就能看到了。

image-20250505203427101

节点对接

官方提供了PPanel-node部署XrayR 部署两种方式,自行研究即可。

小白这边已经用PPanel-node对接了刚刚创建的测试节点,没有啥问题。

image-20250505203909648

 

邮件配置支付配置

这个可太刑了,我就不写了,都看到这儿了,也不用我去逼逼了。

最后

重要提醒:本教程仅作交流学习使用,请勿用作非法用途

references

PPanel部署文档

PPanel官方文档

使用宝塔(aapanel)部署PPanel(新的机场面板)– 全网首发

使用1panel部署PPanel(新的机场面板)– 全网首发

perfect-panel/ppanel-script

wyx2685/ppanel-node


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:快速入狱教程|使用1panel+docker部署PPanel面板
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址