How to become a resource repository mirror

From Armagetron

Requirements

  • Apache 2
    • mod_rewrite
    • ability to edit Apache vhost config
    • mod_php 4+
  • rsync
  • One of:
    • cron
    • ssh account

Mirror Setup

Mirror Number

Ask Luke for a mirror number. Be sure to include your machine's IP address(es). References to this mirror number below are in English. For example, 'one' and 'two'.

Sync Document Root

You probably don't want to run this as root:

mkdir -p /var/www/armagetron/resource
rsync --delete -a rsync://master.resource.aa.dashjr.org/armagetron-resource/ /var/www/armagetron/resource/

Setup Apache

Add to your vhost configuration:

<VirtualHost *:80>
    ServerName mirror-number.resource.aa.dashjr.org
    ServerAlias resource.armagetronad.net *.resource.armagetronad.net resource.aa.dashjr.org *.resource.aa.dashjr.org
    ServerPath /
    DocumentRoot /var/www/armagetron/resource/htdocs
    UseCanonicalName On
</VirtualHost>
<Directory "/var/www/armagetron/">
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

With Gentoo, this should be /etc/apache2/vhosts.d/02_armagetronad.conf

After setting up apache, you need to reload your configuration :)

Automatic Updating

Cron

Put in a crontab that gets run daily or hourly (with non-root permissions):

rsync --delete -a rsync://master.resource.aa.dashjr.org/armagetron-resource/ /var/www/armagetron/resource

You may wish to append &>/dev/null so you don't get logs every time.

Using this method, your server will redirect to the master mirror when it doesn't have a resource.

Armabot

Armabot is our bot that handles IRC and also updates things when there are changes.

Add to your SSH account's ~/.ssh/authorized_keys file:

command="rsync --delete -a rsync://master.resource.aa.dashjr.org/armagetron-resource/ /var/www/armagetron/resource" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtW5agPIL23MDpL6zFhJnLumv0pQrpIz7QkTlBbZ60KTVN0xITrVB7cf/Uphx7+WFYSde42Sf666jomDRu9ZwkBauGQjvKH7BlWRuLnFazdSd3X4jSEhAl38pQI/dV7QhUP0lBpIGv25h40S6YG1QwxQII4+BkbzoPIJs4RM4Pmn5piTN7OHdT/S8XxT/oVPiU1WrD08ewjxS7fawfQ31NKcAApDl5IFUkHY0+Zqzk0QACuWRRGTSa8h051JUWAnkEfNEg75PIstA6sgzXFqVcJLD4Mvk8sKkBqITniX8btxzW9kSfo/bzdgfx6C8X2r2ES/cY1ttTnp4Gb32GzuvXw== supybot@butler

Now, contact wrtlprnft to add a notifier for resource additions.

Using this method, you should always have all the latest resources.

Activate Mirror

Inform Luke that you're done. He'll check your mirror to make sure it's sane and put it in the round-robin.