Giter VIP home page Giter VIP logo

staytus's Introduction

Where did the GitHub Issues go? Due to a bit of neglect on my part and an abundance of support questions coming to this repository as GitHub issues I have taken the decision to close all issues. I don't have time to go through each issue individually. If your issue has been closed and it's not a support request and you still think it is relevant, please comment and I'll review.

Future plans I'm hoping to do a bit more work on Staytus soon. One of the main things I want to achieve will be to provide Staytus as a container rather than requiring people to install it manually on servers which seems to be cause of a number of issues. Once this is complete, I'll update all docs to make it clear now to deploy Staytus either using Docker or onto a Kubernetes cluster if that's what you prefer.

Staytus

Staytus is a complete solution for publishing the latest information about any issues with your web applications, networks or services. Along with absolutely beautiful public & admin interfaces, Staytus is a powerful tool for any organization with customers that rely on them to be online 24/7.

Screenshot

Installation from source

System Requirements

  • Ruby 2.3 or greater (including ruby-dev package on Linux)
  • RubyGems and Bundler
  • A MySQL database server
  • Bundler (gem install bundler)
  • Rake (gem install rake)
  • Procodile (gem install procodile)

Installation Instructions

A comprehensive tutorial about how to install Staytus available here on the aTech Media blog.

Alternativly, these basic instructions will get you up and running:

Before start, you'll need to create a new MySQL database:

mysql$ CREATE DATABASE `staytus` CHARSET utf8 COLLATE utf8_unicode_ci;
mysql$ GRANT ALL ON staytus.* TO `staytus`@`localhost` IDENTIFIED BY "a_secure_password";
$ git clone https://github.com/adamcooke/staytus
$ cd staytus
$ git checkout stable
$ bundle install --deployment --without development:test
$ cp config/database.example.yml config/database.yml
$ nano -w config/database.yml # Add your database configuration
$ bundle exec rake staytus:build staytus:install
$ procodile start --foreground

In case the bundle install command fails at mysql2, make sure that you have the MySQL development package (ie. mysql on macOS, libmariadb-dev for MariaDB on Linux)

This will run the application on HTTP port 5000. When you first login, you'll be able to add your own site settings. Browse to http://[IP]:8787 to begin.

You may also want to change the SMTP configuration via environment variables, which are described in config/environment.example.yml.

To run staytus in the background, simply run procodile start without the --foreground option.

Upgrading

Once you've installed Staytus, you can easily upgrade it by following this process.

$ cd path/to/staytus
$ git pull origin stable
$ bundle
$ bundle exec rake staytus:build staytus:upgrade

Once you've done this, you should ensure you restart any Staytus processes which you have running.

E-Mail Notifications

All e-mail notifications are sent through a background worker process. This will be started automatically when you run the application using foreman start. If you don't do this, you can run jobs using bundle exec rake jobs:work.

Administration

To log in for the first time, visit the /admin, and log in with email [email protected] and password password. You will probably want to go to Settings -> Users and set up your admins.

Themes

All themes are stored in the content/themes directory. You can add your own themes in this directory but we do not recommend making changes to the default theme as these changes may get overridden in an upgrade.

Full details about how to make these will be coming soon.

Examples in the wild

If you're running Staytus in the wild, let us know so we can add you to the list.

Screenshots

Here's a few extra screenshots from the admin and public interfaces.

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

staytus's People

Contributors

adamcooke avatar adammcmaster avatar afeld avatar amaczuga avatar danquinney avatar dgillard avatar glaszig avatar gregkare avatar lfuelling avatar matthewalbani avatar meadhikari001 avatar naft-a avatar novotarq avatar pimterry avatar ravloony avatar robertlyall avatar tilsammans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

staytus's Issues

When will the stable branch be updated?

Looks like there are a number of commits that have been added to the master branch that have not been pulled into the stable branch yet (MIT license, API fixes/changes, etc.). Is there a plan/timeframe for when these changes will be added to stable?

Set up automated build on Docker Hub

It'd be nice if the repo on the Docker Hub was an automated build (with a repository link to the ruby repo), so that the image would be kept up to date automatically (especially for example if the base ruby image receives security updates).

Adding URLs as links to status updates & components

Hello,

Is there a way to add URLs as hyperlinks to Staytus's "Post a new message" areas? If so, what's the syntax for doing so?

Secondly, is there a way to have the main site link to the components URL at this time?

Thanks!

Notifications displaying time as UTC

Despite changing the timezone within the app the timezone on the notification emails is always UTC. is there any way we can remove the timezone from the emails? 2015-05-08 11:00:00 UTC

I noticed that the format should be %Y-%m-%d %H:%M but that doesn't seem to be applying in the emails.

Roadmap

Adam,
Loving Staytus. Been looking at your roadmap, is there any chance of adding the monitoring side ping, DNS and Twitter intergration anytime soon. What great function to have. Many Thanks.

running with apache

Hi,

I am relatively new to ruby island and was wondering how to run staytus with Apache. What would be the document root for the configuring apache server?

MySQL error

When i typ in "mysql$ CREATE DATABASE staytus CHARSET utf8 COLLATE utf8_unicode_ci;
mysql$ GRANT ALL ON staytus.* TO staytus@localhost IDENTIFIED BY "a_secure_password";" and i click go, then an error apears with the following:

"
Error
SQL query:

mysql$ CREATE DATABASE staytus CHARSET utf8 COLLATE utf8_unicode_ci;

MySQL said:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'mysql$ CREATE DATABASE staytus CHARSET utf8 COLLATE utf8_unicode_ci' at line 1

"

SendGrid or Amazon SES support?

Any plans for supporting SendGrid or Amazon SES for sending mails?
Sending large quantities of mails from any server requires a bit of work in order to insure they are received properly (not SPAMed) if at all.
Both services have APIs for integration.

releases?

are there regular releases (you know: version numbers, git tags and so on) of this software?

An error occurred while installing json (1.8.2)

Hello,

I Looking for help because i can't install json (1.8.2)

An error occurred while installing json (1.8.2), and Bundler cannot continue. Make sure thatgem install json -v '1.8.2'succeeds before bundling.

Thank's for your help !

Improving deployment approach

This looks excellent, and I'd like to use it. I don't particularly want to have to install Ruby and set up and maintain a MySQL DB just to run my status site though.

Any enthusiasm for automating this away? I'm mostly imagining adding a Dockerfile that wraps that setup up, so anybody with Docker set up can just pull the staytus image, start it, and go. Happy to do the legwork to put that in place, but obviously only if it's something you'd consider merging.

Non-docker approaches would work perfectly well too, if you can think of a simple one, but I'm not aware of anything that would work quite as neatly for this.

clarify license

here it says that Staytus is "free", but the source doesn't actually specify a license.

what license is staytus distributed under?

Add validation on description length

Hi,

I have tried installing this using the Viaduct App.
However, on the setup page, after entering the details, all I get is this error message:

We're sorry, but something went wrong.
If you are the application owner check the logs for more information.

Log:
122.171.176.85 - - [30/Oct/2015:21:58:44 +0000] "POST /500 HTTP/1.1" 500 1477 0.2219
122.171.176.85 - - [30/Oct/2015:22:01:18 +0000] "POST /500 HTTP/1.1" 500 1477 0.0214

Enable IP-protection

Hi

Is it possible to IP-protect the status-page ?

The API's hould not be IP-protected.

Kind regards

Feature: subscribe per service

When someone is registering for email alerts, he gets a selection of services and can select, which services he is interested in.
reason: API users are not interested in web interface down and vice versa.

Current workaround is to host status pages for all different services, which adds up.

"Last Updated" time

The main status indicator shows the "last updated" time as the time of the first update. For example if I posted the incident one hour ago it will say "last updated 1 hour ago" though I've been updating every 15 min.

Is there some way I can fix this to the last update time or change the wording?

Thanks!

screen shot 2015-10-01 at 2 07 42 pm

Multi-Customer Use

Would it be possible to have different status pages from different customers and then only see the status's for their servers / services.

What I mean by this is I have lots of customers that share suppliers (e.g internet providers) if I tag all the customers with that supplier in the admin portal somehow then when I say there is a problem with that supplier it could alert all the customers with that suppler and update their status's pages.

Email issues

Hi,
I'm a newbie and have issues to get email working. I've configured the server (Amazon linux) to send email and it works fine from the CLI but I don't get the email to work from the application. If I try to subscribe I get the following error message in production.log:

ArgumentError (SMTP-AUTH requested but missing secret phrase):
lib/staytus/email.rb:38:in deliver' app/models/subscriber.rb:41:insend_verification_email'
app/controllers/pages_controller.rb:58:in subscribe_by_email' app/controllers/application_controller.rb:15:inset_time_zone'

I've googled but I can't find anything that solves my problem. Any suggestion on what I am missing?
BR
Veronica

CREATE SERVICE

HI,

I want to expose a API to CREATE A SERVICE.
Using master branch.

I have added following changes in /api/controllers/services_api_controller.rb :

action :create do
    param :name, :required => true, :type => String
    param :permalink, :required => true, :type => String
    param :description, :required => false, :type => String
    param :status, :required => true, :type => String

    action do
      service_params = {
        title: params.name,
        permalink: params.permalink,
        description: params.description,
        status_id: ServiceStatus.where(permalink: params.status).first.id,
      }

      service = Service.new service_params
      if service.save
        structure service, :full => true
      else
        error :validation_error, service.errors
      end
    end
  end

When I make post request with /api/v1/service/create and post json object, it gives internal server error.

What am I missing here ?

I can't install Staytus

I use bundle install --deployment --without development:test
and i have

Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Using rake 10.4.2
Using i18n 0.7.0
Installing json 1.8.2 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/usr/bin/ruby2.2 -r ./siteconf20150727-6500-1ens5ub.rb extconf.rb

mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /opt/staytus/vendor/bundle/ruby/2.2.0/gems/json-1.8.2 for inspection.
Results logged to /opt/staytus/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0/json-1.8.2/gem_make.out
An error occurred while installing json (1.8.2), and Bundler cannot continue.
Make sure that gem install json -v '1.8.2' succeeds before bundling.

I try gem install json -v '1.8.2' and i have :

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/usr/bin/ruby2.2 -r ./siteconf20150727-6500-1ens5ub.rb extconf.rb

mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /opt/staytus/vendor/bundle/ruby/2.2.0/gems/json-1.8.2 for inspection.
Results logged to /opt/staytus/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0/json-1.8.2/gem_make.out

Log : /opt/staytus/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0/json-1.8.2/gem_make.out

GNU nano 2.2.6 File: gem_make.out

/usr/bin/ruby2.2 -r ./siteconf20150727-6536-b07d9s.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Lists of files in : /opt/staytus/vendor/bundle/ruby/2.2.0/gems/json-1.8.2

CHANGES README.rdoc ext lib
COPYING Rakefile install.rb tests
COPYING-json-jruby TODO java tools
GPL VERSION json-java.gemspec
Gemfile data json.gemspec
README-json-jruby.markdown diagrams json_pure.gemspec

I try ruby install.rb

I try to search and i cannot find answer to my problem.

Please help me,

Public and Private API

Add the ability for a public API for scraping status and a private API to update status.

caching and performance

since the status site can be hit pretty hard if everyone visits it at once, it is important that its performance is stellar.

on the demo site, i see that the page loads in a little under 800ms. The HTML gets delivered (TTFB) in 180ms for a total wait time for the HTML only of 300ms here. Chromium tells me that caching headers are not set correctly and that the site cannot be cached by reverse proxies (e.g. Varnish or Nginx). CSS files also do not have cache expiration which would allow those static files to be cached by the browser.

The main page also sets a cookie, which not only breaks caching but also tracks users needlessly.

Now maybe something funky is going on with Viaduct on the frontend servers, but that's what I can tell from the outside...

Emails not send

Hello,

I've successfully set up the app ( wich is pretty nice :P ) but i have a problem with mails, even after set up general settings i never receive them.

If i remember well the first time it sayed something like " you haven't configured the smtp server so the mails will be send throught the php sender" but now i doesn't say anything.

So how can i configure the smtp server ?

Kind regards,
Vialaxy

Api to create/update incidents

are you planning to implement API to create/update incidents.
It would be really useful to have it so that twe can have alert integration with monitoring systems (new alrert, alert resolution, update, etc,...)

Windows install

Do you have any windows installation instructions? I would be running Apache and MySQL.

Thanks.

Add groups to organize services

Hi,

Enhancement request here.

Like CachetHQ, it would be great to be able to sort services into groups, especially in my situation where I will being doing a status page for different locations.

Example:

New York (Group with services below.)
-- Server Alpha .......... Operational
-- Server Bravo .......... Degraded IO

California
-- Server Alpha .......... Operational
-- Server Bravo .......... Degraded IO

Cheers

Enable Caching

Hi,

Maybe its possible enable caching for app?
Like described here https://mattbrictson.com/nginx-reverse-proxy-cache :

"You may also want to use the Rails fresh_when method to cache for even longer periods, based on an ETag or last modification time. Be sure to pass the :public => true option to allow proxy caching."

Thanks!

Slack Integration

I think slack integration would be awesome at notifying internal teams of issues. The only thing that would be needed to support this would be the ability for an arbitrary webhook to post along side emails. I see this app as a great way for informing people inside your organization as well as customers. This is why something like integrating more with existing communication tools would be very powerful from my perspective.

smtp does not match server certificate

Hi,

I have setup smtp parameters for sending emails, but I receive the following error when tried to send an email.


01:18:44 worker.1 | [Worker(host:v-status-001-prod.prod.symcpe.net pid:8323)] Job Issue#send_notifications (id=2) FAILED (3 prior attempts) with OpenSSL::SSL::SSLError: hostname "smtp.<hostname>.net" does not match the server certificate

the smtp server used does not require any authentication. Could some one point me how could I resolve this?

12-Hour Time Format

On a scheduled maintenance entry the time is in 24-hour format. Is there a way to change it to 12-hour format?
image

SQL Issue

Set up staytus and get the following error after I run bundle exec foreman start

Error while reserving job: Mysql2::Error: Table 'staytus.delayed_jobs' doesn't exist: SHOW FULL FIELDS FROM delayed_jobs

I am able to access the domain where it is set up but it simply displays an error saying something went wrong

Staytus on Viaduct - Worker Process

Hello,

I've deployed Staytus on your Viaduct platform and am finding it quite enjoyable -- congrats and great job. However, I do have a question regarding the two different web & worker processes.

As of right now I'm simply using the free tier of Viaduct and have set the "worker" process to 0 for "bundle exec rake jobs:work" and everything appears to be functioning correctly.

Can you please advise on what functionality I'm missing by setting this to have 0 processes to remain on the free tier for the time being?

Thanks!

screenshot6-12-1509 45

HTTPS Support

Is there a way to enable HTTPS support in staytus?
It'd be nice if that was available.

Thanks

Hooks for sending Staytus updates to external services

Hello everybody,
Is it possible to send updates from Staytus to other services like Slack? Like are there any hooks when a issue was made or updated?
Basically I only need to be able to send a json string to a specific URL whenever something happens.

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.