Configuring Whimsy

As a collection of tools that directly access organizational data, there are a number of places that you will need to configure to have most of the code work as expected. Whimsy Ruby code can run either in a local environment or with a webserver.

Dependencies

  • Compilers & Servers
    • Ruby 2.x.x (Production version: 2.3.)
    • Apache HTTP Web Server 2.x
    • Rack
    • Phusion Passenger
    • Puppet (for our production deployment)
  • A variety of Ruby gems
    • Wunderbar - HTML Generator and CGI application support
    • Ruby-ldap - LDAP for Ruby
    • nokogiri - HTML parser for Ruby
    • Full gem dependencies in asf.gemspec

Local Clients / Development

Whimsy can be run on a client or in a local container for development use.

  • App-wide default settings are stored in a local YAML formatted ~/.whimsy file, notably including an svn pointer to where various local repo checkouts live as well as sendmail config (if used). See also lib/whimsy/asf/config.rb

  • LDAP configuration will be stored in /etc/(ldap|openldap)/ldap.conf and will point to the production ASF LDAP servers along with associated certificate. See also lib/whimsy/asf/ldap.rb and ASF::LDAP.configure.

  • Web server configuration - much of Whimsy runs within an Apache httpd instance, so see the usual /etc/apache2/httpd.conf along with associated Rack and/or Phusion configurations.

  • Log files and debugging are typically found in /var/log/apache2/whimsy_error.log and /var/log/apache2/error_log

  • Development setup instructions are in DEVELOPMENT.md and MACOSX.md.

  • whimsy-asf Gem is a set of the core lib/whimsy/asf model as a normal Gem: asf.gemspec

  • Tool-specific configurations can be found in config/ directory

Production Server Configuration

See DEPLOYMENT.md for full details. We use Puppet to provision the production VM with the basic dependencies as well as the Whimsy code. A number of configuration steps ensure the production instance has access to LDAP, SVN repositories (some read/write), local mail sending and receiving/subscriptions.