什么是 Traccar ?
Traccar是一个开源的 GPS 跟踪系统。支持 200多种GPS 协议和 2000 多种型号的 GPS 跟踪设备。当然也包括像 iOS/Android 这样的手机设备,手机设备只需要安装Traccar的客户端即可使用。
前文介绍的 Hauk 只支持 Android 客户端,适合个人分享;而 Traccar 的应用范围显然要广泛的多,可以用于车队、出租车管理等行业应用。
官方的方法是执行一次容器来获取到缺省的 traccar.xml
第一步、创建工作目录
# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs
# 进入 traccar 目录
cd /volume2/docker/traccar
第二步、获取到缺省的 traccar.xml文件
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > /opt/traccar/traccar.xml
当然更简单的方法是将下面的内容直接保存为 traccar.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
<entry key='config.default'>./conf/default.xml</entry>
<!--
This is the main configuration file. All your configuration parameters should be placed in this file.
Default configuration parameters are located in the "default.xml" file. You should not modify it to avoid issues
with upgrading to a new version. Parameters in the main config file override values in the default file. Do not
remove "config.default" parameter from this file unless you know what you are doing.
For list of available parameters see following page: https://www.traccar.org/configuration-file/
-->
<entry key='database.driver'>org.h2.Driver</entry>
<entry key='database.url'>jdbc:h2:./data/database</entry>
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>
</properties>
关于配置文件的详细说明,可以看官方文档:https://www.traccar.org/configuration-file/
缺省设置中,采用的是 H2 数据库,这是一个用 Java 开发的嵌入式数据库,本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中,但并不建议将其用于生产环境。
如果你想改为 MySQL,例如使用群晖自带的 MariaDB,可以参考官方文档:https://www.traccar.org/mysql/,对 traccar.xml文件进行修改。
不确定会不会有问题,所以另外启个 MySQL 容器可能会简单一些;
官方提供的安装方法,需要打开端口范围是 5000-5150 ,协议包括 TCP/UDP,这种方法比较省事,但是对我们来说,一方面并没有那么多的设备需要支持,另一方面群晖本身占用了其中的部分端口,比如最常规的 5000,如果启用了 WebDAV Server 的话,可能 5005 也被占用了
所以建议是按需开端口。打开 https://www.traccar.org/devices/ ,找到你使用的 GPS 设备
如果找不到,可以试试通过协议来识别:https://www.traccar.org/identify-protocol/
但如果只是用移动端 app的话,不另开端口也是可以的
在群晖上以 Docker 方式安装。
在注册表中搜索 traccar ,选择第一个 traccar/traccar,版本选择 latest。
本文写作版本对应为 5.7;
在 docker 文件夹中,创建一个新文件夹 traccar,并在其中建一个子文件夹 logs
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/traccar/logs | /opt/traccar/logs | 存放日志 |
docker/traccar/traccar.xml | /opt/traccar/conf/traccar.xml | 设置文件 |
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
8082 | 8082 |
默认没有暴露端口
需要自己点 + 号添加
假如你要添加的设备要用到端口 5023,需要同时添加 TCP 和 UDP
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs
# 进入 traccar 目录
cd /volume2/docker/traccar
# 获取 traccar.xml 文件
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > ./traccar.xml
# 根据需要对 traccar.xml 文件进行修改
# 运行容器(标准)
docker run -d \
--restart unless-stopped \
--name traccar \
-p 8082:8082 \
-p 5000-5150:5000-5150 \
-p 5000-5150:5000-5150/udp \
-v $(pwd)/logs:/opt/traccar/logs \
-v $(pwd)/traccar.xml:/opt/traccar/conf/traccar.xml:ro \
traccar/traccar:latest
# 运行容器(只使用手机app)
docker run -d \
--restart unless-stopped \
--name traccar \
-p 8082:8082 \
-v $(pwd)/logs:/opt/traccar/logs \
-v $(pwd)/traccar.xml:/opt/traccar/conf/traccar.xml:ro \
traccar/traccar:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'
services:
traccar:
image: traccar/traccar:latest
container_name: traccar
restart: unless-stopped
ports:
- 8082:8082
volumes:
- ./logs:/opt/traccar/logs
- ./traccar.xml:/opt/traccar/conf/traccar.xml:ro
然后执行下面的命令
# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs
# 进入 traccar 目录
cd /volume2/docker/traccar
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
在浏览器中输入 http://群晖IP:8082 ,第一次需要注册
注册成功后就可以登录了
进入 设置 --> 首选项 --> 地图 --> 已选地图
其中红色的地图需要 key,黑色的不需要;
系统默认勾选了 3 种地图,你可以再选择 高德地图,保存后就可以在首页进行切换了
点 +/- 号进行缩放
移动端的下载地址:https://www.traccar.org/client/
下载的 Android 平台的
打开 app
修改服务器地址
保存后,直接启用 定位服务
注意你的设备编码,添加设备时会用到;
在 Web 主界面点 +号,添加 注册您的第一台设备
填入名称和设备编号
回到首页后,左侧会有刚添加的设备
地图上也会有设备所在的位置
接下来你可以做跟踪轨迹、设置围栏等操作
Traccar
Source Code - Traccar
traccar/traccar-docker: Traccar Docker