A web UI dashboard for managing SolidQueue jobs, queues, workers, and recurring tasks in Rails applications.
- Job Management: View all jobs with filtering by class name, queue name, and date ranges
- Job Scopes: Filter by status (All, Failed, In Progress, Blocked, Scheduled, Finished)
- Pagination: Built-in pagination using Pagy
- Queue Management: View queues with job counts
- Worker Monitoring: Monitor SolidQueue worker processes
- Recurring Tasks: View and manage recurring job tasks
- Job Details: Detailed job view with formatted arguments and exception information
Add this line to your application's Gemfile:
gem "solid_bro"And then execute:
$ bundle installAdd the engine to your main application's routes file (config/routes.rb):
Rails.application.routes.draw do
# Your existing routes...
mount SolidBro::Engine => "/solid_bro"
endThis will make the dashboard available at /solid_bro in your application.
Authentication is handled by the host application. A simple way to protect the SolidBro UI is to wrap the engine in HTTP Basic auth in an initializer:
# config/initializers/solid_bro.rb
if Rails.env.production?
SolidBro::Engine.middleware.use Rack::Auth::Basic, "SolidBro" do |username, password|
# Use environment variables so credentials are not hard‑coded
ActiveSupport::SecurityUtils.secure_compare(username, ENV.fetch("SOLID_BRO_USER")) &
ActiveSupport::SecurityUtils.secure_compare(password, ENV.fetch("SOLID_BRO_PASSWORD"))
end
endSet the credentials in your environment (for example in credentials.yml.enc, your deployment environment, or .env):
SOLID_BRO_USER=admin
SOLID_BRO_PASSWORD=super-secretYou can also choose to integrate with your existing authentication system instead of HTTP Basic (e.g. only allow signed‑in admins) by adding the appropriate middleware or constraints around the engine mount in your app.
Make sure SolidQueue is configured in your application. Add to config/application.rb:
config.active_job.queue_adapter = :solid_queueEnsure SolidQueue migrations are run:
rails solid_queue:install:migrations
rails db:migrateFor Propshaft (Rails 7+ default): Assets are automatically added to your manifest.js in development/test environments. For production, you can run:
rails generate solid_bro:installOr manually add to app/assets/config/manifest.js:
//= link solid_bro/application.css
//= link solid_bro/application.jsFor Sprockets: Assets are automatically precompiled - no additional setup needed.
Once mounted, access the dashboard at:
- Jobs:
/solid_bro/jobs(or/solid_bro/as the root) - Queues:
/solid_bro/queues - Workers:
/solid_bro/workers - Recurring Tasks:
/solid_bro/recurring-tasks
The jobs index supports filtering by:
- Job class name: Case-insensitive partial match
- Queue name: Case-insensitive partial match
- Date range: Filter by created_at (for all/failed/in_progress/blocked/scheduled) or finished_at (for finished jobs)
- Retry: Retry a failed job (available on failed jobs)
- Discard: Delete a job from the queue
- Rails >= 7.0
- SolidQueue gem
- Pagy >= 8.0
Contribution directions go here.
The gem is available as open source under the terms of the MIT License.