快速部署
页面导读
部署入口与最小流程
- 先确认服务器系统、Docker、Docker Compose、端口开放、授权证书和安装包。
- 快速体验优先使用一键脚本;交付或二次开发环境建议使用 docker-compose 方式,便于替换后端 jar 和前端静态文件。
- 服务启动后按容器、后端日志、数据库、缓存、MQTT、Web 页面和授权页面顺序验收。
- 最终使用 MQTTX 跑通产品、设备、上报和下发链路,确认部署环境能支撑真实业务。
- 服务器已开放 80、1883、8083、5061、30000-30100/tcp/udp 等业务端口。
- 商业版本部署前已准备授权证书、安装密码,并确认部署完成后需要配置授权信息。
- 二次开发重新部署时,先确认
/var/data下的后端 jar 包和前端vue目录是否为最新版本。
提示
- 商业版本部署完成后,登录系统,进入首页需要先配置授权信息才能正常使用
- 二次开发后重新部署,只需替换
/var/data目录下对应fastbee-admin.jar包和vue目录下内容
一、快速部署脚本
一键部署脚本基于docker制作,需要安装好docker和docker-compose。实际操作流程类似下面的docker-compose部署方式,整合为一个脚本,执行一个命令完成部署。 命令如下:
sudo wget -c https://hub.fastbee.cn/resource/install.sh && bash ./install.sh
注意事项:
- 脚本包含开源和商业版本,商业版本仅针对已授权用户,安装需要密码和证书(联系客服获取)
- 部署中下载文件相对耗时,安装中推荐使用docker官方镜像,脚本自动配置镜像加速,速度会比较快
- 服务器开放对应端口(例如:80、1883、8083、5061、30000-30100/tcp/udp等)
二、docker-compose快速部署
使用docker-compose部署,需要服务器先安装docker和docker-compose
docker-compose把项目依赖的应用和环境一起安装到服务器或本地,执行以下步骤完成安装部署:
1.上传文件
先把项目中的 docker/data/ 文件夹上传到服务器或本地的 /var/ 目录下,商业版本需要重新打包后端和前端,后端上传到 /var/data/java/ 目录下,替换jar文件;前端上传到 /var/data/nginx/vue/ 目录下替换里面内容。
2.开始部署
进入服务器或本地的 /var/data/ 目录执行:docker-compose up -d 等待执行后完成部署
3.访问系统
- 部署完成后,通过服务器地址访问FastBee物联网平台,默认账号
admin admin123 - 部署中使用了emqx,可以通过18083端口,访问EMQX控制台,默认账号密码
admin admin123
提示
- 以后重新部署项目,只需替换
fastbee-admin.jar文件和vue目录下内容 - mysql容器初始化需要时间,如果后端报错,可以
docker restart java重启下后端 - 快速部署默认账号:
- 系统管理员:admin admin123
- mysql:root fastbee
- redis:fastbee
- emqx控制台:admin admin123
- TDengine:root taosdata
- SIP:12345678
- 数据源监控:fastbee fastbee
4. 部署中常用命令参考
# 可先拉取服务中镜像,时间取决于网络情况,可配置docker采用国内镜像源
docker-compose pull
# 构建并启动服务中容器
docker-compose up -d
# 停止并删除服务中容器
docker-compose down
# 创建data文件夹
mkdir /var/data
# 文件夹分配读写可执行权限
sudo chmod 777 /var/data5. docker镜像加速配置
按照以下步骤执行命令,完成镜像加速配置。docker镜像源加速地址收集自网络,可以根据情况增加或者删除
# 1. 关闭Docker服务
sudo systemctl stop docker
# 2. 如果文件不存在,则新建
sudo mkdir -p /etc/docker
# 3. 修改 Docker 的配置文件
sudo tee /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": [
"https://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.rainbond.cc",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com",
"https://docker.1ms.run",
"https://doublezonline.cloud",
"https://dislabaiot.xyz",
"https://docker.fxxk.dedyn.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"https://docker.nastool.de",
"https://docker.zhai.cm",
"https://docker.5z5f.com",
"https://a.ussh.net",
"https://docker.udayun.com",
"https://hub.geekery.cn",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.ckyl.me/",
"https://docker.hpcloud.cloud"
]
}
EOF
# 5. 重新启动 Docker 服务
sudo systemctl daemon-reload
sudo systemctl start docker三、部署结果验证
部署完成后,不建议只看页面是否打开。建议按“容器、后端、数据库、缓存、MQTT、业务页面”的顺序做一次完整验收。
1. 容器状态
cd /var/data
docker-compose ps
docker ps所有核心容器应处于运行状态。若 java、mysql、redis、emqx 或 nginx 容器反复重启,先查看对应日志。
docker logs -n 200 java
docker logs -n 200 mysql
docker logs -n 200 redis
docker logs -n 200 emqx
docker logs -n 200 nginx2. 后端服务
docker logs -n 300 java重点确认没有持续出现以下错误:
- 数据库连接失败。
- Redis 认证失败。
- 授权证书读取失败。
- 端口占用。
- SQL 初始化失败。
- 时序数据库连接失败。
如果 MySQL 初始化较慢,后端第一次启动失败后可以等待 1-2 分钟再重启:
docker restart java3. Web 页面
浏览器访问:
http://服务器IP/默认账号:
| 用户 | 密码 |
|---|---|
admin | admin123 |
登录后至少打开以下页面确认接口可用:
| 页面 | 验收点 |
|---|---|
| 首页 | 统计卡片和菜单正常加载 |
| 产品管理 | 列表可打开,新增按钮正常 |
| 设备管理 | 列表可打开,设备详情入口正常 |
| 系统管理 | 用户、角色、菜单页面可打开 |
| 授权页面 | 商业版可上传或查看授权信息 |
4. MQTT 服务
EMQX 控制台地址:
http://服务器IP:18083/默认账号:
| 用户 | 密码 |
|---|---|
admin | admin123 |
进入控制台后确认监听器正常。随后可以按 产品到设备的完整闭环 使用 MQTTX 建立连接。
5. 最小业务验证
部署验收的最终标准不是容器运行,而是平台能完成一条真实业务链路:
- 新建产品。
- 定义物模型。
- 发布产品。
- 新建设备。
- MQTTX 连接平台。
- 上报属性数据。
- 平台下发指令。
完整步骤请查看 产品到设备的完整闭环。
四、docker教程
docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
1.安装docker
提示
- docker镜像默认从官方仓库获取,如果下载慢,可以配置为国内的镜像仓库,参考教程
- 安装桌面端,已经包含docker引擎和docker compose。服务器一般单独安装docker engine和docker compose
Linux安装docker
Windows安装docker桌面端
- 参考教程(推荐安装WSL子系统和Windows Terminal,然后安装Docker)
- docker安装教程
Mac安装docker桌面端
2.docker常用命令
docker -v # 查看docker版本,检查是否安装成功
docker ps # 查看运行的容器
docker ps -a # 查看所有容器
docker images # 查看本地镜像
docker info # 查看docker的系统级信息
docker pull [image] # 拉取镜像
docker run [image] # 运行容器
docker restart [container] # 重启容器
docker stop [container] # 停止容器
docker stats [container] # 查看容器资源使用情况
docker inspect [container] # 查看容器元数据
docker logs -n 1000 [container] # 查看容器的前1000条日志信息
docker exec -it [container] /bin/bash # 进入运行中的容器内部
docker save nginx:latest > nginx.tar # 保存单个镜像
docker load -i nginx.tar # 从tar文件加载镜像
docker network create -d bridge fastbee-bridge # 创建一个新的网络,命名为fastbee-bridge
docker network ls # 显示所有网络
docker network connect fastbee-bridge test # test容器加入到自定义网络
docker inspect fastbee-bridge # 查看fastbee-bridge网络里的容器3.docker网络模式
docker中有5中网络模式,可以通过--net=***指定容器的网络模式。
bridge模式 # 默认,外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port
host模式 # 容器的IP地址即为宿主机的IP地址
container模式 # 容器会共享其他容器的网络环境
overlay模式 # 跨主机通讯
none模式 # 不为容器构造任何网络环境,容器只能使用127.0.0.1的本机网络4.docker网桥
网桥用于各个容器间通讯,如果各个容器是单独运行的,需要使用下面命令创建网桥
docker network create -d bridge fastbee-bridge5.docker-compose常用命令
docker-compose -v # 查看docker-compose版本,检查是否安装成功
docker-compose up -d # 构建并启动服务中容器
docker-compose down # 停止并删除服务中容器
docker-compose ps # 列出服务中所有容器
docker-compose start # 启动服务中的容器
docker-compose stop # 停止服务中正在运行的容器
docker-compose restart # 重启服务中的容器
docker-compose logs # 查看服务中容器的输出
docker-compose pull # 拉取服务中依赖的镜像
docker-compose config # 验证并查看compose文件配置