An Express.js application that pings your urls and warns you about HTTP status code changes by email

Arrowbreaker: Sup

Sup is an easy to setup web application for Node.js that will ping your urls and warn you by email if their HTTP status code changes.

This module is open source but not free. Pricing and license on

npm install arrowbreaker-sup
var settings = {
  // Gmail example 
  email_server: {
    user: '',
    password: 'yourpassword',
    host: '',
    ssl: true
  from: 'Sup <>',        // <optional> Defaults: Sup <> 
  interval: 60 * 1000,                      // <optional> Defaults: 30 seconds 
  timeout: 10 * 1000,                       // <optional> Defaults: 10 seconds 
  data_file: __dirname + '/data.json',      // <optional> Defaults: __dirname/data.json 
var sup = require('arrowbreaker-sup')(settings); // Initialize sup 
  • We use the wonderful emailjs module. The email_server option gets passed directly into email.server.connect method. So check their documentation to for more options. The email server is optional but you wont get an email warnings without it.
  • The from option is the email which will show up as the sender. If you are using gmail this will get overwritten by gmail.
  • The interval option is the amount of time between each request.
  • The timeout option is the maximum amount of time a request can take.
  • The data_file option should point to a file on disk where sup will store your settings in a json format. If the doesn't exist it will be create.
var http = require('http');
var server = http.createServer(;  // This returns an Express.js app and creates an http server; 
sup.socket(server);                         // Socket IO needs an http server 
var http = require('http');
var base = express();
base.use('/sup',;                // Attach sup to your base app 
var server = http.createServer(base);       // Create the server; 
sup.socket(server);                         // Socket IO needs an http server 

Use this if you are already using in your application.

var http = require('http');
var socketio = require('');
var server = http.createServer(;  // Create the server; 
var io = socketio.listen(server);           // needs an http server 
io.set('log level', 3);                     // Custom settings 
sup.attachSocket(io);                       // Attach 

If you have suggestions, bugs or need help don't be shy and open an issue.