Sidekiqの管理画面にBasic認証を設定する
sidekiqには管理画面UIが用意されており、routesに以下を追加すると/sidekiqで管理画面にアクセスできるようになる。
# config/routes.rb
require 'sidekiq/web'
Rails.application.routes.draw do
mount Sidekiq::Web, at: "/sidekiq"
end
ただ、デフォルトだと誰でもアクセスできてしまうため認証を設定する必要がある。
DeviseやSorceryを使った認証を行うこともできるみたいだが、今回はシンプルにBasic認証を導入する。
initializerに以下のようにRack::Auth::Basicを追加すればOK。
# config/initializers/sidekiq.rb
require 'sidekiq/web'
Sidekiq::Web.use(Rack::Auth::Basic) do |user, password|
[user, password] == [ENV['SIDEKIQ_ADMIN_BASIC_AUTH_USER'], ENV['SIDEKIQ_ADMIN_BASIC_AUTH_PASSWORD']]
end