Giter Site home page Giter Site logo

lambstatus's Introduction

LambStatus

Launch CloudFormation Stack wercker status Gitter

LambStatus is a status page system inspired by StatusPage.io, built on AWS Lambda.

With a few clicks, You can build a status page like this:

StatusPage Demo

The demo pages are available:

  • Status page (the page to tell your service's status to your users)
  • Admin page (the page to change your service's status)

Goals of this project

  • Offers an open source and serverless status page system.
  • Enables you to deploy and maintain the status page system at minimum effort.

Why Serverless?

Status page system is great with the Serverless architecture, because:

  • It dramatically eases your pain caused by the scaling / availability issues. It is terrible if your service is down AND heavy traffic from stuck users stops your status page.
  • It reduces your infrastructure cost. A status page usually gets very low traffic and occasionally huge traffic. You only pay for the traffic that you handle.

Apart from the Serverless architecture, LambStatus enables you to:

  • Easily build and update the system (by the power of the CloudFormation)
  • Choose the AWS region different from your service's region. If both your service and its status page rely on the same region, the region outage may stop both.

Installation

Launch your cloudformation stack by clicking the button below:

Launch CloudFormation Stack

When a window to create a new CloudFormation stack is opened (like below), click Next.

CloudFormationWizard1

Then, enter your email address and click Next.

CloudFormationWizard2

Click Next again.

CloudFormationWizard3

Check the acknowledgment checkbox at the bottom and click Create.

CloudFormationWizard4

When the stack is created, the email will be sent to the email address of the initial user. It may take 20-25 minutes, mainly due to the settings of CloudFront Distribution.

CloudFormationWizard5

Click the link in the email, and sign in to admin console.

CloudFormationWizard6

See the demo page for the usage example of admin console.

Update

If the newer version of LambStatus is available, you can easily update the existing CloudFormation stack by applying this template. Visit the wiki page to see the step-by-step instructions.

TODO

LambStatus is still under development, and YOUR feature requests and bug reports are very welcome. Feel free to open a new issue or join our gitter room.

  • Service status
    • Show status by functional components
    • Grouping functional components (#14)
  • Incidents
    • Show incidents
    • Scheduled maintenance
  • Metrics
    • Show metrics
    • Import metrics data from other monitoring SaaS
      • CloudWatch
      • New Relic (#16)
      • ...
  • User accounts
    • Basic operations (create/delete account, sign in/out, etc.)
    • Two factor authentication (#14)
    • Single sign-on (#14)
  • Notifications
    • RSS feed
    • Email (#17)
    • Twitter (#18)
    • ...
  • Settings
    • Custom domain
    • Custom colors / styling (#14)

Development

Here is the rough architecture:

Architecture

Set up

  1. Clone the repository and go to the cloned directory

    git clone https://github.com/ks888/LambStatus && cd LambStatus

  2. Install all dependencies

    npm run install

  3. Configure the .env file. At least, you need to write your email address to the USER_EMAIL line because the initial login information will be sent to the address.

  4. Launch CloudFormation stack

    npm run cloudformation:create

    The command will return immediately, but it may take 20-25 minutes to actually create the stack, mainly due to the settings of CloudFront Distribution.

    If the command returns an error, make sure you properly configured the AWS credentials.

Server-side development

  1. Go to the lambda directory

    cd packages/lambda

  2. Build

    npm run build

  3. Test

    npm run test

  4. Deploy

    npm run deploy

Client-side development

  1. Go to the frontend directory

    cd packages/frontend

  2. Build

    npm run build

  3. Test

    npm run test

  4. Run the local server

    npm run start

Now, visit http://localhost:3000 and sign in to the admin console. Get the login information from the email you received.

lambstatus's People

Contributors

ks888 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.