Status page for communicating incidents to a client base
PHP Smarty CSS HTML JavaScript ApacheConf
Latest commit 5498bd6 Apr 3, 2016 @montross50 montross50 Merge pull request #11 from tinned-software/gerhard-tinned-patch-2
disable 'Post to Twiter' and the Follow link if no twitter handle is set


Network Status Page


This repo contains a lightweight network status page written in PHP with a SQLite3 backend. It has support for sending twitter messages when incidents are added and updated using twitteroauth ( jQuery and jQuery UI are also used extensively throughout.

You can view this code in production at

This project is Composer Enabled.


To automatically fetch the prerequisites, you must have PHP 5.3.2+ and run the command

php -r "eval('?>'.file_get_contents(''));" && ./composer.phar install


  • Clone this repo: git clone git://
  • Configure settings in includes/config.php
  • Create a virtual host with the document root set to statuspage/public, or simply symlink to the public directory from your docroot
  • Make sure your web server can write to the statuspage/cache directory.
  • After these steps are complete, navigate to the root of the status site and it will initialize the database.
  • Once the database has been initialized, you may visit statuspage/login.php and use the username and password admin/admin to log in. Once logged in you should immediately change the admin user's password in the user page, or create a new user and delete the admin username.

  • Optionally, logos may be placed in public/templates/default/images/

    • The logo in the header should be named logo.gif. We use a 175x46 transparent gif.
    • In the footer, logo_square.jpg is displayed if present. We use a 47x46 jpg.

Twitter Settings

  • In includes/config.php we have a section for configuring the twitter integration. If you plan to utilize the integrated twitter functions, you must configure all twitter_ settings in the configuration.
  • To generate twitter API authentication credentials, follow these instructions:
    1. Register a twitter account at where the tweets will be sent to.
    2. Navigate to and log in using your twitter credentials.
    3. Click Create a new application
    4. Fill out all of the required fields and create your application.
    5. Navigate to the Details tab and scroll to the bottom. Click Create my access token
    6. Copy the consumer key and access token information to the twitter settings in includes/config.php
    7. In the Settings tab for your application, change the application type to Read and Write


  • When logged in as an admin, a "Report Incident" button will appear in the page header. Use this to create incidents either in the present (unplanned outage) or future (scheduled maintenance). When the timestamp of the incident is set in the future, the page will assume that the incident is a planned maintenance event.
  • A scheduled maintenance event will move to the left (current incident) column when the future timestamp is reached. Logged in users will then be able to provide updates regarding the maintenance window like any other incident.
  • Once the incident is created, updates can easily be provided by filling out the text box below each incident.
  • Click a service while logged in to change its working status.


  • If you receive the error Fatal error: Class 'SQLite3' not found, then your PHP instance does not have the SQLite3 module loaded.
  • How do I add services to a facility
    1. SSH into your server and go to the directory "cache" that has "status.db" in it.
    2. To get facility IDs run: sqlite3 status.db "SELECT * FROM `facilities`"
    3. Then run: sqlite3 status.db "INSERT INTO facilities_services (facilities_id, friendly_name, status) VALUES (2, 'Web Server', 'online')"
    4. I used "2" as the ID in my example, and "Web Server" as the service. You would simply run that command again making changes to those variables to add more services.


This project is distributed under the GNU GPL v3 license which can be found in COPYING.