pagermon
pagermon是API驱动的客户端/服务器框架,用于解析和显示来自Multimon-NG的Pager消息。
它是围绕POCSAG消息构建的,但应根据需要轻松支持其他消息类型。
UI围绕一个节点/Express/Angular/Bootstrap堆栈构建,而客户端脚本是接收管道输入的节点脚本。
特征
- 用颜色和fontawesome图标混音的标记代码脱叠
- API驱动的可扩展体系结构
- 多用户支持
- SQLITE或MYSQL数据库备份
- 可通过UI配置
- 分页和搜索
- 用盖代理或代理过滤
- 重复消息过滤
- 本地POCSAG / FLEX / EAS客户端支持
- 关键字突出显示
- WebSockets支持 – 消息将在实时接近实时发送给客户
- 漂亮的HTML5
- 本机浏览器通知
- 插件支持 – 当前插件:
- 在实时MUTI设备通知服务附近的推销
- 在实时iOS通知服务附近的prowl,并提供Apple Watch支持
- 基于实时云的电报附近的多设备消息传递
- 基于实时云的消息传递服务附近的不和谐
- GoTify自托管消息服务
- 叽叽喳喳
- 微软团队团队合作平台
- 懈怠团队合作平台
- SMTP电子邮件支持常规SMTP电子邮件通知
- REGEX过滤器 – 通过REGEX过滤传入消息
- 正则替换 – 通过正则修改传入消息
- 消息重复 – 重复传入的消息到另一台pagermon服务器
- 可能包含或不包含可爱的小狗
计划的功能
- 水平缩放
- 增强的消息过滤
- Bootstrap 4 + Angular 2支持
- 增强的别名控制
- 图形
屏幕截图
入门
这些说明将使您在本地计算机上启动并运行该项目的副本,以开发和测试目的。
先决条件
- Nodejs 12.x或更高
- sqlite3
- 可能还有其他一些东西
受到推崇的
- NVM
- NGINX或用于SSL卸载的某种反向代理
运行服务器
本地设置
- 将服务器/Process-Default.json复制到服务器/process.json并根据您的环境修改
- 从终端启动应用程序:
$ sudo apt-get install npm sqlite3
$ npm install npm@latest -g
$ npm install pm2 -g
$ cd server
$ npm install
$ export NODE_ENV=production
$ pm2 start process.json
- 要启动启动,让PM2处理它:
$ sudo pm2 startup
$ pm2 save
- 您可能也想旋转日志:
$ pm2 install pm2-logrotate
$ sudo pm2 logrotate -u user
- 现在通过网站登录,默认端口为3000,默认凭据为“ admin” /“ changeme”
- 前往 /管理,更改密码并生成一些API键
- 抓住您的API键并将其放在pagermon客户端中,然后您就可以了!
另外,可以pagermon此处pagermon生产准备设置指南
Docker
手动构建
您可以使用已经为您构建的图像,也可以自己构建它:
pagermon .
# For Raspberry Pi
docker build -t pagermon / pagermon :latest-armhf -f Dockerfile.armhf .\”>
# For PC docker build -t pagermon / pagermon . # For Raspberry Pi docker build -t pagermon / pagermon :latest-armhf -f Dockerfile.armhf .
跑步
pagermon \\
-e APP_NAME= pagermon \\
-p 3000:3000 \\
-e TZ=Europe/London \\
-v </path/to/config-mount>:/config \\
–restart unless-stopped \\
pagermon / pagermon :<VERSION>
docker start pagermon \”>
docker create \\ --name= pagermon \\ -e APP_NAME= pagermon \\ -p 3000:3000 \\ -e TZ=Europe/London \\ -v < /path/to/config-mount > :/config \\ --restart unless-stopped \\ pagermon / pagermon : < VERSION > docker start pagermon
Docker-Compose
pagermon:
#build: ./server # To build localy
image: pagermon / pagermon :<VERSION>
container_name: pagermon
environment:
– APP_NAME= pagermon
– PUID=1000 # Not required since node user inside docker has UID 1000
– PGID=1000 # Not required since node user inside docker has GID 1000
– TZ=Europe/London
ports:
– \”3000:3000\”
volumes:
– </path/to/config-mount>:/config
restart: unless-stopped\”>
version : \" 2 \" services : pagermon : # build: ./server # To build localy image : pagermon / pagermon :<VERSION> container_name : pagermon environment : - APP_NAME= pagermon - PUID=1000 # Not required since node user inside docker has UID 1000 - PGID=1000 # Not required since node user inside docker has GID 1000 - TZ=Europe/London ports : - \" 3000:3000 \" volumes : - </path/to/config-mount>:/config restart : unless-stopped
然后运行:
# Building with compose file docker-compose build # Running from compose file in foreground docker-compose up # Running from compose file in background docker-compose up -d
参数
| 范围 | 功能 |
|---|---|
-e APP_NAME=<name> |
申请名称 |
-e HOSTNAME=<hostname> |
主机名 |
-e USE_COOKIE_HOST=true |
使用cookie主机。 |
-e NO_CHOWN=true
|
禁用修复权限。 |
-e PUID=1000
|
用于用户ID |
-e PGID=1000
|
用于GroupID |
-e SKIP_APP=true
|
不要启动应用程序,对开发有用。 |
-e TZ=Europe/London
|
指定使用EG的时区。欧洲/伦敦。 |
-v <path>:/config
|
安装config diretory,因此在容器重新启动期间config持续存在(选项1) |
-v <volumename>:/config
|
创建命名为config diretory的名称,因此在容器重新启动过程中,config持续存在(选项2) |
-v /config
|
为Config Diretory创建未命名的卷,因此在容器重新启动过程中,配置持续存在(选项3) |
-p 3000:3000
|
暴露容器端口 |
笔记:
- 配置存储在容器内
/config中,它由uid /gid 1000的节点用户所有。修复配置目录所有权使用-e PUID=<UID>和-e PGID=<GID>。 (这是数据库和配置文件存储的) - 本地端口
3000将转发到码头容器3000端口(由-p 3000:3000)转发到端口3000 - 如果您想遵循logfile,请运行
docker logs -f pagermon(by--name pagermon) - 要关闭并卸下容器(如果使用),请运行
docker-compose down - 如果您更改应用程序进行测试,则需要重新构建图像,运行
docker-compose down && docker-compose up --build - 要在Raspberry Pi上运行使用ARMHF变体(版本末尾添加
-armhf),但请注意,OracleDB在那里不起作用。
请参阅其他参数。
提示:您可能想在此之前设置Docker日志旋转,可以在此处找到更多。
运行客户端
本地设置
先决条件
这些程序/库是pagermon Client需要工作的
- RTL-SDR-RTL-SDR工具/库访问RTL-SDR加密狗
- RTL -SDR加密狗 – 您可以从eBay,Amazon或其他商店获得这些(必须具有RTL2832U芯片)
- Nodejs -JavaScript编程语言(仅当安装与服务器分开时)
- NPM -JavaScript软件包管理器(仅当与服务器分开安装时)
- Git客户端-Github.com客户端获取源代码(仅当与服务器分开安装时)
要安装sudo apt install nodejs npm git rtl-sdr条件
安装pagermon客户端
从终端运行以下命令:
pagermon.git
cd pagermon /client
npm install\”>
git clone https://github*.*c*om/pagermon/ pagermon .git
cd pagermon /client
npm install
编辑reader.sh和编辑频率和rtl_device编号,编辑多月-NG命令
rtl_fm -d 0 -E dc -F 0 -A fast -f 148.5875M -s22050 - | multimon-ng -q -b1 -c -a POCSAG512 -f alpha -t raw /dev/stdin | node reader.js
-d 0使用rtl_test将其更改为rtl_device号码
-f 148.5875M将其更改为您正在解码的频率
多月-NG命令示例
pocsag
Multimon -NG -Q -B1 -C -A POCSAG512 -F ALPHA -T RAW /DEV /STDIN
弹性
Multimon -NG -A Flex -T RAW /DEV /STDIN
EAS
Multimon -ng -a eas -t raw /dev /stdin
配置pagermon客户端
在运行pagermon客户端之前,您必须将其配置为将解码的信息发送到pagermon服务器。
复制default.json到config.json
cp config/default.json config/config.json
用您喜欢的编辑器编辑config.json
{
\"apikey\": \"changeme\",
\"hostname\": \"http://127.*0*.*0.1:3000\",
\"identifier\": \"TEST\",
\"sendFunctionCode\": false,
\"useTimestamp\": true,
\"EAS\": {
\"excludeEvents\": [],
\"includeFIPS\": [],
\"addressAddType\": true
}
}
Pager选项
Apikey:这是pagermon Server上生成的API键http:// serverip/admin/settings
主机名: pagermon服务器的主机名或IP(如果您在同一PC上运行pagermon服务器和客户端,则可以将其添加为http://127.*0*.*0.1:3000 3000
标识符:这将显示在服务器网页上的“源”列中,适用于您有多个来源时,并且想知道Pager消息来自哪一条。
sendfunction码:这将把功能代码置于消息的地址
USEtimestamp:这将利用消息中的时间为TROM或FALSE
EAS选项
排除词:允许事件列表排除IE [\"RWT\",\"RMT\",\"SVA\"]
Include Fips:允许您在FIP列表中过滤以提醒IE [\"031109\", \"031000\"]
地址addtype:将将事件代码附加到地址,以便KOAX-WXR成为ZCZC-WXR-TOR-031109+0015-3650000-KOAX/NWS - wxr-w- true或false
pagermon Pi-覆盆子Pi图像
查看PI3&PI4的Raspberry Pi图像,该图像已预先加载pagermon 。
查看以下链接:
发布最新版本的Wiki pagermon Pi支持
支持
可以在pagermon Discord Server的#support频道中请求一般的pagermon支持。
点击这里加入
可以通过GITHUB问题页面记录错误和功能请求。
贡献
欢迎所有人的贡献。贡献者应提交带有请求更改的拉请请求。
每个拉请请求都将更新ChangElog.md。
如果拉动请求是自版本以来的第一个拉动请求,则应在CHANGELOG.md , server/app.js和server/package.json中对版本号进行凸起。
如果需要更改数据库架构,则必须使用KNEXJS迁移文件完成此操作。在此处插入说明
版本控制
我们使用SEMVER进行版本控制。有关可用的版本,请参见此存储库上的标签。
作者
请参阅参加该项目的贡献者列表。
执照
该项目在不执行的情况下获得许可 – 因为他妈的许可。做你想做的事。 :>
致谢
- 多月-NG
- JSame
