| # 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.md) deployment) |
| - A variety of Ruby gems |
| - [Wunderbar](https://github.com/rubys/wunderbar) - HTML Generator and CGI application support |
| - [Ruby-ldap](https://github.com/bearded/ruby-ldap) - LDAP for Ruby |
| - [nokogiri](https://github.com/sparklemotion/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`. |
| Settings can be overridden in the `.whimsy` config file. |
| Note that HTTP authentication also uses LDAP. To avoid problems with TLS |
| certificates, the servers should be the same as for app access. |
| |
| * **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](DEVELOPMENT.md) and [MACOS.md](MACOS.md). |
| |
| * **whimsy-asf Gem** is a set of the core lib/whimsy/asf model as a normal Gem: [asf.gemspec](asf.gemspec) |
| |
| * **Tool-specific configurations** can be found in config/ directory |
| |
| ## Production Server Configuration |
| |
| See [DEPLOYMENT.md](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. |
| |
| * **Log files** are LDAP secured to Members in: https://whimsy.apache.org/members/log/ |