Featured image of post 搭建 APRS 地图服务器(aprsc+Track Direct)

搭建 APRS 地图服务器(aprsc+Track Direct)

搭建 APRS 地图服务器(aprsc+Track Direct)

APRS与TrackDirect介绍:

什么是APRS?

APRS(自动分组报告系统)是一种数字通信系统,它使用分组无线电发送实时战术信息(通常在业余无线电频率上)。 通过APRS网络共享的信息包括坐标、高度、速度、航向、短信、警报、公告、公告和天气数据。 APRS 由 Bob Bruninga 开发,呼号为 WB4APR。 有关APRS的更多信息,请访问 www.aprs.org 或维基百科。

什么是 APRS Track Direct

APRS Track Direct 是一组工具,如果您想创建 APRS 跟踪网站,您可以将其用作起点。您可以使用来自 APRS-IS、CWOP-IS、OGN 或使用 APRS 规范的任何其他来源的数据。APRS Track Direct (https://www.aprsdirect.com )

本次搭建 APRS 地图服务器分为两部分:第一部分:安装 aprsc 程序,第二部分:安装 Track Direct 程序。


开始程序安装步骤:

1.安装前准备工作:

1.1. 选择合适的操作系统(推荐 Ubuntu 22.04)!

1.2. 给操作系统安装必要的软件方便后边使用!

  • sudo apt-get install nano # 文本编辑器
  • sudo apt-get install net-tools # 查看 ip 地址
  • sudo apt install proxychains4 # 网络代理工具 (proxychains4 安装后需要配置以下文件:sudo nano /etc/proxychains4.conf , 注释掉socks4 127.0.0.1那一行,在最后加上代理工具的设置, 如:socks5 127.0.0.1 1080 , 代理工具正常运行的前提下,在需要走代理的命令前打上proxychains4即可(但要在sudo后),即proxychains4 [命令], 如:sudo proxychains4 apt update

2.安装 aprsc 程序(aprsc 介绍:https://he.fi/aprsc/

Aprsc在以下平台上正式“支持”:

  • Debian stable (11.0, “bullseye”): i386, x86_64
  • Debian oldstable (10.0, “buster”): i386, x86_64
  • Debian oldoldstable (9.0, “stretch”): i386, x86_64
  • Ubuntu LTS (18.04, 20.04, 22.04): x86_64
  • CentOS 7: x86_64

Debian 和 Ubuntu:使用 apt-get 安装

2.1. 先请为 apt 配置 aprsc 的软件包存储库。 您需要弄清楚发行版的代号。在终端使用命令 “lsb_release -c”可查询系统发行代号。以下是版本及其代号:

Ubuntu 22.04 LTS: jammy
Ubuntu 20.04 LTS: focal
Ubuntu 18.04 LTS: bionic
Debian 11.0: bullseye
Debian 10.0: buster
Debian 9.0: stretch
目前不支持其他版本

2.2. 接下来,使用编辑器在 /etc/apt/sources.list 文件的末尾添加

deb http://aprsc-dist.he.fi/aprsc/apt DISTRIBUTION main

当然,DISTRIBUTION 需要替换为您的发行版代号。您应该看到代号出现在 sources.list 中其他类似的“deb”行。

例如使用 Ubuntu 22.04 LTS 操作系统,你应该在 sources.list 文件末尾添加以下行:

deb http://aprsc-dist.he.fi/aprsc/apt jammy main

编辑 sources.list 需要 root 权限。以下命令假定 您以普通用户身份运行它们,并使用 sudo 工具运行 以 root 身份执行单个命令。sudo 会要求您输入密码。

2.3. 接下来,通过运行以下命令添加用于对包进行签名的 gpg 密钥 命令提示符下的命令。这将启用 APRSC 软件包 - apt-get 将对其进行加密验证。

gpg --keyserver keyserver.ubuntu.com --recv C51AA22389B5B74C3896EF3CA72A581E657A2B8D
gpg --export C51AA22389B5B74C3896EF3CA72A581E657A2B8D | sudo apt-key add -

2.4 接下来,下载包索引:

sudo apt-get update

2.5. 然后,安装 aprsc:

sudo apt-get install aprsc

每当有新的 aprsc 版本可用时,都可以执行升级 通过运行 upgrade 命令自动执行。您的操作系统可以 还可以配置为自动升级软件包,或指示您 升级可用时进行升级。以下升级命令还将 如果可能,请为您重新启动 APRSC。

sudo apt-get update && sudo apt-get upgrade

2.6. 在启动 aprsc 之前,请编辑配置文件,该文件可在 /opt/aprsc/etc/aprsc.conf 中找到。有关说明,请参阅配置文档。

如果你的发行版有 systemd(试试 ‘systemctl’ 看看你是否有), 继续执行 systemd 说明。如果没有,请继续 老式的非 systemd 指令。

2.7. 使用 systemd 方式启动

启用服务:

sudo systemctl enable aprsc

要启动它:

sudo systemctl start aprsc

要关闭它:

sudo systemctl stop aprsc

要执行重新启动,请执行以下操作:

sudo systemctl restart aprsc

2.8. 以老式方式启动

要启用启动,请编辑 /etc/default/aprsc 并将 STARTAPRSC=“no” 更改为 “是的”。此时应该不需要触及其他选项。

启动它:

sudo service aprsc start

要关闭它:

sudo service aprsc stop

要执行重新启动,请执行以下操作:

sudo service aprsc restart

当 /etc/default/aprsc 文件中的 STARTAPRSC 设置为 YES 时,它将 系统启动时自动启动。您会在 /opt/aprsc/logs/aprsc.log。日志轮换已在 aprsc.conf 文件。

启动后,查看日志文件中的启动消息,注意 任何警告或错误。

3.安装 Track Direct 程序(Track Direct 介绍:https://www.aprsdirect.com/)

注意:TrackDirect必须安装在用户主目录中,不能安装在任何子目录中。

先决条件 您需要安装哪些内容以及如何安装它们。这些说明适用于 Ubuntu 20.04

3.1. 安装一些 ubuntu 软件包

sudo apt update

sudo apt-get install libpq-dev postgresql postgresql-client-common postgresql-client libevent-dev apache2 php libapache2-mod-php php-dom php-pgsql libmagickwand-dev imagemagick php-imagick inkscape php-gd libjpeg-dev python3 python3-dev python3-pip python-is-python3

3.2. 从存储库克隆项目文件

git clone https://github.com/qvarforth/trackdirect

cd trackdirect

3.3. 在安装所有 python 要求之前,您可能需要升级 pyOpenSSL

sudo python -m easy_install --upgrade pyOpenSSL

3.4. 安装所需的 python 库

pip install -r requirements.txt

3.5. 设置数据库

设置数据库(使用“sudo -u postgres psql”连接到数据库)。您需要替换“my_username”。请注意,APRS 使用 UTF-8 编码,因此可能需要指定,如下所示。

CREATE DATABASE trackdirect ENCODING 'UTF8';

CREATE USER my_username WITH PASSWORD 'foobar';

ALTER ROLE my_username WITH SUPERUSER;

GRANT ALL PRIVILEGES ON DATABASE "trackdirect" to my_username;

将密码添加到密码文件可能很好:

nano ~/.pgpass

提高数据库性能

使用一些 Postgresql 设置来提高性能可能是个好主意(对于此应用程序,速度比最小化数据丢失的风险更重要)。

/etc/postgresql/12/main/postgresql.conf 中可能会提高性能的一些设置:

shared_buffers = 2048MB  # I recommend 25% of total RAM
synchronous_commit=off   # Avoid writing to disk for every commit
commit_delay=100000  # Will result in a 0.1s commit delay

重启 postgresql

sudo /etc/init.d/postgresql restart

设置数据库表

该脚本应由拥有数据库“trackdirect”的用户执行。

~/trackdirect/server/scripts/db_setup.sh trackdirect 5432 ~/trackdirect/misc/database/tables/

3.6. 设置 OGN 设备数据

如果您使用的是来自 OGN(开放式滑翔机网络)的数据,请务必保持 OGN 数据更新(数据库表ogn_devices)。这很重要,否则您可能会展示不允许展示的飞机。我建议您至少每小时(或更频繁)运行一次此脚本。该脚本应由您授予数据库“trackdirect”访问权限的用户执行。

~/trackdirect/server/scripts/ogn_devices_install.sh trackdirect 5432

3.7. 配置 trackdirect

在启动websocket服务器之前,您需要更新trackdirect配置文件(trackdirect/config/trackdirect.ini)。通读配置文件并进行任何必要的更改。

nano ~/trackdirect/config/trackdirect.ini

3.8. 启动收集器

在启动收集器之前,您需要更新 trackdirect 配置文件 (trackdirect/config/trackdirect.ini)。

使用提供的 shell-script 启动收集器。请注意,如果您配置了多个收集器(从多个 aprs 服务器获取,例如 APRS-IS 和 CWOP-IS),则需要多次调用 shell-script。该脚本应由您授予数据库“trackdirect”访问权限的用户执行。

~/trackdirect/server/scripts/collector.sh trackdirect.ini 0

3.9. 启动 websocket 服务器

当用户与地图交互时,我们希望用后端的对象填充地图。为了获得良好的性能,我们避免使用后台 HTTP 请求(也称为 AJAX 请求),而是使用 websocket 通信。包含的trackdirect js库(trackdirect.min.js)将连接到我们的websocket服务器并请求当前地图视图的对象。

使用提供的 shell 脚本启动 websocket 服务器,该脚本应由您授予数据库“trackdirect”访问权限的用户执行。

~/trackdirect/server/scripts/wsserver.sh trackdirect.ini

如果您启用了防火墙,请确保所选端口已打开(我们默认使用端口 9000,可以在 trackdirect.ini 中更改)。

sudo ufw allow 9000

Trackdirect js 库

所有的地图视图魔术都由trackdirect js库处理,它包含渲染地图的功能(使用Google Maps API或Leaflet),用于与后端websocket服务器通信的功能等等。

如果在 js 库(jslib 目录)中进行更改,则需要执行 build.sh 将更改部署到 htdocs 目录。

~/trackdirect/jslib/build.sh

3.10. 设置 Web 服务器

Webserver 应该已经启动并运行(如果您安装了所有指定的 ubuntu 软件包)。

将以下内容添加到 /etc/apache2/sites-enabled/000-default.conf 中。您需要替换“my_username”。

<Directory "/home/my_username/trackdirect/htdocs">
Options SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>

更改 VirtualHost DocumentRoot:(在 /etc/apache2/sites-enabled/000-default.conf 中):

DocumentRoot /home/my_username/trackdirect/htdocs

启用重写并重新启动 apache

sudo a2enmod rewrite
sudo systemctl restart apache2

为了使符号和热图缓存正常工作,我们需要确保 Web 服务器具有写入权限(以下权限可能有点过于慷慨……

chmod 777 ~/trackdirect/htdocs/public/symbols
chmod 777 ~/trackdirect/htdocs/public/heatmaps

如果已启用防火墙,请确保端口 80 已打开。

sudo ufw allow 80

部署

如果要设置公共网站,则应安装防火墙并设置SSL证书。为了一个简单的解决方案,我会使用 ufw 来处理 iptables,使用 Nginx 作为反向代理,并使用 let’s encrypt 来加密 SSL 证书。

服务器要求

您需要的服务器功能有多强大取决于您将要使用的数据源类型。例如,如果您从 APRS-IS 网络接收数据,您可能至少需要一台具有 4 个 CPU 和 8 GB RAM 的服务器,但我建议使用具有 8 个 CPU 和 16 GB RAM 的服务器。

🤬共哔哔了5篇文章 · 总计7.14k字
🥳博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计