brynary/rack-bug
brynary/rack-bug has 1,071 GitHub stars and 101 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 10:43 UTC. Last push 2016-04-27.
Debugging toolbar for Rack applications implemented as middleware
What you can do
- Password-based security
- IP-based security
- Request Variables
- The API for adding your own panels is simple and powerful
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalRack::Bug 
- Repository: http://github.com/brynary/rack-bug
Description
Rack::Bug adds a diagnostics toolbar to Rack apps. When enabled, it injects a floating div allowing exploration of logging, database queries, template rendering times, etc.
Features
- Password-based security
- IP-based security
- Rack::Bug instrumentation/reporting is broken up into panels.
- Panels in default configuration:
- Rails Info
- Timer
- Request Variables
- SQL
- Active Record
- Cache
- Templates
- Log
- Memory
- Other bundled panels:
- Redis
- Sphinx
- The API for adding your own panels is simple and powerful
- Panels in default configuration:
Rails quick start
script/plugin install git://github.com/brynary/rack-bug.git
In config/environments/development.rb, add:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Add the bookmarklet to your browser:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Using with non-Rails Rack apps
Just 'use Rack::Bug' as any other middleware. See the SampleApp in the spec/fixtures folder for an example Sinatra app.
If you wish to use the logger panel define the LOGGER constant that is a ruby Logger or ActiveSupport::BufferedLogger
Configuring custom panels
Specify the set of panels you want, in the order you want them to appear:
require "rack/bug"
ActionController::Dispatcher.middleware.use Rack::Bug,
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:panel_classes => [
Rack::Bug::TimerPanel,
Rack::Bug::RequestVariablesPanel,
Rack::Bug::RedisPanel,
Rack::Bug::TemplatesPanel,
Rack::Bug::LogPanel,
Rack::Bug::MemoryPanel
]
Running Rack::Bug in staging or production
We have have found that Rack::Bug is fast enough to run in production for specific troubleshooting efforts.
Configuration
Add the middleware configuration to an initializer or the appropriate environment files, taking the rest of this section into consideration.
Security
Restrict access to particular IP addresses:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Restrict access using a password:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
Authors
- Maintained by Bryan Helmkamp
- Contributions from Luke Melia, Joey Aghion, Tim Connor, and more
Thanks
Inspiration for Rack::Bug is primarily from the Django debug toolbar. Additional ideas from Rails footnotes, Rack's ShowException middleware, Oink, and Rack::Cache
Thanks to Weplay.com for supporting the development of Rack::Bug
Development
For development, you'll need to install the following gems: rspec, rack-test, webrat, sinatra
License
See MIT-LICENSE.txt in this directory.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,363 starspublic-apis/public-apis
A collective list of free APIs
497,621 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,042 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,259 stars