no need for recursive removal of a single file
[monkeysphere.git] / website / mirrors.mdwn
index 8445a26330ec2ae52c61474135d0c19815ca4e33..5fcc34743197fa2f3e1341870dd73a2b907193e1 100644 (file)
@@ -1,57 +1,47 @@
-[[meta title="Mirroring the web site"]]
+[[meta title="Mirroring the Monkeysphere web site"]]
 
-In keeping with the philosophy of distributed development, our web site is
+# 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 method that uses ssh.
-
-The steps for creating a new mirror are:
-
- * 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)
-
-The steps to be taken on the mirror site should now be complete. The following steps should be taken by a Monkeysphere admin user:
-
- * 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 pusch SERVERNAME
-
-
-               
+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.