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

VSCode + PrettierでRubyのコードを自動フォーマットする

@prettier/plugin-rubyを利用

VSCodeでRails環境を整える

ショートカット大事

VSCodeでRubyのコード補完と関数ジャンプができるようにする

ruby拡張とsolargraph拡張を入れる

Action Mailerのインターセプタを使ってバウンスメールのチェックを行う

AWS SESを使っている場合はバウンス対応をやっておかないとサービス停止になってしまう

open-uriでhttpリクエストを送信する際のtimeout設定

モンキーパッチを当てた

docker-composeでRails6環境をrails newしたら途中で止まってしまった

--skip-gitオプションを追加する必要があった