forked from envoy/sidekiq_dashboard
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.ru
More file actions
29 lines (23 loc) · 1.05 KB
/
config.ru
File metadata and controls
29 lines (23 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require 'sidekiq'
Sidekiq.configure_client do |config|
config.redis = {
url: ENV.fetch('REDIS_URL','redis://localhost:6379'),
ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE },
size: 1
}
end
raise "USERNAME or PASSWORD environment variables missing" if !ENV["USERNAME"] || !ENV["PASSWORD"]
require 'sidekiq/web'
require 'securerandom';
File.open(".session.key", "w") {|f| f.write(SecureRandom.hex(32)) }
use Rack::Session::Cookie, secret: File.read(".session.key"), same_site: true, max_age: 86400
map '/' do
use Rack::Auth::Basic, "Protected Area" do |username, password|
# Protect against timing attacks: (https://codahale.com/a-lesson-in-timing-attacks/)
# - Use & (do not use &&) so that it doesn't short circuit.
# - Use digests to stop length information leaking
Rack::Utils.secure_compare(::Digest::SHA256.hexdigest(username), ::Digest::SHA256.hexdigest(ENV["USERNAME"])) &
Rack::Utils.secure_compare(::Digest::SHA256.hexdigest(password), ::Digest::SHA256.hexdigest(ENV["PASSWORD"]))
end
run Sidekiq::Web
end