From 5c8d81dd6c67ac67c9dfb99406fc3efeab646159 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Thu, 17 Oct 2024 12:58:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=20Traccar=20=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 3 +- README.md | 3 +- apps/traccar/6.5/conf/traccar.xml | 12 +++ apps/traccar/6.5/data.yml | 17 ++++ apps/traccar/6.5/docker-compose.yml | 24 +++++ apps/traccar/6.5/scripts/init.sh | 15 +++ apps/traccar/6.5/scripts/uninstall.sh | 10 ++ apps/traccar/6.5/scripts/upgrade.sh | 15 +++ apps/traccar/README.md | 128 ++++++++++++++++++++++++++ apps/traccar/data.yml | 15 +++ apps/traccar/logo.png | Bin 0 -> 22009 bytes 11 files changed, 240 insertions(+), 2 deletions(-) create mode 100644 apps/traccar/6.5/conf/traccar.xml create mode 100644 apps/traccar/6.5/data.yml create mode 100644 apps/traccar/6.5/docker-compose.yml create mode 100644 apps/traccar/6.5/scripts/init.sh create mode 100644 apps/traccar/6.5/scripts/uninstall.sh create mode 100644 apps/traccar/6.5/scripts/upgrade.sh create mode 100644 apps/traccar/README.md create mode 100644 apps/traccar/data.yml create mode 100644 apps/traccar/logo.png diff --git a/.github/README.md b/.github/README.md index 46a2807c3..2281fd1ab 100644 --- a/.github/README.md +++ b/.github/README.md @@ -129,7 +129,7 @@ | 🟢 | | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | | | 🟢 | | Prowlarr | https://prowlarr.com/ | 终极索引器管理器 | | | 🟢 | | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | | -| 🟢 | | 青龙 | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | +| 🟢 | | 青龙 | https://qinglong.online/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | | 🟢 | | radarr | https://radarr.video/ | 电影组织者/管理员,适用于 Usenet 和 torrent 用户 | | | 🟢 | | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | | | 🟢 | | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | | @@ -142,6 +142,7 @@ | 🟢 | | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | | | 🟢 | | 唐僧叨叨 | https://tsdaodao.com/ | 让企业轻松拥有自己的即时通讯 | | | 🟢 | | Telegram Bot Api | https://telegram.org/ | 自建 Telegram Bot API 服务器 | | +| 🟢 | | Traccar 轨迹 | https://www.traccar.org/ | 现代 GPS 追踪系统 | | | 🟢 | | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | | | 🟢 | | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | | | 🟢 | | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | | diff --git a/README.md b/README.md index 9315bc530..d0a3258d6 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ | 🟢 | | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | | | 🟢 | | Prowlarr | https://prowlarr.com/ | 终极索引器管理器 | | | 🟢 | | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | | -| 🟢 | | 青龙 | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | +| 🟢 | | 青龙 | https://qinglong.online/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | | 🟢 | | radarr | https://radarr.video/ | 电影组织者/管理员,适用于 Usenet 和 torrent 用户 | | | 🟢 | | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | | | 🟢 | | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | | @@ -125,6 +125,7 @@ | 🟢 | | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | | | 🟢 | | 唐僧叨叨 | https://tsdaodao.com/ | 让企业轻松拥有自己的即时通讯 | | | 🟢 | | Telegram Bot Api | https://telegram.org/ | 自建 Telegram Bot API 服务器 | | +| 🟢 | | Traccar 轨迹 | https://www.traccar.org/ | 现代 GPS 追踪系统 | | | 🟢 | | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | | | 🟢 | | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | | | 🟢 | | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | | diff --git a/apps/traccar/6.5/conf/traccar.xml b/apps/traccar/6.5/conf/traccar.xml new file mode 100644 index 000000000..2b4518307 --- /dev/null +++ b/apps/traccar/6.5/conf/traccar.xml @@ -0,0 +1,12 @@ + + + + + + + org.h2.Driver + jdbc:h2:./data/database + sa + + + diff --git a/apps/traccar/6.5/data.yml b/apps/traccar/6.5/data.yml new file mode 100644 index 000000000..593618f34 --- /dev/null +++ b/apps/traccar/6.5/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: "/home/traccar" + edit: true + envKey: TRACCAR_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8082 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number diff --git a/apps/traccar/6.5/docker-compose.yml b/apps/traccar/6.5/docker-compose.yml new file mode 100644 index 000000000..cb70b14a4 --- /dev/null +++ b/apps/traccar/6.5/docker-compose.yml @@ -0,0 +1,24 @@ +networks: + 1panel-network: + external: true + +services: + traccar: + image: traccar/traccar:6.5 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + hostname: traccar + ports: + - ${PANEL_APP_PORT_HTTP}:8082 + - 5000-5150:5000-5150 + - 5000-5150:5000-5150/udp + env_file: + - /etc/1panel/envs/global.env + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${TRACCAR_ROOT_PATH}/logs:/opt/traccar/logs:rw + - ${TRACCAR_ROOT_PATH}/traccar.xml:/opt/traccar/conf/traccar.xml:ro diff --git a/apps/traccar/6.5/scripts/init.sh b/apps/traccar/6.5/scripts/init.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/traccar/6.5/scripts/init.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/traccar/6.5/scripts/uninstall.sh b/apps/traccar/6.5/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/traccar/6.5/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/traccar/6.5/scripts/upgrade.sh b/apps/traccar/6.5/scripts/upgrade.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/traccar/6.5/scripts/upgrade.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/traccar/README.md b/apps/traccar/README.md new file mode 100644 index 000000000..b6ea7e50d --- /dev/null +++ b/apps/traccar/README.md @@ -0,0 +1,128 @@ +# Traccar 轨迹 + +Traccar GPS 追踪系统 + +![Traccar 轨迹](https://file.lifebus.top/imgs/traccar_cover.png) + +Traccar 是一个开源的 GPS 跟踪系统。此仓库包含基于 Java 的后端服务。它支持超过 200 种 GPS 协议和超过 2000 种 GPS +跟踪设备型号。Traccar 可以与任何主要的 SQL 数据库系统一起使用。它还提供易于使用的 REST API。 + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 特性 + +🚀 服务器 + +Traccar 软件在 Windows、Linux 或其他任何平台上都提供了卓越的性能和稳定性。服务器可以部署在本地或云端,我们提供各种托管选项,并提供专业支持。 + +🚀 设备 + +Traccar 在市场上众多的 GPS 跟踪系统中脱颖而出,因为它支持广泛的各种协议和设备型号。无论您更喜欢低成本、无名的 GPS +跟踪器,还是高品质、有质量保证的品牌,Traccar 都能让您从众多供应商中进行选择。 + +🚀 界面 + +Traccar 提供了一个现代且全面的网络界面,适用于桌面和移动设备。 +此外,我们还提供针对 Android 和 iOS 平台的本地移动应用程序。此外,我们还提供一系列应用程序,可以将移动设备转变为 GPS 追踪器。 + +🚀 实时跟踪 + +Traccar 允许您实时查看 GPS 设备的位置,没有任何延迟。 +多种地图选项可供选择,包括道路地图和卫星图像,您可以选择最符合您需求的一个。此外,Traccar 可以高效管理由 GPS 单元提供的大量传感器和数据。 + +🚀 警报 + +Traccar 软件提供即时通知,包括推送通知、电子邮件和其他方法的支持。 +这些功能使软件能够提醒用户恶劣驾驶行为、燃油下降、维护事件、地理围栏违规以及多种其他类型的警报。 + +🚀 报告 + +Traccar 提供多种报告,包括位置历史、行程、图表和总结报告。这些报告可以直接通过网络或移动应用访问,也可以导出为 Excel 文件。 +此外,Traccar 允许用户在地图上可视化位置历史,以便更直观地理解他们的数据。 + +## 功能 + ++ 实时 GPS 追踪 ++ 驾驶员行为监控 ++ 详细报告和摘要报告 ++ 地理围栏功能 ++ 警报和通知 ++ 账户和设备管理 ++ 电子邮件和短信支持 + +## 平台 + +### 管理平台 + +[![Download on the App Store](http://www.tananaev.com/badges/app-store.svg)](https://itunes.apple.com/app/traccar-manager/id1113966562) [![Get it on Google Play](http://www.tananaev.com/badges/google-play.svg)](https://play.google.com/store/apps/details?id=org.traccar.manager) + +### 服务平台 + +[![Download on the App Store](http://www.tananaev.com/badges/app-store.svg)](https://itunes.apple.com/app/traccar-client/id843156974) [![Get it on Google Play](http://www.tananaev.com/badges/google-play.svg)](https://play.google.com/store/apps/details?id=org.traccar.client) [![Get it on F-Droid](http://www.tananaev.com/badges/f-droid.svg)](https://f-droid.org/repository/browse/?fdid=org.traccar.client) + +## 安装说明 + +> ### 账户说明 +> +> 在较旧版本的 Traccar 中,系统会自动创建默认管理员账户,登录名和密码均为 admin +> +> 在较新版本中,没有默认用户,因此需要进行注册。第一个注册的用户会自动成为管理员。 + +> ### 设备注册 +> +> 您需要填写名称和标识符字段。名称可以是任何内容。标识符必须与您的设备向服务器报告的唯一 ID 相匹配。对于大多数设备,您应该使用 +> IMEI 或序列号作为唯一标识符。 + +### 数据库选择 + +Traccar 支持以下数据库: + ++ MySQL ++ PostgreSQL ++ H2 + +其中,H2 为默认数据库,但不建议在生产环境中使用。因此,我们建议使用 MySQL 或 PostgreSQL。 + +请在持久化目录中,查看配置文件:`traccar.xml` + +#### H2 数据库配置 + +我们不建议您修改 H2 数据库配置。如果您执意要修改,请确保您知道自己在做什么。 +您可以在安装目录 `conf/traccar.xml` 中找到默认的 H2 数据库配置。 + +```xml +org.h2.Driver +jdbc:h2:./data/database +sa + +``` + +#### MySQL 数据库配置 + +修改持久化目录中的 `traccar.xml` 文件,配置 MySQL 数据库。 + +```xml +com.mysql.cj.jdbc.Driver +jdbc:mysql://[HOST]/[DATABASE]?zeroDateTimeBehavior=round&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode='' +[USER] +[PASSWORD] +``` + +请将 `[]` 替换为您的实际配置。 + +#### PostgreSQL 数据库配置 + +修改持久化目录中的 `traccar.xml` 文件,配置 PostgreSQL 数据库。 + +```xml +org.postgresql.Driver +jdbc:postgresql://[HOST]/[DATABASE] +[USER] +[PASSWORD] +``` + +请将 `[]` 替换为您的实际配置。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/traccar/data.yml b/apps/traccar/data.yml new file mode 100644 index 000000000..054ebcebb --- /dev/null +++ b/apps/traccar/data.yml @@ -0,0 +1,15 @@ +additionalProperties: + key: traccar + name: Traccar 轨迹 + tags: + - WebSite + - Middleware + - Local + shortDescZh: 现代 GPS 追踪系统 + shortDescEn: Modern GPS tracking system + type: website + crossVersionUpdate: true + limit: 0 + website: https://www.traccar.org/ + github: https://github.com/traccar/traccar/ + document: https://www.traccar.org/documentation/ diff --git a/apps/traccar/logo.png b/apps/traccar/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c747aea05407bc78019b28dbb5cec82ac73f872c GIT binary patch literal 22009 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 F{{m9gF)#oC literal 0 HcmV?d00001