pagermon

其他类别 2025-07-29

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卸载的某种反向代理

运行服务器

本地设置

  1. 将服务器/Process-Default.json复制到服务器/process.json并根据您的环境修改
  2. 从终端启动应用程序:
    $ 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
  1. 要启动启动,让PM2处理它:
    $ sudo pm2 startup
    $ pm2 save
  1. 您可能也想旋转日志:
    $ pm2 install pm2-logrotate
    $ sudo pm2 logrotate -u user
  1. 现在通过网站登录,默认端口为3000,默认凭据为“ admin” /“ changeme”
  2. 前往 /管理,更改密码并生成一些API键
  3. 抓住您的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 :/config --restart unless-stopped pagermon / pagermon : 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 : 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: - :/config restart: unless-stopped">
 version : " 2 "
services :
  pagermon :
    # build: ./server # To build localy
    image : pagermon / pagermon :
    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 :
      - :/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= 申请名称
-e 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 :/config 安装config diretory,因此在容器重新启动期间config持续存在(选项1)
-v :/config 创建命名为config diretory的名称,因此在容器重新启动过程中,config持续存在(选项2)
-v /config 为Config Diretory创建未命名的卷,因此在容器重新启动过程中,配置持续存在(选项3)
-p 3000:3000 暴露容器端口

笔记:

  • 配置存储在容器内/config中,它由uid /gid 1000的节点用户所有。修复配置目录所有权使用-e PUID=-e PGID= 。 (这是数据库和配置文件存储的)
  • 本地端口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:这将利用消息中的时间为TROMFALSE

EAS选项

排除词:允许事件列表排除IE ["RWT","RMT","SVA"]

Include Fips:允许您在FIP列表中过滤以提醒IE ["031109", "031000"]

地址addtype:将将事件代码附加到地址,以便KOAX-WXR成为ZCZC-WXR-TOR-031109+0015-3650000-KOAX/NWS - wxr-w- truefalse

pagermon Pi-覆盆子Pi图像

查看PI3&PI4的Raspberry Pi图像,该图像已预先加载pagermon 。

查看以下链接:

发布最新版本的Wiki pagermon Pi支持

支持

可以在pagermon Discord Server的#support频道中请求一般的pagermon支持。

点击这里加入

可以通过GITHUB问题页面记录错误和功能请求。

贡献

欢迎所有人的贡献。贡献者应提交带有请求更改的拉请请求。

每个拉请请求都将更新ChangElog.md。

如果拉动请求是自版本以来的第一个拉动请求,则应在CHANGELOG.mdserver/app.jsserver/package.json中对版本号进行凸起。

如果需要更改数据库架构,则必须使用KNEXJS迁移文件完成此操作。在此处插入说明

版本控制

我们使用SEMVER进行版本控制。有关可用的版本,请参见此存储库上的标签。

作者

请参阅参加该项目的贡献者列表。

执照

该项目在不执行的情况下获得许可 - 因为他妈的许可。做你想做的事。 :>

致谢

  • 多月-NG
  • JSame
下载源码

通过命令行克隆项目:

git clone https://github.com/pagermon/pagermon.git