1Panel面板部署
1Panel 是新一代的 Linux 服务器运维管理面板,提供可视化的 Docker 管理功能。本文档将指导您如何通过 1Panel 面板部署 MISEB 系统。
1Panel简介
1Panel 是一款现代化、开源的 Linux 服务器运维管理面板,具有以下特点:
- 快速建站:集成 OpenResty 和 WordPress 等应用
- 高效管理:通过可视化界面管理 Docker 容器
- 安全可靠:提供防火墙和安全审计功能
- 一键备份:支持网站和数据库的备份与恢复
第一步:安装1Panel
在线安装(推荐)
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh安装过程中会显示:
- 面板访问地址
- 默认用户名
- 默认密码
重要
请务必记录这些信息!首次登录后请修改默认密码。
安装完成后
- 通过浏览器访问
http://服务器IP:1Panel端口 - 使用安装时显示的用户名和密码登录
- 首次登录后建议修改默认密码
第二步:配置Docker
2.1 验证Docker安装
1Panel安装时已自动安装Docker,验证安装:
- 进入 主机 > 终端
- 执行以下命令:
docker --version
docker compose version2.2 配置Docker镜像加速(国内服务器)
- 进入 容器 > 配置
- 或通过终端配置:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker第三步:上传部署包
首先下载部署包:
- .tar.gz格式: 点击下载
https://ivett.oss-cn-beijing.aliyuncs.com/release/miseb-mer-java/miseb-deploy.tar.gz
3.1 上传文件
- 进入 文件 管理
- 进入
/opt目录 - 创建
miseb文件夹 - 上传
miseb-deploy.tar.gz部署包 - 右键解压
3.2 目录结构
解压后目录结构:
/opt/miseb/deploy/
├── .env.example # 环境变量模板
├── docker-compose.yml # Docker Compose配置(包含所有服务)
├── start.sh # 一键启动脚本
├── stop.sh # 停止脚本
├── admin/ # Admin服务Dockerfile
├── front/ # Front服务Dockerfile
├── nginx/ # Nginx配置
│ ├── conf.d/ # 站点配置文件
│ └── ssl/ # SSL证书目录(需自行上传证书)
├── mysql/ # MySQL初始化脚本和配置
├── redis/ # Redis配置
├── elasticsearch/ # ES配置
├── logstash/ # Logstash配置
├── minio/ # MinIO配置
├── data/ # 数据目录
└── logs/ # 日志目录第四步:配置环境变量
4.1 复制配置文件
通过1Panel文件管理器或终端:
cd /opt/miseb/deploy
cp .env.example .env4.2 编辑配置
编辑 .env 文件:
配置SSL证书(HTTPS支持):
如果您需要开启 HTTPS,请将您的 SSL 证书文件上传至 nginx/ssl/ 目录,并按以下规则命名(推荐):
- 证书文件:
server.crt - 私钥文件:
server.key
如果不按照上述命名,您需要修改 nginx/conf.d/default.conf 中的 SSL 配置路径。
# ===================== Docker镜像仓库 =====================
DOCKER_REGISTRY=docker.cdiwit.com/miseb-multi-mer
IMAGE_TAG=1.0.0
# ===================== MySQL配置 =====================
MYSQL_VERSION=8.0
MYSQL_ROOT_PASSWORD=YourStrongRootPassword123!
MYSQL_DATABASE=miseb
MYSQL_USERNAME=miseb
MYSQL_PASSWORD=YourStrongPassword123!
# ===================== Redis配置 =====================
REDIS_PASSWORD=YourRedisPassword123!
# ===================== Elasticsearch配置 =====================
ES_VERSION=9.2.2
ES_JAVA_OPTS="-Xms512m -Xmx512m"
# ===================== MinIO配置 =====================
MINIO_VERSION=2024.08
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=YourMinioPassword123!
# ===================== JVM配置 =====================
ADMIN_JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
FRONT_JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
# ===================== 域名配置 =====================
# 主域名(用于nginx server_name)
MISEB_DOMAIN=www.example.com
# ===================== 商品图片配置 =====================
# 图片访问域名(用于商品图片URL生成)
IMAGE_DOMAIN=https://www.example.com
# 图片存储类型: local(本地), minio(MinIO对象存储)
IMAGE_STORAGE_TYPE=local安全警告
请务必修改所有默认密码!使用默认密码会导致严重的安全风险。
第五步:登录Docker仓库
在1Panel终端执行:
docker login docker.cdiwit.com -u 'robot$guest' --password-stdin <<< 'vXvsCo4PUQr7HutP4nfGCFPicYMeNxLh'或使用交互式登录:
docker login docker.cdiwit.com -u 'robot$guest'
# 输入密码:vXvsCo4PUQr7HutP4nfGCFPicYMeNxLh账户说明
- 用户名:
robot$guest(注意使用单引号包裹,防止$符号被Shell解析) - 密码:
vXvsCo4PUQr7HutP4nfGCFPicYMeNxLh - 此为只读账户,仅用于拉取镜像
第六步:启动服务
方式一:一键启动(推荐)
通过1Panel终端执行:
cd /opt/miseb/deploy
# 赋予执行权限
chmod +x start.sh stop.sh
# 一键启动
./start.sh启动脚本会自动完成以下操作:
- 拉取所有Docker镜像
- 启动基础设施服务(MySQL、Redis、Elasticsearch、Logstash、MinIO)
- 等待基础设施就绪
- 初始化数据库(首次启动)
- 启动应用服务(Admin、Front、Nginx)
方式二:手动启动
cd /opt/miseb/deploy
# 拉取镜像
docker compose pull
# 启动所有服务
docker compose up -d
# 查看状态
docker compose ps方式三:使用1Panel容器编排
- 进入 容器 > 编排
- 点击 创建编排
- 选择 从Compose文件创建
- 选择
/opt/miseb/deploy/docker-compose.yml - 点击 部署
6.1 验证启动
在1Panel中查看:
- 进入 容器 > 容器列表
- 确认以下容器状态为
运行中
基础设施容器:
- miseb-mysql
- miseb-redis
- miseb-elasticsearch
- miseb-logstash
- miseb-minio
应用容器:
- miseb-admin
- miseb-front
- miseb-nginx
或通过终端验证:
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"第七步:配置域名反向代理(可选)
说明
MISEB部署包已包含Nginx容器处理所有路由,如果您使用IP直接访问,可以跳过此步骤。
如果您需要使用域名访问并配置SSL证书,可以使用1Panel的OpenResty作为前端代理。
7.1 创建网站
- 进入 网站 > 网站
- 点击 创建网站 > 反向代理
- 配置:
- 主域名:您的域名
- 代理地址:
http://127.0.0.1:80
7.2 端口冲突处理
如果1Panel的OpenResty占用了80端口,有两种解决方案:
方案一:修改MISEB的Nginx端口
修改 .env 文件:
HTTP_PORT=8088然后重启应用服务:
docker compose up -d1Panel代理地址改为:http://127.0.0.1:8088
方案二:停止1Panel的OpenResty,使用MISEB Nginx
# 在1Panel应用商店中停止OpenResty
# MISEB Nginx将接管80端口7.3 配置SSL证书(推荐)
- 在网站设置中,进入 HTTPS
- 选择 申请证书 > Let's Encrypt
- 填写邮箱,点击申请
- 启用 强制HTTPS
第八步:验证部署
访问测试
| 服务 | 地址 |
|---|---|
| PC商城 | http://服务器IP/ 或 https://您的域名/ |
| H5商城 | http://服务器IP/h5/ |
| 平台管理 | http://服务器IP/platform/ |
| 商户管理 | http://服务器IP/merchant/ |
| MinIO控制台 | http://服务器IP:9001/ |
默认账号
| 端 | 账号 | 密码 |
|---|---|---|
| 平台管理端 | admin | 123456 |
| 商户管理端 | 需先入驻 | - |
安全提示
首次登录后请立即修改默认密码!
日常运维
查看容器状态
- 进入 容器 > 容器列表
- 可以查看所有容器的运行状态、CPU、内存使用情况
查看日志
方式一:通过1Panel界面
- 进入 容器 > 容器列表
- 点击容器的 日志 图标
- 实时查看容器日志
方式二:通过终端
# 查看Admin日志
docker logs -f --tail 100 miseb-admin
# 查看Front日志
docker logs -f --tail 100 miseb-front
# 查看Nginx日志
docker logs -f --tail 100 miseb-nginx停止服务
cd /opt/miseb/deploy
# 使用停止脚本
./stop.sh
# 或手动停止
docker compose down重启服务
方式一:通过1Panel界面
- 在容器列表中选择容器
- 点击 重启 按钮
方式二:通过终端
cd /opt/miseb/deploy
# 重启所有服务
docker compose restart
# 重启单个服务
docker compose restart miseb-admin更新应用
cd /opt/miseb/deploy
# 拉取新镜像
docker compose pull
# 重新部署
docker compose up -d --force-recreate备份数据
使用1Panel计划任务
- 进入 计划任务
- 点击 创建计划任务
- 选择 Shell脚本
- 脚本内容:
#!/bin/bash
BACKUP_DIR=/opt/backup/miseb
mkdir -p $BACKUP_DIR
# 备份MySQL
docker exec miseb-mysql mysqldump -u root -pYourRootPassword miseb > $BACKUP_DIR/miseb_$(date +%Y%m%d_%H%M%S).sql
# 删除7天前的备份
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete备份上传文件
# MinIO数据目录
/opt/miseb/deploy/minio-data/常见问题
启动脚本报错 required file not found
原因:脚本文件是在Windows环境下编辑或保存的,换行符为 CRLF,导致Linux无法识别。
解决方案: 在1Panel终端中执行以下命令修复:
sed -i 's/\r$//' *.sh
chmod +x *.shElasticsearch启动失败
问题:ES容器启动后立即退出
解决方案:
# 检查日志
docker logs miseb-elasticsearch
# 常见问题:vm.max_map_count太小
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf内存不足
问题:Java服务OOM
解决方案:
调整 .env 中的JVM配置:
ES_JAVA_OPTS="-Xms256m -Xmx256m"
ADMIN_JAVA_OPTS="-Xms256m -Xmx512m"
FRONT_JAVA_OPTS="-Xms256m -Xmx512m"然后重启服务:
docker compose up -d容器无法启动
问题:提示镜像拉取失败
解决方案:
- 检查是否已登录Docker仓库
docker login docker.cdiwit.com- 检查网络连接
ping docker.cdiwit.com端口被占用
# 检查端口占用
netstat -tlnp | grep -E '80|3306|6379|9200|9001'防火墙设置
确保在1Panel 主机 > 防火墙 中放行以下端口:
- 80 (HTTP)
- 443 (HTTPS)
- 9001 (MinIO控制台,可选)
部署架构说明
MISEB使用Docker Compose进行容器编排,所有服务配置在 docker-compose.yml 文件中:
基础设施服务
| 服务 | 容器名 | 端口 | 说明 |
|---|---|---|---|
| MySQL | miseb-mysql | 3306 | 主数据库 |
| Redis | miseb-redis | 6379 | 缓存和Session |
| Elasticsearch | miseb-elasticsearch | 9200 | 搜索和日志 |
| Logstash | miseb-logstash | 4560 | 日志收集 |
| MinIO | miseb-minio | 9000/9001 | 对象存储 |
应用服务
| 服务 | 容器名 | 端口 | 说明 |
|---|---|---|---|
| Admin | miseb-admin | 8080 | 平台端/商户端API |
| Front | miseb-front | 8081 | 用户端API |
| Nginx | miseb-nginx | 80/443 | 前端静态资源和反向代理 |
