diff options
author | Micah Anderson <micah@riseup.net> | 2008-09-03 15:28:30 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2008-09-03 15:28:30 -0400 |
commit | 86f97d40d6fb60f7dde3c7e3a8aab0124f151d35 (patch) | |
tree | 94f62ff48a5ad9e4e65deec7b2fe606f2190555b /website/mirrors.mdwn | |
parent | 1e26301ec4cd2afc45c968c3fe3d77bf296b03fb (diff) | |
parent | 52d692d728d7d56ec0f17e0a9afbb6579a7eece9 (diff) |
Merge commit 'dkg/master'
Diffstat (limited to 'website/mirrors.mdwn')
-rw-r--r-- | website/mirrors.mdwn | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/website/mirrors.mdwn b/website/mirrors.mdwn new file mode 100644 index 0000000..feee9bd --- /dev/null +++ b/website/mirrors.mdwn @@ -0,0 +1,81 @@ +[[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](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 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 + + + |