Disambiguation

It appears that there are at least two things under the name PingPlotter: a commercial product, and a personal GitHub project. This page discusses the latter (though they seem to have the same goal in mind).

PingPlotter is a network diagnostic utility which pings specified hosts in the background, collects performance data, and logs it in a database. Very useful for diagnosing / tracking intermittently problematic networks.

See also

Installation via Docker Compose

The GitHub’s README has some hints on this, but in short, using docker:

services:
  pingplotter:
    container_name: pingplotter
    image: netsaver/pingplotter:latest
    restart: unless-stopped
    env_file:
      - pingplotter.env
 
  pingplot-db:
    container_name: pingplot-db
    image: postgres
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/postgresql
      - ./schema.sql:/schema.sql
    env_file:
      - pingplotter.env

If you have a reverse-proxy , point it at http://pingplotter:9911. Otherwise, map 9911 through Docker to access the web page.

In the environment file pingplotter.env:

DATABASE_URL=postgresql://postgres:password@pingplot-db:5432/pingplot
PORT=9911
NODE_ENV=production

POSTGRES_DB=pingplot
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password

(obviously, don’t make your password password!)

I did have to manually set up the database as well:

  1. Download docker/schema.sql from the GitHub repo and put it in schema.sql
  2. Get to a Bash shell in the database container: sudo docker exec -it pingplot-db bash
  3. Set up the database: psql -U postgres -d pingplot < /schema.sql

Database doesn't exist?

If you get problems on step 3 suggesting that there’s no such database, then (in the DB container’s shell):

  1. su - postgres
  2. createdb pingplot

See https://stackoverflow.com/a/30642050