summaryrefslogtreecommitdiff
path: root/doc/post-commit.mdwn
blob: 5178df6e6f82ba7eeb9639965b955a2853a521bd (plain)

If your wiki is kept in [[revision control|rcs]], a post-commit hook is run every time you commit a change to your repository. To make the wiki be updated each time a commit is made, it can be run from (or as) a post-commit hook.

The best way to run ikiwiki in a post-commit hook is using a wrapper, which ikiwiki is usually configured to generate using a setup file.

The generated wrapper is a C program that is designed to safely be made suid if necessary. It's hardcoded to run ikiwiki with the settings specified when you ran --wrapper, and can only be used to update and compile that one checkout into the specified html directory.

Depending on your setup, the post-commit hook might end up getting called by users who have write access to the repository, but not to your wiki checkout and html directory. If so, you can safely make the wrapper suid to a user who can write there (not to root!). You might want to read [[Security]] first.

[[Setup]] explains setting this up in more detail.