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

参考


Related #ruby

Sidekiqで指定時間待ってから実行する

perform_inを使う

Active Jobで指定時間後にジョブを実行する

setメソッドの引数にwaitを指定する

bot tweetするrubyスクリプト

8時間ほどで申請が通っていた

RailsのログをLogrageに変更する

ログを1行にまとめてくれるので便利

request specでリダイレクトのテストをする

redirect_toが使えた

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした