GPS跟踪系统Traccar

什么是 Traccar ?

Traccar是一个开源的 GPS 跟踪系统。支持 200多种GPS 协议和 2000 多种型号的 GPS 跟踪设备。当然也包括像 iOS/Android 这样的手机设备,手机设备只需要安装Traccar的客户端即可使用。

前文介绍的 Hauk 只支持 Android 客户端,适合个人分享;而 Traccar 的应用范围显然要广泛的多,可以用于车队、出租车管理等行业应用。

准备

traccar.xml

官方的方法是执行一次容器来获取到缺省的 traccar.xml

第一步、创建工作目录

1
2
3
4
5
# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs

# 进入 traccar 目录
cd /volume2/docker/traccar

第二步、获取到缺省的 traccar.xml文件

1
2
3
4
5
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > /opt/traccar/traccar.xml

当然更简单的方法是将下面的内容直接保存为 traccar.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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

本文写作时, latest 版本对应为 5.7

docker 文件夹中,创建一个新文件夹 traccar,并在其中建一个子文件夹 logs

文件夹 装载路径 说明
docker/traccar/logs /opt/traccar/logs 存放日志
docker/traccar/traccar.xml /opt/traccar/conf/traccar.xml 设置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8082 8082

默认没有暴露端口

需要自己点 + 号添加

假如你要添加的设备要用到端口 5023,需要同时添加 TCPUDP

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 新建文件夹 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 文件

1
2
3
4
5
6
7
8
9
10
11
12
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

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 traccar 和 子目录
mkdir -p /volume2/docker/traccar/logs

# 进入 traccar 目录
cd /volume2/docker/traccar

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8082 ,第一次需要注册

注册成功后就可以登录了

设置地图

进入 设置 –> 首选项 –> 地图 –> 已选地图

其中红色的地图需要 key,黑色的不需要;

系统默认勾选了 3 种地图,你可以再选择 高德地图,保存后就可以在首页进行切换了

+/- 号进行缩放

移动端 app

移动端的下载地址:https://www.traccar.org/client/

老苏还是下载的 Android 平台的

打开 app

修改服务器地址

保存后,直接启用 定位服务

注意你的设备编码,添加设备时会用到;

添加设备

Web 主界面点 +号,添加 注册您的第一台设备

填入名称和设备编号

回到首页后,左侧会有刚添加的设备

地图上也会有设备所在的位置

接下来你可以做跟踪轨迹、设置围栏等操作

参考文档

Traccar
地址:https://github.com/traccar/

Source Code - Traccar
地址:https://www.traccar.org/source-code/

traccar/traccar-docker: Traccar Docker
地址:https://github.com/traccar/traccar-docker