chirpstack v4版本 全流程部署[ubuntu+docker]
背景介绍
由于chirpstackv3 版本使用的是锐米提供的版本,从网络上寻找的资源大多数都是一样的v3版本,是经过别人编译好发布出来的,原本的chirpsatck项目是运行的linxu环境下的,因此我的想法是在linux服务器上部署chirpsatckv4,暂时使用linux上的chirpstack v4版本,目前编译成exe程序在windows运行的难度还较高
部署过程
下载virtualBox和ubuntu
使用VirtualBox安装Ubuntu虚拟机 - 完整教程-CSDN博客
可以参考以上的教程完成虚拟机基础环境的配置
ubuntu部署docker
【环境配置】ubuntu中 Docker的安装_ubuntu安装docker-CSDN博客
可以参考以上的教程完成docker容器的配置
docker部署chirpstack
在Linux下使用Docker部署chirpstack-CSDN博客
可以参考以上的教程完成chirpstackv4 版本的docker部署
虚拟机网卡配置
1.点击设置
2.选择网络-连接方式-桥接网卡
3.重启虚拟机更新配置
4.打开虚拟机输入 ip addr show 查看虚拟机ip
记得记住虚拟机的ip,以后访问chirpsatck需要使用
chirpstack启动
先启动docker容器,如果部署成功后docker会已经启动,如果重启后docker会关闭,需要重新启动
#进入chirpstack-docker的目录
cd chirpstack-docker
#启动chirpsatck
sudo docker-compose up -d
web访问
在本机浏览器输入
<虚拟机ip>:8080
访问chirpstack网页,账号密码都是 admin
api文档
chirpstackv4版本的api文档进行了迁移,原本的api文档是localhost:8080/api
新的api文档迁移到了8090的端口下,localhost:8090
chirpsatckv4相对于v3有较大的改动,可以参考
v4 breaking changes - ChirpStack open-source LoRaWAN® Network Server documentation
v3 版本
v4 版本
api对比
ChirpStack 使用的 API
v3版本api共13个模块
v4版本仅剩8个模块 一些接口被合并了
模块 | 请求方式 | URL | v4版本改动 |
---|---|---|---|
InternalService | post | /api/internal/login | 接口被删除 |
ApplicationService | get | /api/applications | 接口不变,返回参数变化 |
post | /api/applications | 接口不变,传入参数变化 | |
DeviceProfileService | get | /api/device-profiles | 接口不变,返回参数变化 |
get | /api/device-profiles/{id} | 接口不变,返回参数变化 | |
post | /api/device-profiles | 接口不变,传入参数变化 | |
DeviceQueueService | delete | /api/devices/{dev_eui}/queue | 合并到了DeviceService模块中 |
get | /api/devices/{dev_eui}/queue | 合并到了DeviceService模块中,返回参数增加 | |
DeviceService | post | /api/devices | 接口不变 |
delete | /api/devices/{dev_eui} | 接口不变 | |
get | /api/devices/{dev_eui}/activation | 接口不变,返回参数增加 | |
post | /api/devices/{device_activation.dev_eui}/activate | 接口不变 | |
GatewayProfileService | get | /api/gateway-profiles | 接口被删除,疑似合并到TenantService模块 |
post | /api/gateway-profiles | 接口被删除,疑似合并到TenantService模块 | |
MulticastGroupService | get | /api/multicast-groups | 接口不变,返回参数增加 |
post | /api/multicast-groups | 接口不变,传入参数发生改变 | |
get | /api/multicast-groups/{id} | 接口不变,返回参数增加 | |
post | /api/multicast-groups/{multicast_group_id}/devices | 接口不变,传入参数减少 | |
delete | /api/multicast-groups/{multicast_group_id}/devices/{dev_eui} | 接口不变 | |
post | /api/multicast-groups/{multicast_queue_item.multicast_group_id}/queue | 接口不变 | |
NetworkServerService | get | /api/network-servers | 接口被删除 |
post | /api/network-servers | 接口被删除 | |
OrganizationService | get | /api/organizations | 接口被删除,疑似合并到TenantService模块 |
post | /api/organizations | 接口被删除,疑似合并到TenantService模块 | |
ServiceProfileService | get | /api/service-profiles | 接口被删除 |
post | /api/service-profiles | 接口被删除 |
缓存清理指令
chirpstack v4使用的主要是postgresql和redis进行数据的存储和缓存
redis清理过程
首先,进入运行Redis的Docker容器。运行redis的容器叫chirpstack-docker-redis-1
docker exec -it chirpstack-docker-redis-1 /bin/sh
进入容器后,你可以使用 <font style="color:rgb(0, 0, 0);">redis-cli</font>
来执行各种 Redis 命令。
清理所有数据:redis-cli FLUSHALL
清理特定数据库:redis-cli SELECT 0 redis-cli FLUSHDB
pgsql清理过程
首先,进入运行PostgreSQL的Docker容器。运行pgsql的容器叫做chirpstack-docker-postgres-1
docker exec -it chirpstack-docker-postgres-1- psql -U postgres
pgsql无法登陆进行数据操作,使用docker操作删除数据的方式
注意删除挂载数据卷后,redis和pgsql中的数据都会清空
//列出数据卷
docker volume ls//删除之前挂载的数据卷
docker volume rm chirpstack-docker_postgresqldata
docker volume rm chirpstack-docker_redisdata//重新启动
sudo docker-compose up -d