All Projects → pagermon → Pagermon

pagermon / Pagermon

Licence: unlicense
Multimon-ng pager message parser and viewer

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Pagermon

Soapy power
Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)
Stars: ✭ 88 (-42.86%)
Mutual labels:  radio, sdr, software-defined-radio
Gr Recipes
Main GNU Radio recipe repository for use with PyBOMBS
Stars: ✭ 90 (-41.56%)
Mutual labels:  hacktoberfest, radio, software-defined-radio
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-61.69%)
Mutual labels:  radio, sdr, software-defined-radio
Rtl Sdr
library for turning a RTL2832 based DVB dongle into a Software DefinedReceiver; mirror from https://git.osmocom.org/rtl-sdr/
Stars: ✭ 336 (+118.18%)
Mutual labels:  radio, sdr, software-defined-radio
RTLion
Multipurpose RTL-SDR Framework for RTL2832 based DVB-T receivers
Stars: ✭ 88 (-42.86%)
Mutual labels:  radio, sdr, software-defined-radio
Gnuradio
GNU Radio – the Free and Open Software Radio Ecosystem
Stars: ✭ 3,297 (+2040.91%)
Mutual labels:  hacktoberfest, radio, sdr
Gr Nrsc5
A GNU Radio implementation of HD Radio (NRSC-5)
Stars: ✭ 73 (-52.6%)
Mutual labels:  hacktoberfest, radio, sdr
SDR Matlab LTE
📡 Using Software Designed Radio to transmit LTE downlink signals at 2.4 GHz
Stars: ✭ 21 (-86.36%)
Mutual labels:  radio, sdr, software-defined-radio
Pybombs
PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
Stars: ✭ 316 (+105.19%)
Mutual labels:  hacktoberfest, radio, software-defined-radio
Qspectrumanalyzer
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
Stars: ✭ 677 (+339.61%)
Mutual labels:  radio, sdr, software-defined-radio
Pysdr
A guide for using Python as a software-defined radio (SDR) framework, for extremely rapid development of SDR apps/research with beautiful GUIs
Stars: ✭ 60 (-61.04%)
Mutual labels:  sdr, software-defined-radio
Adsb Out
📶 1090ES ADS-B Out Add-on
Stars: ✭ 74 (-51.95%)
Mutual labels:  radio, sdr
Tinysdr
First SDR platform for IoT networks
Stars: ✭ 78 (-49.35%)
Mutual labels:  sdr, software-defined-radio
Centsdr
CentSDR: tiny handheld standalone software defined receiver with LCD display.
Stars: ✭ 76 (-50.65%)
Mutual labels:  sdr, software-defined-radio
Rfsec Toolkit
RFSec-ToolKit is a collection of Radio Frequency Communication Protocol Hacktools.无线通信协议相关的工具集,可借助SDR硬件+相关工具对无线通信进行研究。Collect with ♥ by HackSmith
Stars: ✭ 1,085 (+604.55%)
Mutual labels:  radio, sdr
Openwebrx
Open source, multi-user SDR receiver software with a web interface
Stars: ✭ 813 (+427.92%)
Mutual labels:  sdr, software-defined-radio
Azuracast
A self-hosted web radio management suite, including turnkey installer tools for the full radio software stack and a modern, easy-to-use web app to manage your stations.
Stars: ✭ 1,253 (+713.64%)
Mutual labels:  hacktoberfest, radio
Sp Dev Fx Webparts
SharePoint Framework web part, Teams tab, personal app, app page samples
Stars: ✭ 1,289 (+737.01%)
Mutual labels:  hacktoberfest, angularjs
Dumpvdl2
VDL Mode 2 message decoder and protocol analyzer
Stars: ✭ 100 (-35.06%)
Mutual labels:  sdr, software-defined-radio
Angular Shepherd
An Angular wrapper for the site tour library Shepherd
Stars: ✭ 96 (-37.66%)
Mutual labels:  hacktoberfest, angularjs

PagerMon

Discord GitHub issues GitHub pull requests GitHub GitHub stars GitHub forks GitHub tag (latest SemVer) GitHub commit activity GitHub contributors GitHub Workflow Status (branch) GitHub Workflow Status (branch)

PagerMon is an API driven client/server framework for parsing and displaying pager messages from multimon-ng.

It is built around POCSAG messages, but should easily support other message types as required.

The UI is built around a Node/Express/Angular/Bootstrap stack, while the client scripts are Node scripts that receive piped input.

Features

  • Capcode aliasing with colors and FontAwesome icons
  • API driven extensible architecture
  • Single user, multiple API keys
  • SQLite or MySQL database backing
  • Configurable via UI
  • Pagination and searching
  • Filtering by capcode or agency
  • Duplicate message filtering
  • Keyword highlighting
  • WebSockets support - messages are delivered to clients in near realtime
  • Pretty HTML5
  • Native browser notifications
  • Plugin Support - Current Plugins:
    • Pushover near realtime muti-device notification service
    • Prowl near realtime iOS notification service with Apple Watch support
    • Telegram near realtime cloud based multi-device messaging
    • Discord near realtime cloud based messaging service
    • Gotify Self-Hosted messaging service
    • Twitter
    • Microsoft Teams Team colaboration platform
    • Slack Team colabortation platform
    • SMTP Email Support for conventional SMTP email notifications
    • Regex Filters - Filter incoming messages via regex
    • Regex Replace - Modify incoming messages via regex
    • Message Repeat - Repeat incoming messages to another pagermon server
  • May or may not contain cute puppies

Planned Features

  • Multi-user support
  • Postgres + MariaDB Support
  • Horizontal scaling
  • Enhanced message filtering
  • Bootstrap 4 + Angular 2 support
  • Enhanced alias control
  • Graphing
  • Non-sucky documentation

Screenshots

main view

desktop view

alias edit

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • nodejs
  • sqlite3
  • Probably some other stuff

Recommended

  • nvm
  • nginx or some kind of reverse proxy for SSL offloading

Running the server

Local setup

  1. Copy server/process-default.json to server/process.json and modify according to your environment
  2. Launch the app from the Terminal:
    $ sudo apt-get install npm sqlite3
    $ npm install [email protected] -g
    $ npm install pm2 -g
    $ cd server
    $ npm install
    $ export NODE_ENV=production
    $ pm2 start process.json
  1. To start on boot, let pm2 handle it:
    $ sudo pm2 startup
    $ pm2 save
  1. You probably want to rotate logs, too:
    $ pm2 install pm2-logrotate
    $ sudo pm2 logrotate -u user
  1. Now login via the website, default port is 3000, default credentials are 'admin' / 'changeme'
  2. Head to /admin, change your password, and generate some API keys
  3. Grab your API keys and drop them in the PagerMon client, then you're good to go!

Alternatively a production ready setup guide is available here https://github.com/pagermon/pagermon/wiki/Tutorial---Production-Ready-Ubuntu,-PM2,-Nginx-Reverse-Proxy,-Let's-Encrypt-SSL,-Pagermon-server

Docker

Manual build

You can use image already built for you or you can build it yourself:

# For PC
docker build -t pagermon/pagermon .

# For Raspberry Pi
docker build -t pagermon/pagermon:latest-armhf -f Dockerfile.armhf .

Running

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

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

Then run:

# 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

Parameters

Parameter Function
-e APP_NAME=<name> Application name
-e HOSTNAME=<hostname> Hostname
-e USE_COOKIE_HOST=true Use cookie host.
-e NO_CHOWN=true Disable fixing permissions.
-e PUID=1000 for UserID
-e PGID=1000 for GroupID
-e SKIP_APP=true Don't start app, useful for development.
-e TZ=Europe/London Specify a timezone to use eg. Europe/London.
-v <path>:/config Mount config diretory, so config persist during container restarts (option 1)
-v <volumename>:/config Create named volume for config diretory, so config persist during container restarts (option 2)
-v /config Create unnamed volume for config diretory, so config persist during container restarts (option 3)
-p 3000:3000 Expose container port

Note:

  • Configuration is stored in /config inside container and it is owned by node user with UID/GID 1000. To fix config directory ownership use -e PUID=<UID> and -e PGID=<GID>. (Here are database and config file stored)
  • The local port 3000 will be forwarded to the docker container to port 3000 (by -p 3000:3000)
  • In case you would like to follow the logfile, run docker logs -f pagermon (by --name pagermon)
  • To shutdown and remove the container (if using compose), run docker-compose down
  • If you make changes to the app for testing, you will need to re-build the image, run docker-compose down && docker-compose up --build
  • To run on Raspberry Pi use armhf variant (add -armhf at the end of version), but be aware that OracleDB does not work there.

See additional parameters.

Tip: You probably want to setup docker log rotation before, more can be found here.

PagermonPi - Raspberry Pi Image

Check out our Raspberry Pi Image for Pi3 & Pi4 which has Pagermon pre-loaded on it.

Check out the following links:

Releases for the latest version Wiki for PagermonPi support

Support

General PagerMon support can be requested in the #support channel of the PagerMon discord server.

Click Here to join

Bugs and Feature requests can be logged via the GitHub issues page.

Contributing

All are welcome to contribute. Contributors should submit a pull request with the requested changes.

CHANGELOG.md is to be updated on each pull request.

If a pull request is the first pull request since a release, then the version number should be bumped in CHANGELOG.md, server/app.js, and server/package.json.

If a database schema change is required, this must be done using KnexJS Migration files. Insert Instructions for this here

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See the list of contributors who participated in this project.

License

This project is licensed under The Unlicense - because fuck licenses. Do what you want with it. :>

Acknowledgments

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].