]> git.openstreetmap.org Git - chef.git/blob - cookbooks/git/recipes/web.rb
Merge remote-tracking branch 'github/pull/528'
[chef.git] / cookbooks / git / recipes / web.rb
1 #
2 # Cookbook:: git
3 # Recipe:: web
4 #
5 # Copyright:: 2013, OpenStreetMap Foundation
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     https://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19
20 include_recipe "apache"
21
22 package "gitweb"
23
24 apache_module "cgid"
25 apache_module "rewrite"
26
27 git_site = node[:git][:host]
28
29 template "/etc/gitweb.conf" do
30   source "gitweb.conf.erb"
31   owner "root"
32   group "root"
33   mode "644"
34 end
35
36 directory "/srv/#{git_site}" do
37   owner "root"
38   group "root"
39   mode "755"
40 end
41
42 template "/srv/#{git_site}/robots.txt" do
43   source "robots.txt.erb"
44   owner "root"
45   group "root"
46   mode "644"
47 end
48
49 template "/srv/#{git_site}/indextext.html" do
50   source "indextext.html.erb"
51   owner "root"
52   group "root"
53   mode "644"
54 end
55
56 ssl_certificate git_site do
57   domains [git_site] + Array(node[:git][:aliases])
58   notifies :reload, "service[apache2]"
59 end
60
61 private_allowed = search(:node, node[:git][:private_nodes]).collect do |n|
62   n.ipaddresses(:role => :external)
63 end.flatten
64
65 apache_site git_site do
66   template "apache.erb"
67   directory "/srv/#{git_site}"
68   variables :aliases => Array(node[:git][:aliases]),
69             :private_allowed => private_allowed
70 end