背景
去年写了一篇搭建个人的GPS定位系统,是基于国内的一家gps供应商提供的镜像部署服务器,客户端采用标准的gps硬件通过部标协议发送gps数据包到服务器,完成定位。
实际操作过程发现两个不是很方便的地方
1.服务器是docker部署,但实际不是私有化部署,所有的数据包都要经过厂商的中转才能到docker镜像中,这个问题就与私有化部署的初衷背道而驰了,咨询了厂商,解决方案是购买pro版本,这就没有聊下去的必要了,个人用途,预算有限。
2.客户端支持标准的gps硬件,支持的协议也挺全。也有android平台的apk,但不开源。笔者尝试在byd等安卓车机系统上安装apk,要么安装失败,要么运行异常。推测可能是因为车机比较老,apk没有针对老版本安卓系统做适配的原因
Traccar介绍
今年,发现了另一个完全开源的gps定位系统,traccar
官方主页:www.traccar.org/
这个系统是完全开源的,包括服务端和客户端。客户端支持android和ios,服务端有web前台
服务端部署
服务器端的部署支持linux安装、docker compose、jar包虚拟机运行等多种方式,笔者尝试了docker和jar包打包成docker镜像的方式,都成功了,并且成功部署到了华为云,简单描述步骤如下:
1.购买云服务,最便宜的2核2G即可,流量100G/月,因为便宜所以初始化时没法选择带docker环境的镜像,只能选ubuntu20.04,然后手动安装docker环境
2.开启镜像加速,主流的云服务都支持,华为也不例外,把获取到的个人加速地址配置到/etc/docker/daemon.json即可
3.配置防火墙,开启web端口和数据上报端口,例如10180和10055
4.运行如下命令下载镜像,运行容器
首先生成配置文件:
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > /opt/traccar/traccar.xml
然后用如下命令运行容器:注意:端口号按需配置,50