webroar 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +10 -0
- data/README +116 -86
- data/doc/user-guide.html +2 -2
- data/doc/user-guide.txt +65 -65
- data/lib/command_runner.rb +5 -3
- data/src/head/wr_application.c +249 -294
- data/src/head/wr_application.h +28 -21
- data/src/head/wr_config.h +7 -1
- data/src/head/wr_connection.c +1 -1
- data/src/head/wr_controller.c +2 -4
- data/src/head/wr_request.c +1 -1
- data/src/head/wr_request.h +3 -3
- data/src/head/wr_resolver.c +2 -2
- data/src/head/wr_worker.c +16 -17
- data/src/ruby_lib/ruby_interface/version.rb +1 -1
- data/tasks/gem.rake +1 -1
- metadata +3 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
V0.3.1 - 22-Mar-2010
|
2
|
+
--------------------
|
3
|
+
|
4
|
+
* Refactored and improved the code for handling restarts of an application.
|
5
|
+
* Corrected output emitted for version command.
|
6
|
+
* Fixed the incorrect server version being sent in the HTTP Response Headers.
|
7
|
+
* Updated description of the gem.
|
8
|
+
* Minor updates in the README and User Guide.
|
9
|
+
|
10
|
+
|
1
11
|
v0.3.0 - 19-Mar-2010
|
2
12
|
--------------------
|
3
13
|
|
data/README
CHANGED
@@ -1,86 +1,116 @@
|
|
1
|
-
Introduction
|
2
|
-
-------------
|
3
|
-
|
4
|
-
WebROaR is an application server that makes deployments of ruby web
|
5
|
-
applications extremely simple. It provides an integrated solution to view
|
6
|
-
the run time performance numbers and email notifications in case any
|
7
|
-
exceptions occur in any of the deployed applications.
|
8
|
-
|
9
|
-
It is 5 to 55% faster than all other comparable deployment stacks for
|
10
|
-
Ruby on Rails applications.
|
11
|
-
|
12
|
-
Check out http://webroar.in and doc/user-guide.html for more details.
|
13
|
-
|
14
|
-
Key Features
|
15
|
-
~~~~~~~~~~~~
|
16
|
-
|
17
|
-
* Maximum Performance.
|
18
|
-
* Simplified Deployment.
|
19
|
-
* Runs Ruby on Rails(TM) as well as other Rack compliant applications.
|
20
|
-
* Run Multiple Applications Simultaneously.
|
21
|
-
* Implements HTTP/1.1 grammar as per RFC 2616 including support for persistent,
|
22
|
-
and chunked requests.
|
23
|
-
* Intelligent load balancing and dynamic reaping of stuck ruby processing
|
24
|
-
instances.
|
25
|
-
* Provides run time performance data for the deployed applications.
|
26
|
-
* Generates notifications in case any exceptions occur in any of the deployed
|
27
|
-
applications.
|
28
|
-
* SSL support.
|
29
|
-
|
30
|
-
Supported Operating Systems
|
31
|
-
---------------------------
|
32
|
-
|
33
|
-
WebROaR has been tested on Ubuntu 8.10/9.04/9.10, Debian 5 (64 Bit), Mac OS X
|
34
|
-
(v10.5 & v10.6), Arch Linux 2009.08 and Cent OS 5.2. Basically, it should be
|
35
|
-
*IX OS.
|
36
|
-
|
37
|
-
Currently it does not support Microsoft(R) Windows.
|
38
|
-
|
39
|
-
Install
|
40
|
-
--------
|
41
|
-
|
42
|
-
Prerequisites
|
43
|
-
~~~~~~~~~~~~~
|
44
|
-
|
45
|
-
- ruby 1.8.x or 1.9.x
|
46
|
-
- ruby 1.8-dev or 1.9-dev
|
47
|
-
- openssl ruby extension (On Ubuntu/Debian it is available as libopenssl-ruby1.X)
|
48
|
-
- zlib ruby extension
|
49
|
-
- rubygems
|
50
|
-
- C build tools (gcc etc) (e.g. build-essential on Ubuntu, Xcode on MacOS)
|
51
|
-
- libsqlite3
|
52
|
-
- libsqlite3-dev
|
53
|
-
- gnutls 2.4.1 or later (Only necessary in case SSL support is required)
|
54
|
-
- gnutls-dev 2.4.1 or later (Only necessary in case SSL support is required)
|
55
|
-
|
56
|
-
[NOTE]
|
57
|
-
.Ruby Shared Library
|
58
|
-
===============================
|
59
|
-
The server needs the shared library - libruby.so to run the ruby web
|
60
|
-
applications.
|
61
|
-
|
62
|
-
If you are building ruby from source, please ensure you pass the flag
|
63
|
-
*--enable-shared* while executing its ./configure script.
|
64
|
-
|
65
|
-
===============================
|
66
|
-
|
67
|
-
Procedure
|
68
|
-
~~~~~~~~~
|
69
|
-
|
70
|
-
WebROaR can installed using the following commands:
|
71
|
-
|
72
|
-
----
|
73
|
-
gem
|
74
|
-
sudo
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
1
|
+
Introduction
|
2
|
+
-------------
|
3
|
+
|
4
|
+
WebROaR is an application server that makes deployments of ruby web
|
5
|
+
applications extremely simple. It provides an integrated solution to view
|
6
|
+
the run time performance numbers and email notifications in case any
|
7
|
+
exceptions occur in any of the deployed applications.
|
8
|
+
|
9
|
+
It is 5 to 55% faster than all other comparable deployment stacks for
|
10
|
+
Ruby on Rails applications.
|
11
|
+
|
12
|
+
Check out http://webroar.in and doc/user-guide.html for more details.
|
13
|
+
|
14
|
+
Key Features
|
15
|
+
~~~~~~~~~~~~
|
16
|
+
|
17
|
+
* Maximum Performance.
|
18
|
+
* Simplified Deployment.
|
19
|
+
* Runs Ruby on Rails(TM) as well as other Rack compliant applications.
|
20
|
+
* Run Multiple Applications Simultaneously.
|
21
|
+
* Implements HTTP/1.1 grammar as per RFC 2616 including support for persistent,
|
22
|
+
and chunked requests.
|
23
|
+
* Intelligent load balancing and dynamic reaping of stuck ruby processing
|
24
|
+
instances.
|
25
|
+
* Provides run time performance data for the deployed applications.
|
26
|
+
* Generates notifications in case any exceptions occur in any of the deployed
|
27
|
+
applications.
|
28
|
+
* SSL support.
|
29
|
+
|
30
|
+
Supported Operating Systems
|
31
|
+
---------------------------
|
32
|
+
|
33
|
+
WebROaR has been tested on Ubuntu 8.10/9.04/9.10, Debian 5 (64 Bit), Mac OS X
|
34
|
+
(v10.5 & v10.6), Arch Linux 2009.08 and Cent OS 5.2. Basically, it should be
|
35
|
+
able to run on any *IX OS.
|
36
|
+
|
37
|
+
Currently it does not support Microsoft(R) Windows.
|
38
|
+
|
39
|
+
Install
|
40
|
+
--------
|
41
|
+
|
42
|
+
Prerequisites
|
43
|
+
~~~~~~~~~~~~~
|
44
|
+
|
45
|
+
- ruby 1.8.x or 1.9.x
|
46
|
+
- ruby 1.8-dev or 1.9-dev
|
47
|
+
- openssl ruby extension (On Ubuntu/Debian it is available as libopenssl-ruby1.X)
|
48
|
+
- zlib ruby extension
|
49
|
+
- rubygems
|
50
|
+
- C build tools (gcc etc) (e.g. build-essential on Ubuntu, Xcode on MacOS)
|
51
|
+
- libsqlite3
|
52
|
+
- libsqlite3-dev
|
53
|
+
- gnutls 2.4.1 or later (Only necessary in case SSL support is required)
|
54
|
+
- gnutls-dev 2.4.1 or later (Only necessary in case SSL support is required)
|
55
|
+
|
56
|
+
[NOTE]
|
57
|
+
.Ruby Shared Library
|
58
|
+
===============================
|
59
|
+
The server needs the shared library - libruby.so to run the ruby web
|
60
|
+
applications.
|
61
|
+
|
62
|
+
If you are building ruby from source, please ensure you pass the flag
|
63
|
+
*--enable-shared* while executing its ./configure script.
|
64
|
+
|
65
|
+
===============================
|
66
|
+
|
67
|
+
Procedure
|
68
|
+
~~~~~~~~~
|
69
|
+
|
70
|
+
WebROaR can installed using the following commands:
|
71
|
+
|
72
|
+
----
|
73
|
+
sudo gem install webroar
|
74
|
+
sudo webroar install
|
75
|
+
----
|
76
|
+
|
77
|
+
[NOTE]
|
78
|
+
.SSL Support
|
79
|
+
===============================
|
80
|
+
In case you would like to setup SSL support for the server, use the following
|
81
|
+
command line switch with *sudo webroar install* command mentioned above.
|
82
|
+
----
|
83
|
+
sudo webroar install --ssl-support
|
84
|
+
----
|
85
|
+
|
86
|
+
Configure further SSL options in the server's admin panel
|
87
|
+
*http://<yourservername>:<port>/admin-panel/configuration*
|
88
|
+
|
89
|
+
After restarting the server, admin panel would now also be accessible over SSL.
|
90
|
+
*https://<yourservername>:<port>/admin-panel*
|
91
|
+
===============================
|
92
|
+
|
93
|
+
Or if you like living in the fast lane, you can install the edge version giving
|
94
|
+
the following commands:
|
95
|
+
|
96
|
+
----
|
97
|
+
git clone git://github.com/webroar/webroar.git
|
98
|
+
cd webroar
|
99
|
+
sudo rake install
|
100
|
+
----
|
101
|
+
|
102
|
+
[NOTE]
|
103
|
+
.SSL Support
|
104
|
+
===============================
|
105
|
+
To build with SSL support, use the following additional switch with the
|
106
|
+
*sudo rake install* command:
|
107
|
+
----
|
108
|
+
sudo rake install ssl=yes
|
109
|
+
----
|
110
|
+
|
111
|
+
Configure further SSL options in the server's admin panel
|
112
|
+
*http://<yourservername>:<port>/admin-panel/configuration*
|
113
|
+
|
114
|
+
After restarting the server, admin panel would now also be accessible over SSL.
|
115
|
+
*https://<yourservername>:<port>/admin-panel*
|
116
|
+
===============================
|
data/doc/user-guide.html
CHANGED
@@ -768,7 +768,7 @@ rubygems version or any other reason), you can install the following dependent
|
|
768
768
|
</p>
|
769
769
|
<div class="literalblock">
|
770
770
|
<div class="content">
|
771
|
-
<pre><tt>calendar_date_select, rack, rake, rspec, sqlite3-ruby, starling
|
771
|
+
<pre><tt>calendar_date_select, rack, rake, rspec, sqlite3-ruby, starling, will_paginate</tt></pre>
|
772
772
|
</div></div>
|
773
773
|
</li>
|
774
774
|
<li>
|
@@ -1371,7 +1371,7 @@ Build Tests
|
|
1371
1371
|
</div>
|
1372
1372
|
<div id="footer">
|
1373
1373
|
<div id="footer-text">
|
1374
|
-
Last updated 2010-03-
|
1374
|
+
Last updated 2010-03-20 01:17:11 IST
|
1375
1375
|
</div>
|
1376
1376
|
</div>
|
1377
1377
|
</body>
|
data/doc/user-guide.txt
CHANGED
@@ -131,85 +131,85 @@ remote machine
|
|
131
131
|
+
|
132
132
|
----
|
133
133
|
|
134
|
-
set :application, "WebROaR"
|
135
|
-
set :repository, "git://github.com/webroar/webroar.git"
|
136
|
-
|
137
|
-
set :scm, :git
|
134
|
+
set :application, "WebROaR"
|
135
|
+
set :repository, "git://github.com/webroar/webroar.git"
|
136
|
+
|
137
|
+
set :scm, :git
|
138
138
|
|
139
139
|
#############################################
|
140
140
|
# WebROaR installation parameters #
|
141
141
|
#############################################
|
142
142
|
# Instead of asking for admin user name, password and port you can directly set
|
143
|
-
# it from here.
|
143
|
+
# it from here.
|
144
144
|
|
145
145
|
set :user, 'username'
|
146
|
-
set :port, 22
|
146
|
+
set :port, 22
|
147
147
|
set(:password) { Capistrano::CLI.password_prompt("Enter ssh password for \
|
148
|
-
#{user}: ") }
|
149
|
-
set :use_sudo, false
|
150
|
-
set :deploy_to, "path-to-deploy-webroar"
|
148
|
+
#{user}: ") }
|
149
|
+
set :use_sudo, false
|
150
|
+
set :deploy_to, "path-to-deploy-webroar"
|
151
151
|
set(:webroar_admin_username) { Capistrano::CLI.ui.ask("Please enter a username \
|
152
|
-
for the administrator account of server's admin panel:") }
|
152
|
+
for the administrator account of server's admin panel:") }
|
153
153
|
set(:webroar_admin_password) { Capistrano::CLI.password_prompt("Please enter a \
|
154
154
|
password(minimum 6 characters) for the administrator account of server's admin \
|
155
|
-
panel:") }
|
155
|
+
panel:") }
|
156
156
|
set(:webroar_port) { Capistrano::CLI.ui.ask("Enter server port \
|
157
|
-
(default is 3000):") }
|
158
|
-
set :webroar_import_configuration, true # set false to beging with fresh install
|
159
|
-
set :webroar_ssl_support, false # set true to Build webroar with SSL support
|
160
|
-
|
161
|
-
role :web, "server" # Your HTTP server, Apache/etc
|
162
|
-
role :app, "server" # This may be the same as your `Web` server
|
157
|
+
(default is 3000):") }
|
158
|
+
set :webroar_import_configuration, true # set false to beging with fresh install
|
159
|
+
set :webroar_ssl_support, false # set true to Build webroar with SSL support
|
160
|
+
|
161
|
+
role :web, "server" # Your HTTP server, Apache/etc
|
162
|
+
role :app, "server" # This may be the same as your `Web` server
|
163
163
|
role :db, "server", :primary => true # This is where Rails migrations will run
|
164
|
-
|
164
|
+
|
165
165
|
############################################
|
166
|
-
|
167
|
-
namespace :deploy do
|
168
|
-
# hook into capistrano's deploy task
|
169
|
-
after 'deploy:update_code', 'deploy:webroar:install'
|
170
|
-
|
171
|
-
task :finalize_update, :except => { :no_release => true } do
|
172
|
-
run "chmod -R g+w #{release_path}" if fetch(:group_writable, true)
|
173
|
-
end
|
174
|
-
|
175
|
-
namespace :webroar do
|
176
|
-
|
177
|
-
desc "Uninstall the webroar gem"
|
178
|
-
task :uninstall do
|
179
|
-
run "#{sudo} webroar uninstall; #{sudo} gem uninstall -ax webroar"
|
180
|
-
end
|
181
|
-
|
182
|
-
desc "Install the server"
|
183
|
-
task :install, :roles => :app do
|
166
|
+
|
167
|
+
namespace :deploy do
|
168
|
+
# hook into capistrano's deploy task
|
169
|
+
after 'deploy:update_code', 'deploy:webroar:install'
|
170
|
+
|
171
|
+
task :finalize_update, :except => { :no_release => true } do
|
172
|
+
run "chmod -R g+w #{release_path}" if fetch(:group_writable, true)
|
173
|
+
end
|
174
|
+
|
175
|
+
namespace :webroar do
|
176
|
+
|
177
|
+
desc "Uninstall the webroar gem"
|
178
|
+
task :uninstall do
|
179
|
+
run "#{sudo} webroar uninstall; #{sudo} gem uninstall -ax webroar"
|
180
|
+
end
|
181
|
+
|
182
|
+
desc "Install the server"
|
183
|
+
task :install, :roles => :app do
|
184
184
|
run "cd #{release_path}; #{sudo} rake install #{'ssl=on' if \
|
185
|
-
webroar_ssl_support}", :pty=>true do |ch, stream, out|
|
186
|
-
next if out.chomp == ''
|
187
|
-
logger.important out, ch[:server]
|
188
|
-
case out
|
189
|
-
when / least/
|
190
|
-
raise Capistrano::Error, out
|
191
|
-
when />/
|
192
|
-
ch.send_data("#{webroar_import_configuration ? '1' : '2'}\n")
|
193
|
-
when / username/
|
194
|
-
ch.send_data("#{webroar_admin_username}\n")
|
195
|
-
when / password/
|
196
|
-
ch.send_data("#{webroar_admin_password}\n")
|
197
|
-
when / port/
|
198
|
-
ch.send_data("#{webroar_port}\n")
|
199
|
-
end
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
|
204
|
-
desc "Start, Stop and Restat the server"
|
205
|
-
%w(start stop restart).each do |name|
|
206
|
-
task name.to_sym,:roles => :app do
|
207
|
-
run "#{sudo} webroar #{name}" #Manual Configuration required, this is best effort.
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
end
|
212
|
-
|
185
|
+
webroar_ssl_support}", :pty=>true do |ch, stream, out|
|
186
|
+
next if out.chomp == ''
|
187
|
+
logger.important out, ch[:server]
|
188
|
+
case out
|
189
|
+
when / least/
|
190
|
+
raise Capistrano::Error, out
|
191
|
+
when />/
|
192
|
+
ch.send_data("#{webroar_import_configuration ? '1' : '2'}\n")
|
193
|
+
when / username/
|
194
|
+
ch.send_data("#{webroar_admin_username}\n")
|
195
|
+
when / password/
|
196
|
+
ch.send_data("#{webroar_admin_password}\n")
|
197
|
+
when / port/
|
198
|
+
ch.send_data("#{webroar_port}\n")
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
|
204
|
+
desc "Start, Stop and Restat the server"
|
205
|
+
%w(start stop restart).each do |name|
|
206
|
+
task name.to_sym,:roles => :app do
|
207
|
+
run "#{sudo} webroar #{name}" #Manual Configuration required, this is best effort.
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
end
|
212
|
+
|
213
213
|
end
|
214
214
|
|
215
215
|
----
|
@@ -234,7 +234,7 @@ better.)
|
|
234
234
|
rubygems version or any other reason), you can install the following dependent
|
235
235
|
gems individually first:
|
236
236
|
|
237
|
-
calendar_date_select, rack, rake, rspec, sqlite3-ruby, starling
|
237
|
+
calendar_date_select, rack, rake, rspec, sqlite3-ruby, starling, will_paginate
|
238
238
|
|
239
239
|
- After successful installation of the webroar gem, any errors that occur
|
240
240
|
during the setup are saved to the install.log created in the installed gem's
|
data/lib/command_runner.rb
CHANGED
@@ -206,7 +206,7 @@ class CommandRunner
|
|
206
206
|
|
207
207
|
def run
|
208
208
|
|
209
|
-
parse_args
|
209
|
+
return unless parse_args
|
210
210
|
|
211
211
|
if ARGV.length == 0
|
212
212
|
puts HELP
|
@@ -258,7 +258,7 @@ class CommandRunner
|
|
258
258
|
|
259
259
|
opts.on( '-v', '--version', 'Version information') do
|
260
260
|
Installer.new.version
|
261
|
-
return
|
261
|
+
return false
|
262
262
|
end
|
263
263
|
|
264
264
|
opts.on( '-u', '--username USERNAME', 'Username for the administrator account of server\'s admin panel') do |value|
|
@@ -319,9 +319,11 @@ class CommandRunner
|
|
319
319
|
optparse.parse!
|
320
320
|
rescue OptionParser::ParseError => err
|
321
321
|
puts "#{err}. See 'webroar --help'."
|
322
|
-
return
|
322
|
+
return false
|
323
323
|
end
|
324
324
|
|
325
|
+
return true
|
326
|
+
|
325
327
|
end
|
326
328
|
|
327
329
|
end # class Command
|