antfarm 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/CHANGELOG +9 -0
  2. data/{README → README.rdoc} +39 -5
  3. data/bin/antfarm +37 -4
  4. data/db/migrate/010_create_dns_entries.rb +32 -0
  5. data/db/migrate/011_create_actions.rb +34 -0
  6. data/db/migrate/012_create_services.rb +36 -0
  7. data/db/migrate/013_create_operating_systems.rb +34 -0
  8. data/db/schema.rb +30 -22
  9. data/lib/antfarm.jar +0 -0
  10. data/lib/antfarm.rb +4 -0
  11. data/lib/antfarm/action.rb +29 -0
  12. data/lib/antfarm/dns_entry.rb +23 -0
  13. data/lib/antfarm/ip_interface.rb +38 -26
  14. data/lib/antfarm/ip_network.rb +3 -3
  15. data/lib/antfarm/layer2_interface.rb +16 -3
  16. data/lib/antfarm/layer3_network.rb +4 -4
  17. data/lib/antfarm/node.rb +6 -0
  18. data/lib/antfarm/operating_system.rb +25 -0
  19. data/lib/antfarm/service.rb +25 -0
  20. data/lib/console.rb +9 -0
  21. data/lib/cpscript.rb +70 -0
  22. data/lib/dbmanage.rb +34 -5
  23. data/lib/init/initializer.rb +25 -3
  24. data/lib/scparse.rb +14 -1
  25. data/lib/scripts/cisco/parse-pix-config.rb +5 -14
  26. data/lib/scripts/manipulate-dns.rb +87 -0
  27. data/lib/scripts/nmap/parse-xml.rb +147 -0
  28. data/lib/scripts/pcap/parse-pcap-file.rb +83 -21
  29. data/lib/scripts/viz/display-networks.rb +16 -25
  30. data/lib/scripts/viz/display-traffic.rb +111 -0
  31. data/lib/scripts/viz/dump-graphml.rb +1 -1
  32. data/lib/version.rb +5 -0
  33. data/rails/app/controllers/actions_controller.rb +5 -0
  34. data/rails/app/controllers/dns_entries_controller.rb +4 -0
  35. data/rails/app/controllers/layer3_interfaces_controller.rb +2 -2
  36. data/rails/app/controllers/nodes_controller.rb +4 -4
  37. data/rails/app/controllers/operating_systems_controller.rb +5 -0
  38. data/rails/app/controllers/services_controller.rb +5 -0
  39. data/rails/app/controllers/traffic_controller.rb +1 -0
  40. data/rails/app/views/layouts/application.html.erb +35 -0
  41. data/rails/public/stylesheets/site.css +11 -0
  42. metadata +26 -35
  43. data/lib/scripts/load-route.rb +0 -79
  44. data/lib/scripts/load-router-nomac.rb +0 -60
  45. data/lib/scripts/load-router.rb +0 -59
  46. data/lib/scripts/nmap/parse-xml-results.rb +0 -240
  47. data/lib/scripts/route.rb +0 -89
  48. data/lib/scripts/tethereal/load-arp.rb +0 -67
  49. data/lib/scripts/tethereal/load-ip.rb +0 -65
  50. data/rails/app/helpers/application_helper.rb +0 -3
  51. data/rails/app/helpers/ethernet_interfaces_helper.rb +0 -2
  52. data/rails/app/helpers/ip_interfaces_helper.rb +0 -2
  53. data/rails/app/helpers/ip_networks_helper.rb +0 -2
  54. data/rails/app/helpers/layer2_interfaces_helper.rb +0 -2
  55. data/rails/app/helpers/layer3_interfaces_helper.rb +0 -5
  56. data/rails/app/helpers/layer3_networks_helper.rb +0 -2
  57. data/rails/app/helpers/nodes_helper.rb +0 -2
  58. data/rails/app/helpers/private_networks_helper.rb +0 -2
  59. data/rails/app/helpers/traffic_helper.rb +0 -2
  60. data/rails/app/views/layouts/ethernet_interfaces.html.erb +0 -15
  61. data/rails/app/views/layouts/ip_interfaces.html.erb +0 -15
  62. data/rails/app/views/layouts/ip_networks.html.erb +0 -15
  63. data/rails/app/views/layouts/layer2_interfaces.html.erb +0 -15
  64. data/rails/app/views/layouts/layer3_interfaces.html.erb +0 -15
  65. data/rails/app/views/layouts/layer3_networks.html.erb +0 -15
  66. data/rails/app/views/layouts/nodes.html.erb +0 -15
  67. data/rails/app/views/layouts/private_networks.html.erb +0 -15
  68. data/rails/app/views/layouts/traffic.html.erb +0 -15
  69. data/rails/public/000-index.html +0 -277
@@ -1,67 +0,0 @@
1
- #!/usr/bin/ruby -w
2
-
3
- # Copyright (2008) Sandia Corporation.
4
- # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
5
- # the U.S. Government retains certain rights in this software.
6
- #
7
- # Original Author: Michael Berg, Sandia National Laboratories <mjberg@sandia.gov>
8
- # Modified By: Bryan T. Richardson, Sandia National Laboratories <btricha@sandia.gov>
9
- #
10
- # This library is free software; you can redistribute it and/or modify it
11
- # under the terms of the GNU Lesser General Public License as published by
12
- # the Free Software Foundation; either version 2.1 of the License, or (at
13
- # your option) any later version.
14
- #
15
- # This library is distributed in the hope that it will be useful, but WITHOUT
16
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
- # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18
- # details.
19
- #
20
- # You should have received a copy of the GNU Lesser General Public License
21
- # along with this library; if not, write to the Free Software Foundation, Inc.,
22
- # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
-
24
- require 'antfarm'
25
-
26
- require 'antfarm/layer2/ethernet'
27
- require 'antfarm/layer3/ip'
28
-
29
- require 'antfarm/simplify'
30
-
31
-
32
- # Pull in DB username/password and other configuration settings
33
- require 'antfarm-config.rb'
34
-
35
-
36
- db = DBI.connect($dbname, $dblogin, $dbpasswd)
37
- verbose = true
38
-
39
- ethernet_if_table = Antfarm::Ethernet_Interface.new(db, verbose)
40
- ip_if_table = Antfarm::IP_Interface.new(db, verbose)
41
-
42
- arp_req_regexp = Regexp.new('([\w:]+) -> .+ ARP Who has .*\sTell ([\d\.]+)')
43
-
44
- arp_cache = Array.new
45
- list = File.open(ARGV[0])
46
- list.each {|line|
47
- if m = arp_req_regexp.match(line)
48
- ethernet_addr = m[1]
49
- ip_addr = m[2]
50
- arp_cache.push("#{ip_addr} #{ethernet_addr}")
51
- end
52
- }
53
- list.close
54
-
55
- arp_cache.uniq!.sort!
56
- arp_cache.each {|entry|
57
- (ip_addr, ethernet_addr) = entry.split(' ')
58
- layer2_if_id = ethernet_if_table.insert(0.75, ethernet_addr)
59
- ip_if_table.insert(0.75, ip_addr, layer2_if_id)
60
- }
61
-
62
- ethernet_if_table.merge_by_mac_address
63
-
64
- db.disconnect
65
-
66
- # tethereal -n -r CITGO_051205_1414_IT 'arp' > CITGO_051205_1414_IT-arp.txt
67
- # tethereal -n -r CITGO_051205_1414_IT 'ip' > CITGO_051205_1414_IT-ip.txt
@@ -1,65 +0,0 @@
1
- #!/usr/bin/ruby -w
2
-
3
- # Copyright (2008) Sandia Corporation.
4
- # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
5
- # the U.S. Government retains certain rights in this software.
6
- #
7
- # Original Author: Michael Berg, Sandia National Laboratories <mjberg@sandia.gov>
8
- # Modified By: Bryan T. Richardson, Sandia National Laboratories <btricha@sandia.gov>
9
- #
10
- # This library is free software; you can redistribute it and/or modify it
11
- # under the terms of the GNU Lesser General Public License as published by
12
- # the Free Software Foundation; either version 2.1 of the License, or (at
13
- # your option) any later version.
14
- #
15
- # This library is distributed in the hope that it will be useful, but WITHOUT
16
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
- # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18
- # details.
19
- #
20
- # You should have received a copy of the GNU Lesser General Public License
21
- # along with this library; if not, write to the Free Software Foundation, Inc.,
22
- # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
-
24
- require 'antfarm'
25
-
26
- require 'antfarm/layer2/ethernet'
27
- require 'antfarm/layer3/ip'
28
-
29
- require 'antfarm/simplify'
30
-
31
-
32
- # Pull in DB username/password and other configuration settings
33
- require 'antfarm-config.rb'
34
-
35
-
36
- db = DBI.connect($dbname, $dblogin, $dbpasswd)
37
- verbose = true
38
-
39
- ethernet_if_table = Antfarm::Ethernet_Interface.new(db, verbose)
40
- ip_if_table = Antfarm::IP_Interface.new(db, verbose)
41
-
42
- ip_src_dst_regexp = Regexp.new('([\d\.]+) -> ([\d\.]+)')
43
-
44
- ip_addr_list = Array.new
45
- list = File.open(ARGV[0])
46
- list.each {|line|
47
- if m = ip_src_dst_regexp.match(line)
48
- ip_src_addr = m[1]
49
- ip_dst_addr = m[2]
50
- ip_addr_list.push(ip_src_addr)
51
- ip_addr_list.push(ip_dst_addr)
52
- end
53
- }
54
- list.close
55
-
56
- ip_addr_list.uniq!.sort!
57
- ip_addr_list.each {|ip_addr|
58
- #puts "'#{ip_addr}'"
59
- ip_if_table.insert(0.75, ip_addr)
60
- }
61
-
62
- db.disconnect
63
-
64
- # tethereal -n -r CITGO_051205_1414_IT 'arp' > CITGO_051205_1414_IT-arp.txt
65
- # tethereal -n -r CITGO_051205_1414_IT 'ip and ip.dst_host != 146.146.167.255 and not (ip.host >= 224.0.0.0 and ip.host <= 224.255.255.255)' > CITGO_051205_1414_IT-ip.txt
@@ -1,3 +0,0 @@
1
- # Methods added to this helper will be available to all templates in the application.
2
- module ApplicationHelper
3
- end
@@ -1,2 +0,0 @@
1
- module EthernetInterfacesHelper
2
- end
@@ -1,2 +0,0 @@
1
- module IpInterfacesHelper
2
- end
@@ -1,2 +0,0 @@
1
- module IpNetworksHelper
2
- end
@@ -1,2 +0,0 @@
1
- module Layer2InterfacesHelper
2
- end
@@ -1,5 +0,0 @@
1
- module Layer3InterfacesHelper
2
- def node_column(record)
3
- link_to(h(record.layer2_interface.node.name), :action => :show, :controller => :nodes, :id => record.layer2_interface.node.id)
4
- end
5
- end
@@ -1,2 +0,0 @@
1
- module Layer3NetworksHelper
2
- end
@@ -1,2 +0,0 @@
1
- module NodesHelper
2
- end
@@ -1,2 +0,0 @@
1
- module PrivateNetworksHelper
2
- end
@@ -1,2 +0,0 @@
1
- module TrafficHelper
2
- end
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Ethernet Interfaces</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: IP Interfaces</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: IP Networks</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Layer 2 Interfaces</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Layer 3 Interfaces</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Layer 3 Networks</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Nodes</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Private Networks</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
- <title>ANTFARM :: Traffic</title>
8
- <%= javascript_include_tag :defaults %>
9
- <%= active_scaffold_includes %>
10
- </head>
11
- <body>
12
- <p style="color: green"><%= flash[:notice] %></p>
13
- <%= yield %>
14
- </body>
15
- </html>
@@ -1,277 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html>
4
- <head>
5
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
- <title>Ruby on Rails: Welcome aboard</title>
7
- <style type="text/css" media="screen">
8
- body {
9
- margin: 0;
10
- margin-bottom: 25px;
11
- padding: 0;
12
- background-color: #f0f0f0;
13
- font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
14
- font-size: 13px;
15
- color: #333;
16
- }
17
-
18
- h1 {
19
- font-size: 28px;
20
- color: #000;
21
- }
22
-
23
- a {color: #03c}
24
- a:hover {
25
- background-color: #03c;
26
- color: white;
27
- text-decoration: none;
28
- }
29
-
30
-
31
- #page {
32
- background-color: #f0f0f0;
33
- width: 750px;
34
- margin: 0;
35
- margin-left: auto;
36
- margin-right: auto;
37
- }
38
-
39
- #content {
40
- float: left;
41
- background-color: white;
42
- border: 3px solid #aaa;
43
- border-top: none;
44
- padding: 25px;
45
- width: 500px;
46
- }
47
-
48
- #sidebar {
49
- float: right;
50
- width: 175px;
51
- }
52
-
53
- #footer {
54
- clear: both;
55
- }
56
-
57
-
58
- #header, #about, #getting-started {
59
- padding-left: 75px;
60
- padding-right: 30px;
61
- }
62
-
63
-
64
- #header {
65
- background-image: url("images/rails.png");
66
- background-repeat: no-repeat;
67
- background-position: top left;
68
- height: 64px;
69
- }
70
- #header h1, #header h2 {margin: 0}
71
- #header h2 {
72
- color: #888;
73
- font-weight: normal;
74
- font-size: 16px;
75
- }
76
-
77
-
78
- #about h3 {
79
- margin: 0;
80
- margin-bottom: 10px;
81
- font-size: 14px;
82
- }
83
-
84
- #about-content {
85
- background-color: #ffd;
86
- border: 1px solid #fc0;
87
- margin-left: -11px;
88
- }
89
- #about-content table {
90
- margin-top: 10px;
91
- margin-bottom: 10px;
92
- font-size: 11px;
93
- border-collapse: collapse;
94
- }
95
- #about-content td {
96
- padding: 10px;
97
- padding-top: 3px;
98
- padding-bottom: 3px;
99
- }
100
- #about-content td.name {color: #555}
101
- #about-content td.value {color: #000}
102
-
103
- #about-content.failure {
104
- background-color: #fcc;
105
- border: 1px solid #f00;
106
- }
107
- #about-content.failure p {
108
- margin: 0;
109
- padding: 10px;
110
- }
111
-
112
-
113
- #getting-started {
114
- border-top: 1px solid #ccc;
115
- margin-top: 25px;
116
- padding-top: 15px;
117
- }
118
- #getting-started h1 {
119
- margin: 0;
120
- font-size: 20px;
121
- }
122
- #getting-started h2 {
123
- margin: 0;
124
- font-size: 14px;
125
- font-weight: normal;
126
- color: #333;
127
- margin-bottom: 25px;
128
- }
129
- #getting-started ol {
130
- margin-left: 0;
131
- padding-left: 0;
132
- }
133
- #getting-started li {
134
- font-size: 18px;
135
- color: #888;
136
- margin-bottom: 25px;
137
- }
138
- #getting-started li h2 {
139
- margin: 0;
140
- font-weight: normal;
141
- font-size: 18px;
142
- color: #333;
143
- }
144
- #getting-started li p {
145
- color: #555;
146
- font-size: 13px;
147
- }
148
-
149
-
150
- #search {
151
- margin: 0;
152
- padding-top: 10px;
153
- padding-bottom: 10px;
154
- font-size: 11px;
155
- }
156
- #search input {
157
- font-size: 11px;
158
- margin: 2px;
159
- }
160
- #search-text {width: 170px}
161
-
162
-
163
- #sidebar ul {
164
- margin-left: 0;
165
- padding-left: 0;
166
- }
167
- #sidebar ul h3 {
168
- margin-top: 25px;
169
- font-size: 16px;
170
- padding-bottom: 10px;
171
- border-bottom: 1px solid #ccc;
172
- }
173
- #sidebar li {
174
- list-style-type: none;
175
- }
176
- #sidebar ul.links li {
177
- margin-bottom: 5px;
178
- }
179
-
180
- </style>
181
- <script type="text/javascript" src="javascripts/prototype.js"></script>
182
- <script type="text/javascript" src="javascripts/effects.js"></script>
183
- <script type="text/javascript">
184
- function about() {
185
- if (Element.empty('about-content')) {
186
- new Ajax.Updater('about-content', 'rails/info/properties', {
187
- method: 'get',
188
- onFailure: function() {Element.classNames('about-content').add('failure')},
189
- onComplete: function() {new Effect.BlindDown('about-content', {duration: 0.25})}
190
- });
191
- } else {
192
- new Effect[Element.visible('about-content') ?
193
- 'BlindUp' : 'BlindDown']('about-content', {duration: 0.25});
194
- }
195
- }
196
-
197
- window.onload = function() {
198
- $('search-text').value = '';
199
- $('search').onsubmit = function() {
200
- $('search-text').value = 'site:rubyonrails.org ' + $F('search-text');
201
- }
202
- }
203
- </script>
204
- </head>
205
- <body>
206
- <div id="page">
207
- <div id="sidebar">
208
- <ul id="sidebar-items">
209
- <li>
210
- <form id="search" action="http://www.google.com/search" method="get">
211
- <input type="hidden" name="hl" value="en" />
212
- <input type="text" id="search-text" name="q" value="site:rubyonrails.org " />
213
- <input type="submit" value="Search" /> the Rails site
214
- </form>
215
- </li>
216
-
217
- <li>
218
- <h3>Join the community</h3>
219
- <ul class="links">
220
- <li><a href="http://www.rubyonrails.org/">Ruby on Rails</a></li>
221
- <li><a href="http://weblog.rubyonrails.org/">Official weblog</a></li>
222
- <li><a href="http://lists.rubyonrails.org/">Mailing lists</a></li>
223
- <li><a href="http://wiki.rubyonrails.org/rails/pages/IRC">IRC channel</a></li>
224
- <li><a href="http://wiki.rubyonrails.org/">Wiki</a></li>
225
- <li><a href="http://dev.rubyonrails.org/">Bug tracker</a></li>
226
- </ul>
227
- </li>
228
-
229
- <li>
230
- <h3>Browse the documentation</h3>
231
- <ul class="links">
232
- <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
233
- <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
234
- <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
235
- </ul>
236
- </li>
237
- </ul>
238
- </div>
239
-
240
- <div id="content">
241
- <div id="header">
242
- <h1>Welcome aboard</h1>
243
- <h2>You&rsquo;re riding Ruby on Rails!</h2>
244
- </div>
245
-
246
- <div id="about">
247
- <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
248
- <div id="about-content" style="display: none"></div>
249
- </div>
250
-
251
- <div id="getting-started">
252
- <h1>Getting started</h1>
253
- <h2>Here&rsquo;s how to get rolling:</h2>
254
-
255
- <ol>
256
- <li>
257
- <h2>Create your databases and edit <tt>config/database.yml</tt></h2>
258
- <p>Rails needs to know your login and password.</p>
259
- </li>
260
-
261
- <li>
262
- <h2>Use <tt>script/generate</tt> to create your models and controllers</h2>
263
- <p>To see all available options, run it without parameters.</p>
264
- </li>
265
-
266
- <li>
267
- <h2>Set up a default route and remove or rename this file</h2>
268
- <p>Routes are set up in config/routes.rb.</p>
269
- </li>
270
- </ol>
271
- </div>
272
- </div>
273
-
274
- <div id="footer">&nbsp;</div>
275
- </div>
276
- </body>
277
- </html>