webroar 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|