Task automation webapp for ISP operations
An R/Shiny webapp that automates common tasks at an ISP.
- Look up a client by PPPoE user, client number or name: the account, whether it is online, its IP, CPE and antenna, and every session with its traffic.
- Diagnose a line: the antenna's radio stats over SSH, ping, traceroute and nmap, and a one-page PDF report for the client.
- List the mobile and fixed lines whose extra charges passed the alarm threshold, refreshed every 30 minutes from the carrier's billing portal.
- Build the company email signature from a form and download it as HTML or JPG.
- Read a VDSL DSLAM board's 32 ports in a table, and label a port, without opening an SSH session.
You need R with shiny, shinyjs, DT, stringr, readr, RMySQL, RSelenium, rPython and knitr, Python 3 for GetAntena.py, Python with paramiko and pexpect for the SSH and DSLAM steps (run through rPython), and MySQL access to the ISP's databases. The code reads and writes under /home/tecnico/WebServicios, so clone it there. Set the hosts and passwords in server.R, then:
Rscript -e 'shiny::runApp(".", port = 8081, host = "127.0.0.1")'Open http://127.0.0.1:8081. The diagnosis PDF is rendered from RMD/diagnosis.rmd; the GeCo tabs drive a browser through selenium-server-standalone.jar.
The full list of what it needs, and every setting to fill in: Getting started.
The docs are at geiserx.github.io/services-isp.
- Getting started: what it needs, where to clone it, the first run, the background jobs
- Configuration: every host, password, path, port and threshold, with its file and line
- Usage: the five tabs, what you type and what comes back
- How it works: what talks to what, and the security model
- Troubleshooting: blank tabs, the messages, the PDF, VDSL and the alarm lists
Bugs go to the issues; security problems to the security policy, never a public issue.
- genieacs-container: Helm chart and container for GenieACS TR-069
- router-express: auto-configures client routers and syncs databases
- statix: ISP network statistics dashboard
- ScriptPoblar: adopts a whole network of devices into CRM Control in parallel