[[meta title="Mirroring the web site"]]
In keeping with the philosophy of distributed development, our web site is
stored in our git repositories and converted into html by
ikiwiki.
We're mirrored on several servers. Rather than using ikiwiki's pinger/pingee
approach to distribution, we've
opted for a method that uses ssh.
The steps for creating a new mirror are:
Steps to take on the mirror server
Add etch-backports to your /etc/apt/sources.list:
deb http://www.backports.org/debian etch-backports main contrib non-free
Add the following lines to your /etc/apt/preferences file:
Package: ikiwiki
Pin: release a=etch-backports
Pin-Priority: 999
# needed by ikiwiki
Package: libcgi-formbuilder-perl
Pin: release a=etch-backports
Pin-Priority: 999
Package: git-core
Pin: release a=etch-backports
Pin-Priority: 999
Install git-core and ikiwiki
aptitude update; aptitutde install git-core ikiwiki
Create a new user. Change the new users shell to git-shell:
adduser -s /usr/bin/git-shell <username>
Add webmaster@george's public key to this user's ~/.ssh/authorized_keys file
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]
Upload and edit ikiwiki.setup.sample from the docs directory
As the new user, create two new git repos
mkdir monkeysphere.git; cd monkeysphere.git; git init --bare; cd ../
git clone monkeysphere.git # this will create a second git repo called monkeysphere
Change the mode of monkeysphere.git/hooks/post-receive to 755
chmod 755 monkesphere.git/hooks/post-receive
Edit the file so that it executes the post-receive hook ikiwiki generates (as
you specified in the ikiwiki.setup file)
Admin steps to take to enable the configuration
Add a new dns record for SERVERNAME.monkeysphere.info.
Test the ssh connection by logging in as webmaster@george.riseup.net
Add the new server as a remote on webmaster@george.riseup.net:monkeysphere.git
cd ~/monkeysphere.git
git add remote SERVERNAME USER@SERVERNAME.monkeysphere.info:/path/to/repo
Test:
git push SERVERNAME