aboutsummaryrefslogtreecommitdiff
Sarava's Ikiwiki Puppet Module
==============================

This is an attempt to make a simple and straightforward puppet module to manage ikiwiki instances
leveraging a git daemon such as gitolite.

Gitolite or gitosis is needed but should be managed elsewhere. Please setup and deploy your keys into
the git daemon before deploying the ikiwiki instances.

How it works
------------

The following setup is used:

  - Wiki pages are served under it's own user, but the cgi usually runs under www-data.
  - The git daemon runs on its own user and group.

So the recommended suid for the cgi and the post-update hook are used normally.

For that to work, you, the wiki user and root needs ssh read/write access to the git daemon:

  - You need to be able to push an pull changes to the git daemon.
  - The cgi backend also needs push and pull access to the bare repository.
  - Gitolite needs permission to write into the repository working copy and be able to generate pages.
  - Root also needs access to the repo so "ikiwiki --setup" can be run as root.

Usage example
-------------

    # Declare the ikiwiki class
    class { 'ikiwiki':
      www_user           => 'www-data',
      sites_folder       => /var/www,
      git_implementation => 'gitolite',
      git_folder         => '/var/lib/git',
    }

    # Define your website using your http server module of choice.
    apache::site { "mywiki":
      docroot => "${apache::sites_folder}/mywiki/ikiwiki",
      use     => [ "Ikiwiki mywiki" ],
      owner   => 'mywiki',
      group   => 'mywiki',
    }

    # Define your ikiwiki instance.
    ikiwiki::instance { "mywiki":
      ensure          => present,
      description     => "My Ikiwiki",
      adminuser       => "myuser",
      disable_plugins => "openid",
      add_plugins     => "goodstuff sidebar",
    }

Example gitolite configuration
------------------------------

Here we're using one pubkey for the wiki user and another for the server:

    @public = daemon gitweb
    @mywiki = your@pubkey.org mywiki@pubkey.org root@yourserver.org

    mywiki "Admins" = "My Ikiwiki"

    repo mywiki
      R  = @public
      RW = @mywiki

References
----------

- See http://rtime.felk.cvut.cz/~sojka/blog/using-ikiwiki-with-gitolite/