Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Puma for Rack compatibility #2744

Merged
merged 1 commit into from
Jan 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -10,11 +10,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"

gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
9 changes: 3 additions & 6 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -189,7 +189,6 @@ GEM
kaminari-i18n (0.5.0)
kaminari
rails
kgio (2.11.4)
language_server-protocol (3.17.0.3)
launchy (3.0.1)
addressable (~> 2.8)
@@ -232,6 +231,8 @@ GEM
date
stringio
public_suffix (6.0.1)
puma (6.5.0)
nio4r (~> 2.0)
pundit (2.4.0)
activesupport (>= 3.0.0)
racc (1.8.1)
@@ -276,7 +277,6 @@ GEM
thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6)
rainbow (3.1.1)
raindrops (0.20.1)
rake (13.2.1)
rdoc (6.10.0)
psych (>= 4.0.0)
@@ -367,9 +367,6 @@ GEM
uglifier (4.2.1)
execjs (>= 0.3.0, < 3)
unicode-display_width (2.6.0)
unicorn (6.1.0)
kgio (~> 2.6)
raindrops (~> 0.7)
uri (1.0.2)
useragent (0.16.11)
webmock (3.24.0)
@@ -411,6 +408,7 @@ DEPENDENCIES
kaminari-i18n
launchy
pg
puma
pundit
rack-timeout
redcarpet
@@ -422,7 +420,6 @@ DEPENDENCIES
standard
timecop
uglifier
unicorn
webmock
webrick
xpath (= 3.2.0)
2 changes: 1 addition & 1 deletion Procfile
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
web: bundle exec puma -C config/puma.rb
35 changes: 35 additions & 0 deletions config/puma.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# This configuration file will be evaluated by Puma. The top-level methods that
# are invoked here are part of Puma's configuration DSL. For more information
# about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html.

# Puma can serve each request in a thread from an internal thread pool.
# The `threads` method setting takes two numbers: a minimum and maximum.
# Any libraries that use thread pools should be configured to match
# the maximum value specified for Puma. Default is set to 5 threads for minimum
# and maximum; this matches the default thread size of Active Record.
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count

# Specifies that the worker count should equal the number of processors in production.
if ENV["RAILS_ENV"] == "production"
require "concurrent-ruby"
worker_count = Integer(ENV.fetch("WEB_CONCURRENCY") { Concurrent.physical_processor_count })
workers worker_count if worker_count > 1
end

# Specifies the `worker_timeout` threshold that Puma will use to wait before
# terminating a worker in development environments.
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"

# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
port ENV.fetch("PORT") { 3000 }

# Specifies the `environment` that Puma will run in.
environment ENV.fetch("RAILS_ENV") { "development" }

# Specifies the `pidfile` that Puma will use.
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }

# Allow puma to be restarted by `bin/rails restart` command.
plugin :tmp_restart
25 changes: 0 additions & 25 deletions config/unicorn.rb

This file was deleted.

2 changes: 1 addition & 1 deletion gemfiles/pundit21.gemfile
Original file line number Diff line number Diff line change
@@ -11,11 +11,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit", "~> 2.1.0"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"
gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
gem "sprockets-rails", "~> 3.5"
2 changes: 1 addition & 1 deletion gemfiles/rails60.gemfile
Original file line number Diff line number Diff line change
@@ -11,11 +11,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"
gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
gem "sprockets-rails", "~> 3.4"
2 changes: 1 addition & 1 deletion gemfiles/rails61.gemfile
Original file line number Diff line number Diff line change
@@ -11,11 +11,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"
gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
gem "sprockets-rails", "~> 3.5"
2 changes: 1 addition & 1 deletion gemfiles/rails70.gemfile
Original file line number Diff line number Diff line change
@@ -11,11 +11,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"
gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
gem "sprockets-rails", "~> 3.5"
2 changes: 1 addition & 1 deletion gemfiles/rails80.gemfile
Original file line number Diff line number Diff line change
@@ -11,11 +11,11 @@ gem "globalid"
gem "image_processing"
gem "kaminari-i18n"
gem "pg"
gem "puma"
gem "pundit"
gem "redcarpet"
gem "sentry-rails"
gem "sentry-ruby"
gem "unicorn"
gem "cssbundling-rails", "~> 1.4"
gem "jsbundling-rails", "~> 1.3"
gem "sprockets-rails", "~> 3.5"