The source code for the second project in the course "Working with websockets in Go"

  • By Trevor Sawler
  • Last update: Dec 28, 2022
  • Comments: 0

License Version Built with GoLang Go Report Card


This is the source code for the second project in the Udemy course Working with Websockets in Go (Golang).

A dead simple monitoring service, intended to replace things like Nagios.


Build in the normal way on Mac/Linux:

go build -o vigilate cmd/web/*.go

Or on Windows:

go build -o vigilate.exe cmd/web/.

Or for a particular platform:

env GOOS=linux GOARCH=amd64 go build -o vigilate cmd/web/*.go


Vigilate requires:

  • Postgres 11 or later (db is set up as a repository, so other databases are possible)
  • An account with Pusher, or a Pusher alternative (like ipê)


First, make sure ipê is running (if you're using ipê):

On Mac/Linux

cd ipe

On Windows

cd ipe

Run with flags:

./vigilate \
-dbuser='tcs' \
-pusherHost='localhost' \
-pusherPort='4001' \
-pusherKey='123abc' \
-pusherSecret='abc123' \
-pusherApp="1" \

All Flags

tcs@grendel vigilate-udemy % ./vigilate -help
Usage of ./vigilate:
  -db string
        database name (default "vigilate")
  -dbhost string
        database host (default "localhost")
  -dbport string
        database port (default "5432")
  -dbssl string
        database ssl setting (default "disable")
  -dbuser string
        database user
  -domain string
        domain name (e.g. (default "localhost")
  -identifier string
        unique identifier (default "vigilate")
  -port string
        port to listen on (default ":4000")
        application is in production
  -pusherApp string
        pusher app id (default "9")
  -pusherHost string
        pusher host
  -pusherKey string
        pusher key
  -pusherPort string
        pusher port (default "443")
  -pusherSecret string
        pusher secret
        pusher server uses SSL (true or false)