The HSBNE Wiki is a Gollum instance running on a Rack, Passenger, Nginx, Ubuntu 12.04 Linux stack deployed to a DigitalOcean Droplet via Ansible. Phew, what a mouthful!

wiki.hsbne.org is a vhost for do1.hsbne.org

The Gollum rack application pulls in the OmniGollum plugin, which is a wrapper for OmniAuth. This allows us to enforce logins using openid systems. Currently, it supports Google Oauth2. Alternate providers are available.

All editing/creation methods are behind the login system.

The /members/ path is also behind the login system, this enforces an area only available to logged in accounts. There's no way to control those accounts on the application side short of managing a whitelist. You can, however, use google apps auth which we could restrict to @hsbne.org accounts.

We modify the template path (since mustache annoyingly doesn't support multiple paths) to not utilise the gollum gem templates. This gives us control over look and feel (see the logged in status widget top right) but means an increased maintenance load as gollum updates. The app also monkey patches some views to make that widget work, rather than maintain our own version of gollum downstream.

Livepreview is disabled, as it lacks a toolbar for editing, and most users find the new interface (and rightly so) disconcerting.

Like the Forum, the Wiki is developed utilising Vagrant. You can clone the Gollum Application and create your own testable instance by running vagrant up

When you make changes, you can restart the application by using touch tmp/restart.txt

If you change gems or something to do with bundler, you can uncomment the ansible.tags line in Vagrantfile and run vagrant provision which will rebuild the application including all gems etc.

  1. Fork and Clone the Repo
  2. Make your changes
  3. Test changes utilising vagrant
  4. Once happy, commit and push
  5. Create a pull request detailing the change

Extra points if you also update the Server Deployment repo if you require deployment changes (such as new packages)