Commit 6f5f5e7ee32bbd693796571fa6fcb8575accc08a
1 parent
cefd8fe2
Exists in
master
and in
4 other branches
Add suppoort of unicorn and fog gems
Showing
4 changed files
with
133 additions
and
6 deletions
Show diff stats
Gemfile
@@ -59,8 +59,9 @@ gem "haml-rails" | @@ -59,8 +59,9 @@ gem "haml-rails" | ||
59 | 59 | ||
60 | # Files attachments | 60 | # Files attachments |
61 | gem "carrierwave" | 61 | gem "carrierwave" |
62 | + | ||
62 | # for aws storage | 63 | # for aws storage |
63 | -# gem "fog", "~> 1.3.1" | 64 | +gem "fog", "~> 1.3.1", group: :aws |
64 | 65 | ||
65 | # Authorization | 66 | # Authorization |
66 | gem "six" | 67 | gem "six" |
@@ -76,7 +77,8 @@ gem "github-markup", "~> 0.7.4", require: 'github/markup' | @@ -76,7 +77,8 @@ gem "github-markup", "~> 0.7.4", require: 'github/markup' | ||
76 | gem "asciidoctor" | 77 | gem "asciidoctor" |
77 | 78 | ||
78 | # Servers | 79 | # Servers |
79 | -gem "puma", '~> 2.0.1' | 80 | +gem "puma", '~> 2.3.1', group: :puma |
81 | +gem "unicorn", '~> 4.6.3', group: :unicorn | ||
80 | 82 | ||
81 | # State machine | 83 | # State machine |
82 | gem "state_machine" | 84 | gem "state_machine" |
Gemfile.lock
@@ -116,6 +116,7 @@ GEM | @@ -116,6 +116,7 @@ GEM | ||
116 | erubis (2.7.0) | 116 | erubis (2.7.0) |
117 | escape_utils (0.2.4) | 117 | escape_utils (0.2.4) |
118 | eventmachine (1.0.3) | 118 | eventmachine (1.0.3) |
119 | + excon (0.13.4) | ||
119 | execjs (1.4.0) | 120 | execjs (1.4.0) |
120 | multi_json (~> 1.0) | 121 | multi_json (~> 1.0) |
121 | factory_girl (4.2.0) | 122 | factory_girl (4.2.0) |
@@ -131,6 +132,16 @@ GEM | @@ -131,6 +132,16 @@ GEM | ||
131 | eventmachine (>= 0.12.0) | 132 | eventmachine (>= 0.12.0) |
132 | ffaker (1.16.0) | 133 | ffaker (1.16.0) |
133 | ffi (1.8.1) | 134 | ffi (1.8.1) |
135 | + fog (1.3.1) | ||
136 | + builder | ||
137 | + excon (~> 0.13.0) | ||
138 | + formatador (~> 0.2.0) | ||
139 | + mime-types | ||
140 | + multi_json (~> 1.0) | ||
141 | + net-scp (~> 1.0.4) | ||
142 | + net-ssh (>= 2.1.3) | ||
143 | + nokogiri (~> 1.5.0) | ||
144 | + ruby-hmac | ||
134 | font-awesome-rails (3.1.1.3) | 145 | font-awesome-rails (3.1.1.3) |
135 | railties (>= 3.2, < 5.0) | 146 | railties (>= 3.2, < 5.0) |
136 | foreman (0.63.0) | 147 | foreman (0.63.0) |
@@ -243,6 +254,7 @@ GEM | @@ -243,6 +254,7 @@ GEM | ||
243 | kaminari (0.14.1) | 254 | kaminari (0.14.1) |
244 | actionpack (>= 3.0.0) | 255 | actionpack (>= 3.0.0) |
245 | activesupport (>= 3.0.0) | 256 | activesupport (>= 3.0.0) |
257 | + kgio (2.8.0) | ||
246 | launchy (2.2.0) | 258 | launchy (2.2.0) |
247 | addressable (~> 2.3) | 259 | addressable (~> 2.3) |
248 | letter_opener (1.1.0) | 260 | letter_opener (1.1.0) |
@@ -267,6 +279,9 @@ GEM | @@ -267,6 +279,9 @@ GEM | ||
267 | multipart-post (1.2.0) | 279 | multipart-post (1.2.0) |
268 | mysql2 (0.3.11) | 280 | mysql2 (0.3.11) |
269 | net-ldap (0.3.1) | 281 | net-ldap (0.3.1) |
282 | + net-scp (1.0.4) | ||
283 | + net-ssh (>= 1.99.1) | ||
284 | + net-ssh (2.6.8) | ||
270 | nokogiri (1.5.9) | 285 | nokogiri (1.5.9) |
271 | oauth (0.4.7) | 286 | oauth (0.4.7) |
272 | oauth2 (0.8.1) | 287 | oauth2 (0.8.1) |
@@ -305,7 +320,7 @@ GEM | @@ -305,7 +320,7 @@ GEM | ||
305 | coderay (~> 1.0.5) | 320 | coderay (~> 1.0.5) |
306 | method_source (~> 0.8) | 321 | method_source (~> 0.8) |
307 | slop (~> 3.4) | 322 | slop (~> 3.4) |
308 | - puma (2.0.1) | 323 | + puma (2.3.1) |
309 | rack (>= 1.1, < 2.0) | 324 | rack (>= 1.1, < 2.0) |
310 | pygments.rb (0.4.2) | 325 | pygments.rb (0.4.2) |
311 | posix-spawn (~> 0.3.6) | 326 | posix-spawn (~> 0.3.6) |
@@ -354,6 +369,7 @@ GEM | @@ -354,6 +369,7 @@ GEM | ||
354 | rake (>= 0.8.7) | 369 | rake (>= 0.8.7) |
355 | rdoc (~> 3.4) | 370 | rdoc (~> 3.4) |
356 | thor (>= 0.14.6, < 2.0) | 371 | thor (>= 0.14.6, < 2.0) |
372 | + raindrops (0.11.0) | ||
357 | rake (10.0.4) | 373 | rake (10.0.4) |
358 | rb-fsevent (0.9.3) | 374 | rb-fsevent (0.9.3) |
359 | rb-inotify (0.9.0) | 375 | rb-inotify (0.9.0) |
@@ -400,6 +416,7 @@ GEM | @@ -400,6 +416,7 @@ GEM | ||
400 | rspec-core (~> 2.13.0) | 416 | rspec-core (~> 2.13.0) |
401 | rspec-expectations (~> 2.13.0) | 417 | rspec-expectations (~> 2.13.0) |
402 | rspec-mocks (~> 2.13.0) | 418 | rspec-mocks (~> 2.13.0) |
419 | + ruby-hmac (0.4.0) | ||
403 | ruby-progressbar (1.0.2) | 420 | ruby-progressbar (1.0.2) |
404 | rubyntlm (0.1.1) | 421 | rubyntlm (0.1.1) |
405 | rubyzip (0.9.9) | 422 | rubyzip (0.9.9) |
@@ -499,6 +516,10 @@ GEM | @@ -499,6 +516,10 @@ GEM | ||
499 | execjs (>= 0.3.0) | 516 | execjs (>= 0.3.0) |
500 | multi_json (~> 1.0, >= 1.0.2) | 517 | multi_json (~> 1.0, >= 1.0.2) |
501 | underscore-rails (1.4.4) | 518 | underscore-rails (1.4.4) |
519 | + unicorn (4.6.3) | ||
520 | + kgio (~> 2.6) | ||
521 | + rack | ||
522 | + raindrops (~> 0.7) | ||
502 | virtus (0.5.4) | 523 | virtus (0.5.4) |
503 | backports (~> 2.6.1) | 524 | backports (~> 2.6.1) |
504 | descendants_tracker (~> 0.0.1) | 525 | descendants_tracker (~> 0.0.1) |
@@ -536,6 +557,7 @@ DEPENDENCIES | @@ -536,6 +557,7 @@ DEPENDENCIES | ||
536 | enumerize | 557 | enumerize |
537 | factory_girl_rails | 558 | factory_girl_rails |
538 | ffaker | 559 | ffaker |
560 | + fog (~> 1.3.1) | ||
539 | font-awesome-rails (~> 3.1.1) | 561 | font-awesome-rails (~> 3.1.1) |
540 | foreman | 562 | foreman |
541 | gemoji (~> 1.2.1) | 563 | gemoji (~> 1.2.1) |
@@ -574,7 +596,7 @@ DEPENDENCIES | @@ -574,7 +596,7 @@ DEPENDENCIES | ||
574 | pg | 596 | pg |
575 | poltergeist (~> 1.3.0) | 597 | poltergeist (~> 1.3.0) |
576 | pry | 598 | pry |
577 | - puma (~> 2.0.1) | 599 | + puma (~> 2.3.1) |
578 | quiet_assets (~> 1.0.1) | 600 | quiet_assets (~> 1.0.1) |
579 | rack-mini-profiler | 601 | rack-mini-profiler |
580 | rails (= 3.2.13) | 602 | rails (= 3.2.13) |
@@ -608,4 +630,5 @@ DEPENDENCIES | @@ -608,4 +630,5 @@ DEPENDENCIES | ||
608 | turbolinks | 630 | turbolinks |
609 | uglifier | 631 | uglifier |
610 | underscore-rails (~> 1.4.4) | 632 | underscore-rails (~> 1.4.4) |
633 | + unicorn (~> 4.6.3) | ||
611 | webmock | 634 | webmock |
@@ -0,0 +1,102 @@ | @@ -0,0 +1,102 @@ | ||
1 | +# Sample verbose configuration file for Unicorn (not Rack) | ||
2 | +# | ||
3 | +# This configuration file documents many features of Unicorn | ||
4 | +# that may not be needed for some applications. See | ||
5 | +# http://unicorn.bogomips.org/examples/unicorn.conf.minimal.rb | ||
6 | +# for a much simpler configuration file. | ||
7 | +# | ||
8 | +# See http://unicorn.bogomips.org/Unicorn/Configurator.html for complete | ||
9 | +# documentation. | ||
10 | + | ||
11 | +# Use at least one worker per core if you're on a dedicated server, | ||
12 | +# more will usually help for _short_ waits on databases/caches. | ||
13 | +worker_processes 2 | ||
14 | + | ||
15 | +# Since Unicorn is never exposed to outside clients, it does not need to | ||
16 | +# run on the standard HTTP port (80), there is no reason to start Unicorn | ||
17 | +# as root unless it's from system init scripts. | ||
18 | +# If running the master process as root and the workers as an unprivileged | ||
19 | +# user, do this to switch euid/egid in the workers (also chowns logs): | ||
20 | +# user "unprivileged_user", "unprivileged_group" | ||
21 | + | ||
22 | +# Help ensure your application will always spawn in the symlinked | ||
23 | +# "current" directory that Capistrano sets up. | ||
24 | +working_directory "/home/git/gitlab/current" # available in 0.94.0+ | ||
25 | + | ||
26 | +# listen on both a Unix domain socket and a TCP port, | ||
27 | +# we use a shorter backlog for quicker failover when busy | ||
28 | +listen "/home/git/gitlab/tmp/sockets/gitlab.socket", :backlog => 64 | ||
29 | +listen 8080, :tcp_nopush => true | ||
30 | + | ||
31 | +# nuke workers after 30 seconds instead of 60 seconds (the default) | ||
32 | +timeout 30 | ||
33 | + | ||
34 | +# feel free to point this anywhere accessible on the filesystem | ||
35 | +pid "/home/git/gitlab/tmp/pids/unicorn.pid" | ||
36 | + | ||
37 | +# By default, the Unicorn logger will write to stderr. | ||
38 | +# Additionally, ome applications/frameworks log to stderr or stdout, | ||
39 | +# so prevent them from going to /dev/null when daemonized here: | ||
40 | +stderr_path "/home/git/gitlab/log/unicorn.stderr.log" | ||
41 | +stdout_path "/home/git/gitlab/log/unicorn.stdout.log" | ||
42 | + | ||
43 | +# combine Ruby 2.0.0dev or REE with "preload_app true" for memory savings | ||
44 | +# http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow | ||
45 | +preload_app true | ||
46 | +GC.respond_to?(:copy_on_write_friendly=) and | ||
47 | + GC.copy_on_write_friendly = true | ||
48 | + | ||
49 | +# Enable this flag to have unicorn test client connections by writing the | ||
50 | +# beginning of the HTTP headers before calling the application. This | ||
51 | +# prevents calling the application for connections that have disconnected | ||
52 | +# while queued. This is only guaranteed to detect clients on the same | ||
53 | +# host unicorn runs on, and unlikely to detect disconnects even on a | ||
54 | +# fast LAN. | ||
55 | +check_client_connection false | ||
56 | + | ||
57 | +before_fork do |server, worker| | ||
58 | + # the following is highly recomended for Rails + "preload_app true" | ||
59 | + # as there's no need for the master process to hold a connection | ||
60 | + defined?(ActiveRecord::Base) and | ||
61 | + ActiveRecord::Base.connection.disconnect! | ||
62 | + | ||
63 | + # The following is only recommended for memory/DB-constrained | ||
64 | + # installations. It is not needed if your system can house | ||
65 | + # twice as many worker_processes as you have configured. | ||
66 | + # | ||
67 | + # # This allows a new master process to incrementally | ||
68 | + # # phase out the old master process with SIGTTOU to avoid a | ||
69 | + # # thundering herd (especially in the "preload_app false" case) | ||
70 | + # # when doing a transparent upgrade. The last worker spawned | ||
71 | + # # will then kill off the old master process with a SIGQUIT. | ||
72 | + # old_pid = "#{server.config[:pid]}.oldbin" | ||
73 | + # if old_pid != server.pid | ||
74 | + # begin | ||
75 | + # sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU | ||
76 | + # Process.kill(sig, File.read(old_pid).to_i) | ||
77 | + # rescue Errno::ENOENT, Errno::ESRCH | ||
78 | + # end | ||
79 | + # end | ||
80 | + # | ||
81 | + # Throttle the master from forking too quickly by sleeping. Due | ||
82 | + # to the implementation of standard Unix signal handlers, this | ||
83 | + # helps (but does not completely) prevent identical, repeated signals | ||
84 | + # from being lost when the receiving process is busy. | ||
85 | + # sleep 1 | ||
86 | +end | ||
87 | + | ||
88 | +after_fork do |server, worker| | ||
89 | + # per-process listener ports for debugging/admin/migrations | ||
90 | + # addr = "127.0.0.1:#{9293 + worker.nr}" | ||
91 | + # server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true) | ||
92 | + | ||
93 | + # the following is *required* for Rails + "preload_app true", | ||
94 | + defined?(ActiveRecord::Base) and | ||
95 | + ActiveRecord::Base.establish_connection | ||
96 | + | ||
97 | + # if preload_app is true, then you may also want to check and | ||
98 | + # restart any other shared sockets/descriptors such as Memcached, | ||
99 | + # and Redis. TokyoCabinet file handles are safe to reuse | ||
100 | + # between any number of forked children (assuming your kernel | ||
101 | + # correctly implements pread()/pwrite() system calls) | ||
102 | +end |
doc/install/installation.md
@@ -226,10 +226,10 @@ Make sure to edit both `gitlab.yml` and `puma.rb` to match your setup. | @@ -226,10 +226,10 @@ Make sure to edit both `gitlab.yml` and `puma.rb` to match your setup. | ||
226 | sudo gem install charlock_holmes --version '0.6.9.4' | 226 | sudo gem install charlock_holmes --version '0.6.9.4' |
227 | 227 | ||
228 | # For MySQL (note, the option says "without ... postgres") | 228 | # For MySQL (note, the option says "without ... postgres") |
229 | - sudo -u git -H bundle install --deployment --without development test postgres | 229 | + sudo -u git -H bundle install --deployment --without development test postgres unicorn aws |
230 | 230 | ||
231 | # Or for PostgreSQL (note, the option says "without ... mysql") | 231 | # Or for PostgreSQL (note, the option says "without ... mysql") |
232 | - sudo -u git -H bundle install --deployment --without development test mysql | 232 | + sudo -u git -H bundle install --deployment --without development test mysql unicorn aws |
233 | 233 | ||
234 | 234 | ||
235 | ## Initialize Database and Activate Advanced Features | 235 | ## Initialize Database and Activate Advanced Features |