{"id":18513337,"url":"https://github.com/jbox-web/redis_web_manager","last_synced_at":"2025-05-14T12:20:34.051Z","repository":{"id":243148599,"uuid":"811609770","full_name":"jbox-web/redis_web_manager","owner":"jbox-web","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-04T21:04:16.000Z","size":855,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T12:19:55.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbox-web.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-07T00:10:03.000Z","updated_at":"2025-03-04T21:04:20.000Z","dependencies_parsed_at":"2024-06-07T01:26:59.003Z","dependency_job_id":"adc7181d-1c0f-490f-b28a-55b865b65fa0","html_url":"https://github.com/jbox-web/redis_web_manager","commit_stats":null,"previous_names":["jbox-web/redis_web_manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbox-web%2Fredis_web_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbox-web%2Fredis_web_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbox-web%2Fredis_web_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbox-web%2Fredis_web_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbox-web","download_url":"https://codeload.github.com/jbox-web/redis_web_manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140805,"owners_count":22021225,"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","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":"2024-11-06T15:37:43.770Z","updated_at":"2025-05-14T12:20:33.998Z","avatar_url":"https://github.com/jbox-web.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RedisWebManager\n\n[![GitHub license](https://img.shields.io/github/license/jbox-web/redis_web_manager.svg)](https://github.com/jbox-web/redis_web_manager/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/jbox-web/redis_web_manager.svg)](https://github.com/jbox-web/redis_web_manager/releases/latest)\n[![CI](https://github.com/jbox-web/redis_web_manager/workflows/CI/badge.svg)](https://github.com/jbox-web/redis_web_manager/actions)\n[![Code Climate](https://codeclimate.com/github/jbox-web/redis_web_manager/badges/gpa.svg)](https://codeclimate.com/github/jbox-web/redis_web_manager)\n[![Test Coverage](https://codeclimate.com/github/jbox-web/redis_web_manager/badges/coverage.svg)](https://codeclimate.com/github/jbox-web/redis_web_manager/coverage)\n\nWeb interface that allows you to manage easily your Redis instance (see keys, memory used, connected client, etc...). \n\n### Check your stats \nThe Dashboard allows you to check the Memory usage, CPU and Redis clients.\n\n![RedisWebManager Dashboard](images/images_dashboard.png)\n\n### Manage your redis keys\nYou can easily edit and delete any keys stored in your redis database.\n\n![RedisWebManager Keys](images/images_keys.png)\n\n### Keep an eye on your redis clients\nCheck how many clients are connected and their infos.\n\n![RedisWebManager Clients](images/images_clients.png)\n\n## Installation\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'redis_web_manager'\n```\n\nAnd then execute:\n```bash\n$ bundle\n```\n\nOr install it yourself as:\n```bash\n$ gem install redis_web_manager\n```\n\nAdd the custom route in your `routes.rb`:\n```\nmount RedisWebManager::Engine =\u003e '/redis_web_manager'\n```\n\nAccess to RedisWebManager at `/redis_web_manager`\n\n## Configuration\n\nYou can configure RedisWebManager: \n\n```ruby\n# initializers/redis_web_manager.rb\n\nRedisWebManager.configure do |config|\n  config.redises = {\n    instance_1: Redis.new(db: 1),\n    instance_2: Redis.new(url: 'XXX')\n  } # Default { default: Redis.new } (Hash with instance(s) of Redis)\n  config.lifespan = 2.days # Default 15.days (Lifespan of each keys for dashboard)\n  config.authenticate = proc {\n                           authenticate_or_request_with_http_basic do |username, password|\n                              username == 'TEST' \u0026\u0026 password == 'TEST'\n                            end\n                          } # Default nil (Authenticate method to secure tools)\nend\n```\n\n## Collect data for dashboard\n\nIn order to have data on your dashboard you must collect the data like this:\n```ruby\ndata = RedisWebManager::Data.new(:instance_1)\ndata.perform\n```\n\nor \n\n```ruby\nRedisWebManager.redises.keys.each do |instance|\n  data = RedisWebManager::Data.new(instance)\n  data.perform\nend\n```\n\nIf you are using a system to run background tasks in your application (like Sidekiq, Sucker Punch or ActiveJob), you can write your own background task to update the dashboard statistics.\n\nSidekiq exemple:\n```ruby\nclass DashboardWorker\n  include Sidekiq::Worker\n\n  def perform\n    data = RedisWebManager::Data.new(:instance_1)\n    data.perform\n  end\nend\n```\n\nor\n\n```ruby\nclass DashboardWorker\n  include Sidekiq::Worker\n\n  def perform\n    RedisWebManager.redises.keys.each do |instance|\n      data = RedisWebManager::Data.new(instance)\n      data.perform\n    end\n  end\nend\n```\n\nSucker Punch exemple:\n```ruby\nclass DashboardJob\n  include SuckerPunch::Job\n\n  def perform\n    data = RedisWebManager::Data.new(:instance_1)\n    data.perform\n  end\nend\n```\n\nor\n\n```ruby\nclass DashboardJob\n  include SuckerPunch::Job\n\n  def perform\n    RedisWebManager.redises.keys.each do |instance|\n      data = RedisWebManager::Data.new(instance)\n      data.perform\n    end\n  end\nend\n```\n\n\n\n\n## Todo\n* [ ] Add graph for most used commands\n* [ ] Real time chart update\n* [ ] Alert system (ex: triggered when memory is peaking)\n* [ ] Command line interface to manage your redis database\n* [ ] Logs interface\n\n\n## Contributing\nBug reports and pull requests are welcome on GitHub at https://github.com/OpenGems/redis_web_manager. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbox-web%2Fredis_web_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbox-web%2Fredis_web_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbox-web%2Fredis_web_manager/lists"}