Seans.Software

Thoughts on software
Ruby, Python, Swift, Javascript, PHP and Postgres.

Around the Web

How to Add the Web Interface to Mission Control When Using Solid Queue in Rails

Written by Sean on May 18, 2025
Solid queue lets you use your database as the store for ApplicationJob. No need for redis!

But if you want a nice little web interface to inspect what's going on, you'll need something like Mission Control: https://github.com/rails/mission_control-jobs

Add it to your Gemfile 

gem "mission_control-jobs"

And install 
cd your-rails-project
bundle

It won't work out of the box. You'll need to mount the engine and authenticate requests. That's relatively straight forward and there a few ways to do it, enumerated in the project README. 

But I've found the easiest thing to do is add a dedicated controller for auth. 

I called mine MissionControlController and it looks like this. 

class MissionControlController < ApplicationController
  before_action do
    redirect_to login_path, alert: "Please sign in to access this page" unless current_user && current_user.admin? 
  end
end

Then hook it up in config/application.rb 

config.mission_control.jobs.base_controller_class = "MissionControlController"
config.mission_control.jobs.http_basic_auth_enabled = false

And lastly mount the engine in config/routes.rb
  mount MissionControl::Jobs::Engine, at: "/jobs"

I decided against basic auth because I already have an admin user system and that extra layer of auth becomes annoying quickly.

Here's what it looks like:

Mission Control Jobs Interface