[[meta title="Mirroring the Monkeysphere web site"]]

# Mirroring the Monkeysphere web site #

In keeping with the distributed philosophy of distributed development, our web site is
stored in our git repositories and converted into html by
[ikiwiki](http://ikiwiki.info/).

We're mirrored on several servers. Rather than using ikiwiki's [pinger/pingee
approach to distribution](http://ikiwiki.info/tips/distributed_wikis/), we've
opted for a simpler rsync of the ikiwiki-produced html files. 

## Initial steps to take on the mirror server ##

Create a new user. 

Add web site configuration that the user has write access to. If you are
using Apache, include the following rewrite:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^(YOURHOSTNAME|web)\.monkeysphere\.info$ [NC]
    RewriteCond %{HTTP_HOST} !^$
    RewriteRule ^/(.*) http://web.monkeysphere.info/$1 [L,R]

Add `webmaster@george`'s public key to this user's
`~/.ssh/authorized_keys` file, restricting that user to rsync (modify
path to web directory as needed):

    command="/usr/bin/rsync --server -vlogDtprz --delete . web/",no-pty,no-agent-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0SCD6tAh7g1yyuelIm5zyh5OFX89NNbpNzyp+BxXNxMc/C1BS9SN5KlNDT30WdDbw3X0St0dBBC69TZWYbSUn4+/6BNmYpLH2orhedBv4w2jBLmtVEfnMWa3a11CnIagMEkEz7rBIWpl76WOqzoueQbAAa/7GziVmv+2qdjcDFxHluO+VL/+gEw8BqZc587oiDYkIw3oBnOLaxUWDtaMFKiL8sgdBmPxzc8PgHxL5ezVDJExw5krR4FK7hG7KpBOlSwKQPFy2pPhHSb1ZuFJmp2kr2wfJ0RO7By5s/GbrkJbnGoiJ5W0fUC9YoI82U3svC5saowvoSo19yToJW4QUw== webmaster@george

## Admin steps to take to enable the configuration ##

Add a new dns record for SERVERNAME.monkeysphere.info. 

If the mirror server is not participating in the monkeysphere, add the
server to webmaster's known host file.

Add the new server to `webmaster@george:~/mirrors` in the format:

    username@server:directory

Test by manually running the git post-receive hook as
`webmaster@george`:

    ~/monkeysphere.git/hooks/post-receive

Add a new `A` record into the `web.monkeysphere.info` round robin.