{"id":33221919,"url":"https://github.com/rails-engine/status-page","last_synced_at":"2025-11-21T09:00:45.394Z","repository":{"id":59156431,"uuid":"55595410","full_name":"rails-engine/status-page","owner":"rails-engine","description":"Mountable status page for your Rails application, to check Cache, Redis, Sidekiq ...","archived":false,"fork":true,"pushed_at":"2023-09-29T12:53:11.000Z","size":183,"stargazers_count":109,"open_issues_count":5,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-11-17T21:07:43.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"lbeder/health-monitor-rails","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails-engine.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-06T10:02:47.000Z","updated_at":"2025-07-16T12:14:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rails-engine/status-page","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/rails-engine/status-page","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-engine%2Fstatus-page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-engine%2Fstatus-page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-engine%2Fstatus-page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-engine%2Fstatus-page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails-engine","download_url":"https://codeload.github.com/rails-engine/status-page/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-engine%2Fstatus-page/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285375203,"owners_count":27161007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-16T15:00:35.902Z","updated_at":"2025-11-21T09:00:45.386Z","avatar_url":"https://github.com/rails-engine.png","language":"Ruby","funding_links":[],"categories":["Opensource"],"sub_categories":[],"readme":"# status-page\n\n[![Gem Version](https://badge.fury.io/rb/status-page.svg)](http://badge.fury.io/rb/status-page) [![Build Status](https://travis-ci.org/rails-engine/status-page.svg)](https://travis-ci.org/rails-engine/status-page) [![Dependency Status](https://gemnasium.com/rails-engine/status-page.svg)](https://gemnasium.com/rails-engine/status-page) [![Coverage Status](https://coveralls.io/repos/rails-engine/status-page/badge.svg)](https://coveralls.io/r/rails-engine/status-page)\n\nMountable status page for your Rails application, to check (DB, Cache, Sidekiq, Redis, etc.).\n\nMounting this gem will add a '/status' route to your application, which can be used for health monitoring the application and its various services. The method will return an appropriate HTTP status as well as a JSON array representing the state of each service.\n\n## Example\n\n\u003cimg src=\"https://cloud.githubusercontent.com/assets/5518/14341727/c12ccdee-fcc6-11e5-8c25-00324d0e9baa.png\" /\u003e\n\n## Install\n\n```ruby\n# Gemfile\ngem 'status-page'\n```\n\nThen run:\n\n```bash\n$ bundle install\n```\n\n```ruby\n# config/routes.rb\nmount StatusPage::Engine, at: '/'\n```\n\n## Supported service services\n\nThe following services are currently supported:\n\n* DB\n* Cache\n* Redis\n* Sidekiq\n* Resque\n\n## Configuration\n\n### Adding services\n\nBy default, only the database check is enabled. You can add more service services by explicitly enabling them via an initializer:\n\n```ruby\nStatusPage.configure do\n  # Cache check status result 10 seconds\n  self.interval = 10\n  # Use service\n  self.use :database\n  self.use :cache\n  self.use :redis\n  # Custom redis url\n  self.use :redis, url: 'redis://you-redis-host:3306/1'\n  self.use :sidekiq\nend\n```\n\n### Adding a custom service\n\nIt's also possible to add custom health check services suited for your needs (of course, it's highly appreciated and encouraged if you'd contribute useful services to the project).\n\nIn order to add a custom service, you'd need to:\n\n* Implement the `StatusPage::Services::Base` class and its `check!` method (a check is considered as failed if it raises an exception):\n\n```ruby\nclass CustomService \u003c StatusPage::Services::Base\n  def check!\n    raise 'Oh oh!'\n  end\nend\n```\n* Add its class to the config:\n\n```ruby\nStatusPage.configure do\n  self.add_custom_service(CustomProvider)\nend\n```\n\n### Adding a custom error callback\n\nIf you need to perform any additional error handling (for example, for additional error reporting), you can configure a custom error callback:\n\n```ruby\nStatusPage.configure do\n  self.error_callback = proc do |e|\n    logger.error \"Health check failed with: #{e.message}\"\n\n    Raven.capture_exception(e)\n  end\nend\n```\n\n### Adding authentication credentials\n\nBy default, the `/status` endpoint is not authenticated and is available to any user. You can authenticate using HTTP Basic Auth by providing authentication credentials:\n\n```ruby\nStatusPage.configure do\n  self.basic_auth_credentials = {\n    username: 'SECRET_NAME',\n    password: 'Shhhhh!!!'\n  }\nend\n```\n\n## License\n\nThe MIT License (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frails-engine%2Fstatus-page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frails-engine%2Fstatus-page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frails-engine%2Fstatus-page/lists"}