公司有需要要搭建chirpstack环境,搭建途中遇到挺多坑的,记录一下搭建过程.
这篇文章是给萌新一个0基础搭建服务的参考.
其实官网已经有docker-compose一键部署的方案的,但是因为种种原因, 我无法使用这种模式部署...
好吧,具体原因就是我们的环境需要装在网关里, 但是....空间不足以支持docker-compose的安装...
另外原因打算部署在自己机子上做测试,但是...windows下的docker环境docker-compose up启动不了,很麻烦...
一. 安装docker
windows版本
为什么有windows版本呢,因为本人的机子是window10的,所以安装了windows版本的docker,事实证明window做开发真的不好用,坑太多了...
安装过程不详述,下载安装包安装就完了,步骤可以参考下面这篇文章:
Windows下通过DockerToolbox安装Docker
ps: 嗯...实际安装过程中会碰到一些问题, 看看报错日志, 百度一下也就都能解决了,这里就不多说了(因为实在很不建议在windows下安装docker环境...)
linux版本
linux环境下有几种安装方式
1.脚本安装(如果中间不报错的话)
2.apt-get安装(我采用这种方式)
3.yum安装(没使用)
docker安装不在这里多说, 可以查看官网或百度, 很多文章有教程, 这里安装的是docker-ce
二. 正式安装
使用官方linux:16.04版本的镜像创建容器
sudo docker run -itd ubuntu:16.04 /bin/bash
进入镜像
sudo docker attach 容器id
做一些准备工作
apt-get update
# 安装vim
apt-get install -y vim
# 添加chirpstack源
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00
echo "deb https://artifacts.chirpstack.io/packages/3.x/deb stable main" | tee /etc/apt/sources.list.d/chirpstack.list
apt-get update
安装mosquitto
apt-get install mosquitto
配置位于:\etc\chirpstack-gateway-bridge\chirpstack-gateway-bridge.toml
安装redis-server
apt-get install redis-server
配置位于:\etc\chirpstack-gateway-bridge\chirpstack-gateway-bridge.toml
安装postgresql
# 这里安装的postgresql是9.5版本的
apt-get install postgres
配置位于:\etc\chirpstack-gateway-bridge\chirpstack-gateway-bridge.toml
先配置chirpstack用到的数据库(按官网提示操作即可)
# 使用默认的postgres用户登陆数据库
# 本地登录无需密码
su postgres -c psql
# 可以修改登陆密码
# ALTER USER postgres WITH PASSWORD '你的密码';
# 创建 chirpstack_ns 用户
create role chirpstack_ns with login password 'chirpstack_ns的登陆密码';
# 创建 chirpstack_ns 数据库, 使用 chirpstack_ns 用户登陆
create database chirpstack_ns with owner chirpstack_ns;
# 创建 chirpstack_as 用户
create role chirpstack_as with login password 'chirpstack_as的登陆密码';
# 创建 chirpstack_as 数据库
create database chirpstack_as with owner chirpstack_as;
# 切换到 chirpstack_as 数据库
\c chirpstack_as
# 启用 trigram and hstore 扩展
create extension pg_trgm;
create extension hstore;
# 退出postgresql命令行
\q
安装chirpstack-gateway-bridge
apt-get install chirpstack-gateway-bridge
配置位于:\etc\chirpstack-gateway-bridge\chirpstack-gateway-bridge.toml
安装chirpstack-network-server
apt-get install chirpstack-network-server
配置位于:\etc\chirpstack-network-server\chirpstack-network-server.toml
这里有个需要修改的点,需要将官方默认使用 EU868 的 region 配置改为自己需要的配置
[network_server.band]
# LoRaWAN band to use.
#
# Valid values are:
# * AS_923
# * AU_915_928
# * CN_470_510
# * CN_779_787
# * EU_433
# * EU_863_870
# * IN_865_867
# * KR_920_923
# * RU_864_870
# * US_902_928
name="CN_470_510"
此外,可以根据需要设置下默认的子信道
[network_server.network_settings]
# Enable only a given sub-set of channels
#
# Use this when ony a sub-set of the by default enabled channels are being
# used. For example when only using the first 8 channels of the US band.
#
# Example:
# enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
最后,数据的链接需要修改一下
# 默认配置
# dsn="postgres://localhost/chirpstack_ns?sslmode=disable"
# 根据实际情况修改
dsn="postgres://chirpstack_ns:你设置的登陆密码@localhost/chirpstack_ns?sslmode=disable"
安装chirpstack-application-server
apt-get install chirpstack-application-server
配置位于:\etc\chirpstack-application-server\chirpstack-application-server.toml
需要修改一下配置中的数据库链接
# 默认配置
# dsn="postgres://localhost/chirpstack_as?sslmode=disable"
# 根据实际情况修改
dsn="postgres://chirpstack_as:你设置的登陆密码@localhost/chirpstack_as?sslmode=disable"
最后制作一下启动脚本,退出提交镜像即可
运行镜像时需要暴露出1700udp端口和8080tcp端口
1700端口是接受pktfwd的udp请求用
8080是application-server的网站