chef-gitorious
chef-gitorious copied to clipboard
Gitorious cookbook for Chef
Description
Installs a full Gitorious server software stack. Details to be filled in.
Requirements
Platform
Currently known to work with Ubuntu and Debian systems.
Cookbooks
In brief, these cookbooks are used to build a full running Gitorious stack:
- rvm https://github.com/fnichol/chef-rvm
- rvm_passenger https://github.com/fnichol/chef-rvm_passenger
- webapp https://github.com/fnichol/chef-webapp
- nginx https://github.com/fnichol/chef-cookbooks
- mysql https://github.com/fnichol/chef-cookbooks
- imagemagick https://github.com/opscode/cookbooks
- stompserver https://github.com/fnichol/chef-cookbooks
Attributes
git/url
The Git URL to the Gitorious codebase. This can be swapped out for an alternate or forked version. The default points to the Gitorious mainline, git://gitorious.org/gitorious/mainline.git.
git/reference
A Git SHA hash, tag, or branch reference on the node[:gitorious][:git][:url]
Git repository. Use this to lock down a specific revision (for reliable
rebuilds over time), or to use an alternate branch. The default is master
.
Note: The Gitorious codebase is synced from the Git URL, meaning that running Chef again after some time could update the Rails application. If this is not your desired behavior be sure to set this attribute to a Git tag or SHA hash to lock in your version.
web_server
The HTTP web server front end to handle Gitorious traffic. Valid values are
nginx
and apache2
. The default is nginx
.
Note: Currently on nginx has full support. Apache2 work is ongoing.
ssl/key
The SSL private key to be used by the HTTP web server. This file is expected
to exist in the operating system's default location (i.e. /etc/ssl/private
under Debian flavors). The default is ssl-cert-snakeoil.key
and should be
replaced when running in production (nobody wants to accept a self-signed
certificate in the wild).
ssl/cert
The SSL public key to be used by the HTTP web server. This file is expected
to exist in the operating system's default location (i.e. /etc/ssl/certs
under Debian flavors). The default is ssl-cert-snakeoil.pem
and should be
replaced when running in production.
app_user
The unix account that will run the Gitorious web application. This will also
be the SSH account in the Git URL. The default is git
.
app_base_dir
The base path containing the Gitorious web application. The default is
/srv/gitorious
.
Note: the rails application actually is installed in
#{node[:gitorious][:app_base_dir]}/current
, corresponding to the capistrano
conventions.
git_base_dir
The base path containing the Git repositories managed by Gitorious. The
default is /var/git
.
rails_env
The Rails environment mode under which Gitorious will operate. There shouldn't
be a need to override this value except for development or other
experimentation. The default is production
.
Note: this value gets used when running the Rails application and when calling all rake tasks.
rvm_gemset
All gems for the Gitorious Rails application will be installed in this RVM
gemset. The default is gitorious
.
Note: using bundler with --deployment
proved less than successful so
we can use RVM to isolate gems instead in the meantime.
db/host
The host that runs the MySQL server. The default is localhost
which is currently
the only well-supported value. Work needs to be done to optionally handle a
database operating on another server instance.
db/database
The MySQL database name, which will be created. The default is gitorious
.
db/user
The MySQL database user for Gitorious, which will be created. The default is
gitor
which seems odd except MySQL usernames cannot exceed 8 characters.
db/password
The MySQL user's password. The default is gitorious
.
Note: This attribute should be set to ensure good application security.
host
The virtual host name resolving to the Gitorious Rails application. This value
gets used in cookie names, web server configuration and other places. The
default is gitorious.local
and should be customized for Gitorious to operate
properly.
Note: as described in the Gitorious wiki,
a value of git
should be avoided as it is reserved. Too bad, since that's
usually a great first choice.
support_email
Email address to the support for the Gitorious server. The default is
[email protected]
and should be customized.
notification_emails
List of email addresses to send server errors to seperated by whitespace. The default is an empty string.
public_mode
Determines if Gitorious operates in a public mode (true
) or in private
mode (false
). The default is true
(public mode).
only_admins_create
Determines whether or not only site admins can create new projects. The
default is false
.
admin/email
The email address given to the admin
which is used to initially log in.
A default admin user will be created to manage the Gitorious instance. The
default is [email protected]
and this should be customized for any
emails to be properly delivered.
admin/password
An initial password for the admin
user which is used to initially log in.
The default is admin
.
Note: This attribute should be set or immediately updated to ensure good application security.
locale
Sets the locale for Gitorious. Known values are en
, es
, fr
, and
pt-BR
. The default is en
.
hide_http_clone_urls
Determines whether or not HTTP clone URLs are hidden from the interface.
The default is false
.
optional_tls/url
The Git URL to the action_mailer_optional_tls rails plugin which is used to support SMTP/TLS mail deliveries. The default is git://github.com/collectiveidea/action_mailer_optional_tls.git.
mailer/delivery_methods
Configures the delivery method for the Rails ActionMailer. For more details
regarding ActionMailer tuning, see the Rails Guides.
The default is smtp
.
smtp/tls
Determines whether or not to require TLS when negotiating with the SMTP
server. The default is false
.
smtp/address
The SMTP server that will deliver mail from Gitorious. The default is
smtp.example.com
which must be customized to ensure proper operation
of Gitorious.
smtp/port
The port that the SMTP server listens to. The default will attempt to connect on port 25.
Note: If SSL/TLS is used, then you will want to customize the port. For example, Google's Gmail SMTP servers listen on port 587.
smtp/domain
Allows the action_mailer_optional_tls rails plugin to set a domain which is primarily used when talking to Google's Gmail servers. Please see the plugin's project page for more details. The default is an empty string.
smtp/authentication
The authentication method to use when connecting to the SMTP server. The
default is plain
. To disable this attribute, set it to an empty string.
smtp/username
The username to use when authenticating to the SMTP server. This will only be used if set. The default is unset (an empty string).
smtp/password
The password to use when authenticating to the SMTP server. This will only be used if set. The default is unset (an empty string).
Usage
References
- Gitorious code mainline
- Gitorious Ubuntu installation wiki
- Christian Johansen's Ubuntu installation
- action_mailer_optional_tls plugin
- Rubygems 1.6 issue
- Rubygems 1.6 thread deprecation
- RVM project
License and Author
Author:: Fletcher Nichol ([email protected])
Contributors:: Rodrigo Rosenfeld Rosas ([email protected])
Copyright:: 2010, 2011, Fletcher Nichol
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.