Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time



powerup is a single serving web application to report power and network connection status to the web. I wrote it as hurricane Sandy approached on October 27, 2012 so, if I left the house, I would know whether I would be coming back to working lights and a cold refrigerator.

Please see for a demonstration.


The application is an extremely simple Flask application (see requirements.txt for a complete list of Python dependencies). You will also need a settings module (e.g., containing the application settings (see the Settings section below).

Please use your preferred WSGI deployment method. Once the application is running, configure a device to periodically POST to the application with the device's uptime and the secret token. This works best on an always-on device, like a router. Here's an example with cURL:

curl --data-urlencode "token=secrettoken" --data-urlencode "uptime=$(uptime)"

Then you can check the status at the base URL.


The settings module may contain the following settings:

(Default: 30) The number of minutes without an update before the site reports a power outage.
A string containing a secret that only you know about. It's used to discard unauthorized update attempts (though you may want to configure your webserver to refuse requests to the /update URL from unexepcted IP addresses as well).
(Default: status.txt in the currrent working directory.) The path to the file in which the latest status is stored.
(Default: True) Whether powerup should report its status. If set to False updates are still accepted, but the status page reports thtat the site is disabled.

Settings with a default value may be omitted from the settings module.

Copyright and License

Copyright 2015 Daniel D. Beck.

This is free software. You can redistribute it and/or modify it under the terms of the WTFPL, Version 2. See LICENSE.txt for details.


A single serving web site to show power (and, implicitly, internet connectivity) status.




No releases published
You can’t perform that action at this time.