Author: poeml Date: Tue Jul 14 00:00:15 2009 New Revision: 7698 URL: http://svn.poeml.de/viewvc/mirrorbrain?view=revision&revision=7698 Log: add initial dump of work-in-progress documentation Added: trunk/docs/_build/ trunk/docs/_static/ trunk/docs/configuration.rst trunk/docs/configuration_reference.rst trunk/docs/developer.rst trunk/docs/index.rst trunk/docs/installation/ trunk/docs/installation/gentoo.rst trunk/docs/installation/index.rst trunk/docs/installation/opensuse.rst trunk/docs/installation/prerequirements.rst trunk/docs/installation/source.rst trunk/docs/intro.rst trunk/docs/known_problems.rst trunk/docs/mirrors.rst Added: trunk/docs/configuration.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/configuration.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,3 @@ + +Configuring MirrorBrain +======================= Added: trunk/docs/configuration_reference.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/configuration_reference.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,3 @@ + +Configuration Reference +======================= Added: trunk/docs/developer.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/developer.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,34 @@ +############################################################################### + Documentation for Developers +############################################################################### + + + +******************************************************************************** +How to contribute +******************************************************************************** + +To be written. + + + +******************************************************************************** +Hacking on the apache modules +******************************************************************************** + +To be written. + + + +******************************************************************************** +Writing extensions for the Python module +******************************************************************************** + +To be written. + + + +Debugging notes +================================================================================ + +To be written. Added: trunk/docs/index.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/index.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,27 @@ +.. MirrorBrain documentation master file, created by + sphinx-quickstart on Tue Jul 7 20:18:43 2009. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Table of Contents +======================================= +:Release: |version| +:Date: |today| + +.. toctree:: + + intro + + installation/index + configuration + configuration_reference + mirrors + known_problems + developer + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` + Added: trunk/docs/installation/gentoo.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/installation/gentoo.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,114 @@ +Installation on Gentoo Linux +================================================================================ + + +.. warning:: + When I (Peter) took the following notes, it was my first experience in + setting up a Gentoo system. + +Because I initially emerged git, lots of Perl modules which are be neded later +might already be on the system. + +curl will be useful for testing later:: + + emerge curl + +Build and start the PostgreSQL server:: + + emerge postgresql + emerge --config =postgresql-8.1.11 + su - postgres + pg_ctl -D /var/lib/postgresql/data start + + +Build GeoIP:: + + emerge geoip + + +Edit :file:`/etc/make.conf` and add the following settings:: + + USE="postgres" + APACHE2_MPMS="worker" + APACHE2_MODULES="actions alias auth_basic authn_default authn_file authz_host autoindex dir env expires headers include info log_config logio mime mime_magic negotiation rewrite setenvif status userdir dbd" + +Build and start the apache server:: + + emerge --newuse apache + rc-update add apache2 default + + +Add Lance's overlay to :file:`/etc/make.conf`:: + + PORTDIR_OVERLAY="/usr/portage/local/ramereth-overlay" + mkdir /usr/portage/local + cd /usr/portage/local + git clone git://github.com/ramereth/ramereth-overlay.git + + +Create/edit the file :file:`/etc/portage/package.keywords` and add the following:: + + ~www-misc/mirrorbrain-9999 + ~www-misc/mirrorbrain-2.8.1 + ~www-misc/mirrorbrain-2.8 + ~www-apache/mod_mirrorbrain-2.8.1 + ~www-apache/mod_form-132 + ~www-apache/mod_autoindex_mb-2.8.1 + + ~dev-python/cmdln-1.1.2 + ~dev-python/sqlobject-0.10.4 + ~dev-python/formencode-1.2.1 + + +Due to lack of a dependency in dev-python/cmdln, you need to do:: + + emerge unzip + + +Now, you can build mirrorbrain (and its components):: + + emerge -va mirrorbrain + +You should get about the following output:: + + These are the packages that would be merged, in order: + + Calculating dependencies... done! + [ebuild N ] dev-python/psycopg-2.0.8 USE="-debug -doc -examples -mxdatetime" 243 kB [0] + [ebuild N ] www-apache/mod_form-132 0 kB [1] + [ebuild N ] dev-perl/HTML-Tagset-3.20 8 kB [0] + [ebuild N ] dev-python/setuptools-0.6_rc9 247 kB [0] + [ebuild N ] perl-core/Test-Simple-0.80 80 kB [0] + [ebuild N ] perl-core/Sys-Syslog-0.27 75 kB [0] + [ebuild N ] perl-core/Storable-2.18 174 kB [0] + [ebuild N ] dev-perl/Config-IniFiles-2.39 USE="-test" 38 kB [0] + [ebuild N ] dev-python/cmdln-1.1.2 86 kB [1] + [ebuild N ] dev-perl/Digest-MD4-1.5 29 kB [0] + [ebuild N ] www-apache/mod_autoindex_mb-2.8.1 302 kB [1] + [ebuild N ] virtual/perl-Test-Harness-3.10 0 kB [0] + [ebuild N ] dev-perl/Net-Daemon-0.43 28 kB [0] + [ebuild N ] dev-perl/HTML-Parser-3.60 USE="-test" 86 kB [0] + [ebuild N ] dev-python/formencode-1.2.1 USE="-doc" 187 kB [0] + [ebuild N ] virtual/perl-Test-Simple-0.80 0 kB [0] + [ebuild N ] virtual/perl-Sys-Syslog-0.27 0 kB [0] + [ebuild N ] virtual/perl-Storable-2.18 0 kB [0] + [ebuild N ] dev-python/sqlobject-0.10.4 USE="postgres -doc -firebird -mysql -sqlite" 253 kB [0] + [ebuild N ] dev-perl/HTML-Tree-3.23 119 kB [0] + [ebuild N ] dev-perl/PlRPC-0.2020-r1 18 kB [0] + [ebuild N ] dev-perl/DBI-1.601 484 kB [0] + [ebuild N ] dev-perl/DBD-Pg-1.49 144 kB [0] + [ebuild N ] www-apache/mod_mirrorbrain-2.8.1 USE="-memcache" 0 kB [1] + [ebuild N ] dev-perl/Crypt-SSLeay-0.57 121 kB [0] + [ebuild N ] dev-perl/libwww-perl-5.805 USE="ssl" 232 kB [0] + [ebuild N ] www-misc/mirrorbrain-2.8.1 0 kB [1] + + Total: 27 packages (27 new), Size of downloads: 2,948 kB + Portage tree and overlays: + [0] /usr/portage + [1] /usr/portage/local/ramereth-overlay + + Would you like to merge these packages? [Yes/No] + ... + + + Added: trunk/docs/installation/index.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/installation/index.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,11 @@ +Installation +============ + +.. toctree:: + :glob: + + prerequirements + opensuse + gentoo + source + Added: trunk/docs/installation/opensuse.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/installation/opensuse.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,110 @@ + + + + + +Installation on openSUSE Linux or SLE +================================================================================ + +Add the needed repositories (use the subdirectory matching your distribution): + +* http://download.opensuse.org/repositories/Apache:/MirrorBrain/ +* http://download.opensuse.org/repositories/devel:/languages:/python/ +* http://download.opensuse.org/repositories/server:/database:/postgresql/ + +You can do this via commandline (we are using openSUSE 11.1 in our example):: + + zypper ar http://download.opensuse.org/repositories/Apache:/MirrorBrain/Apache_openSUSE_11.1 Apache:MirrorBrain + zypper ar http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_11.1 devel:languages:python + zypper ar http://download.opensuse.org/repositories/server:/database:/postgresql/openSUSE_11.1 server:database:postgresql + +Here's a list of packages needed to have one host running the database and the redirector: + + apache2 apache2-mod_asn apache2-mod_geoip apache2-mod_mirrorbrain + apache2-webthings-collection apache2-worker GeoIP libapr-util1-dbd-pgsql + libGeoIP1 mirrorbrain mirrorbrain-scanner mirrorbrain-tools + perl-Config-IniFiles perl-DBD-Pg perl-Digest-MD4 perl-libwww-perl postgresql + postgresql-ip4r postgresql-server python-cmdln python-psycopg2 + python-sqlobject + +.. note:: If the web server is set up on a separate host than the database + server, the web server needs only the package libapr-util1-dbd-pgsql + and no other postgresql* packages. + +You can install the packages via the following commandline:: + + zypper install apache2-worker \ + apache2-mod_asn apache2-mod_mirrorbrain \ + postgresql-server postgresql-ip4r \ + mirrorbrain mirrorbrain-scanner mirrorbrain-tools + +The packages not mentioned in this commandline are drawn in via package +dependencies. + + +.. Configure GeoIP +.. ---------------------------------------------- +.. +.. Edit /etc/apache2/conf.d/mod_geoip.conf: +.. +.. <IfModule mod_geoip.c> +.. GeoIPEnable On +.. GeoIPDBFile /var/lib/GeoIP/GeoIP.dat +.. #GeoIPOutput [Notes|Env|All] +.. GeoIPOutput Env +.. </IfModule> +.. +.. (Change GeoIPOutput All to GeoIPOutput Env) +.. +.. Note that a caching mode like MMapCache needs to be used, when Apache runs with the worker MPM.In this case, use +.. +.. <IfModule mod_geoip.c> +.. [50px-] GeoIPEnable On +.. GeoIPDBFile /var/lib/GeoIP/GeoIP.dat MMapCache +.. GeoIPOutput Env +.. </IfModule> + + + +******************************************************************************** +Installing mod_asn +******************************************************************************** + +mod_asn is optional for MirrorBrain. MirrorBrain runs fine without it. If you +don't need mirror selection based on network prefix or autonomous system, you +don't need to install mod_asn. + +.. note:: + There is a bug in the :program:`mb` tool that it depends on the existance on + the database table ``pfx2asn`` which is created when mod_asn is installed. + +To install mod_asn, refer to the `its documentation`__. + +__ /mod_asn/docs/ + + + +******************************************************************************** +Troubleshooting +******************************************************************************** + +If Apache doesn't start, or anything else seems wrong, make sure to check +Apache's error_log. It usually points into the right direction. + +A general note about Apache configuration which might be in order. With most +config directives, it is important to pay attention where to put them - the +order does not matter, but the context does. There is the concept of directory +contexts and vhost contexts, which must not be overlooked. Things can be +"global", or inside a <VirtualHost> container, or within a <Directory> +container. + +This matters because Apache applies the config recursively onto subdirectories, +and for each request it does a "merge" of possibly overlapping directives. +Settings in vhost context are merged only when the server forks, while settings +in directory context are merged for each request. This is also the reason why +some of mod_asn's config directives are programmed to be used in one or the +other context, for performance reasons. + +The install docs you are reading attempt to always point out in which context +the directives belong. + Added: trunk/docs/installation/prerequirements.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/installation/prerequirements.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,7 @@ +Prerequirements +=============== + +A recent enough version of the Apache HTTP server is required. 2.2.6 or later +should be used. In addition, the apr-util library needs to be 1.3.0 or newer. +This is because the DBD database pool functionality was developed mainly +between 2006 and 2007, and reached production quality at the time. Added: trunk/docs/installation/source.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/installation/source.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,350 @@ +Installation from source +======================== + + +Install Apache 2.2.6 or later. + + +The main Apache module can be built with the following steps:: + + # unpack the tarball + cd mod_mirrorbrain + apxs2 -c mod_mirrorbrain.c + +To install the module in the right place, you would typically call:: + + apxs2 -i mod_mirrorbrain.c + +Building, installing and activation can typically be combined in one apxs call:: + + apxs2 -cia mod_mirrorbrain.c + + +After installation of mod_mirrorbrain, you'll need to: + + +* install GeoIP library, commandline tools, and geoip apache module + (openSUSE/SLE packages: GeoIP, libGeoIP1, apache2-mod_geoip) + +* configure mod_geoip:: + + GeoIPEnable On + GeoIPOutput Env + GeoIPDBFile /var/lib/GeoIP/GeoIP.dat MMapCache + + (You would typically put this into the server-wide context of a virtual host.) + + Note that a caching mode like MMapCache needs to be used, when Apache runs with the worker MPM. + See http://forum.maxmind.com/viewtopic.php?p=2078 for more information. + +* install mod_form. The sources are here: + + * http://apache.webthing.com/svn/apache/forms/mod_form.c + * http://apache.webthing.com/svn/apache/forms/mod_form.h + +- install the following Python modules: + + * python-cmdln + * python-sqlobject + * python-psycopg2 + +- for the scanner, which is written in Perl, a few Perl modules are required: + * perl-Config-IniFiles + * perl-libwww-perl + * perl-Digest-MD4 (it is not *really* needed, but prevents an ugly error message) + * perl-DBD-Pg + +- configure the database to use with MirrorBrain, and continue with the respective + description below: + + + * install the PostgreSQL database adapter for the DBD library + Note that if the web server is set up seperately from the database server, + only the web server needs this package. + + * install postgresql and start it + + * create the postgresql user account and database:: + + + su - postgres + + root_at_powerpc:~ # su - postgres + postgres_at_powerpc:~> createuser -P mb + Enter password for new role: + Enter it again: + Shall the new role be a superuser? (y/n) n + Shall the new role be allowed to create databases? (y/n) n + Shall the new role be allowed to create more new roles? (y/n) n + CREATE ROLE + + postgres_at_powerpc:~> createdb -O mb mb_samba + CREATE DATABASE + postgres_at_powerpc:~> createlang plpgsql mb_samba + postgres_at_powerpc:~> + + + postgres_at_powerpc:~> cp data/pg_hba.conf data/pg_hba.conf.orig + postgres_at_powerpc:~> vi data/pg_hba.conf + + # TYPE DATABASE USER CIDR-ADDRESS METHOD + # "local" is for Unix domain socket connections only + #local all all ident sameuser + local all all password + # IPv4 local connections: + host all all 127.0.0.1/32 password + # IPv6 local connections: + host all all ::1/128 password + # remote connections: + host mb_samba mb 10.10.2.3/32 password + + + + * Tuning: + + If the database will be large, reserve enough memory for it (mainly + by setting shared_buffers), and in any case you should switch off + synchronous commit mode (synchronous_commit = off). This can be set in + data/postgresql.conf. + + Start the server:: + + root_at_powerpc:~ # rcpostgresql restart + + * import table structure, and initial data:: + + psql -U mb -f sql/schema-postgresql.sql mb_samba + psql -U mb -f sql/initialdata-postgresql.sql mb_samba + + +* Create a user and group:: + + groupadd -r mirrorbrain + useradd -r -o -g mirrorbrain -s /bin/bash -c "MirrorBrain user" -d /home/mirrorbrain mirrorbrain + +* create :file:`/etc/mirrorbrain.conf` with the content below. File permissions + should be 0640, ownership root:mirrorbrain:: + + [general] + instances = samba + + [samba] + dbuser = mb + dbpass = 12345 + dbdriver = postgresql + dbhost = your_host.example.com + # optional: dbport = ... + dbname = mb_samba + + [mirrorprobe] + mailto = your_mail_at_example.com, another_mail_at_example.com + + +* Note: the "mb" tool referenced below is (for convenience) a symlink to the + mirrordoctor.py script. + +* now you should be able to type 'mb list' without getting an error. + It'll produce no output, but exit with 0. If it gives an error, something is + wrong. + +* collect a list of mirrors (their HTTP baseurl, and their rsync or FTP baseurl + for scanning). For example:: + + http://ftp.isr.ist.utl.pt/pub/MIRRORS/ftp.suse.com/projects/ + rsync://ftp.isr.ist.utl.pt/suse/projects/ + + http://ftp.kddilabs.jp/Linux/distributions/ftp.suse.com/projects/ + rsync://ftp.kddilabs.jp/suse/projects/ + + + + Now you need to enter the mirrors into the database; it could be done using the + "mb" mirrorbrain tool. (See 'mb help new' for full option list.):: + + mb new ftp.isr.ist.utl.pt \ + --http http://ftp.isr.ist.utl.pt/pub/MIRRORS/ftp.suse.com/projects/ \ + --rsync rsync://ftp.isr.ist.utl.pt/suse/projects/ + + mb new ftp.kddilabs.jp \ + --http http://ftp.kddilabs.jp/Linux/distributions/ftp.suse.com/projects/ \ + --rsync rsync://ftp.kddilabs.jp/suse/projects/ + + + The tool automatically figures out the GeoIP location of each mirror by itself. + But you could also specify them on the commandline. + + If you want to edit a mirror later, use:: + + mb edit <identifier> + + To simply display a mirror dataset, you'd use 'mb show kddilabs', for instance. + + Finally, each mirror needs to be scanned and enabled:: + + mb scan --enable <identifier> + + See the output of 'mb help' for more commands. + + + +* configure Apache: + + * load the Apache modules:: + + a2enmod form + a2enmod dbd + a2enmod mirrorbrain + + * create a DNS alias for your web host, if needed + + * configure the database adapter (mod_dbd), resp. its connection pool. + Put the configuration into server-wide context. Config example:: + + # for prefork, this configuration is inactive. prefork simply uses 1 + # connection per child. + <IfModule !prefork.c> + DBDMin 0 + DBDMax 32 + DBDKeep 4 + DBDExptime 10 + </IfModule> + + * configure the database driver. + Put the following configuration into server-wide OR vhost context. Make the file + chmod 0640, owned root:root because it will contain the database password:: + + DBDriver pgsql + # note that the connection string (which is passed straight through to + # PGconnectdb in this case) looks slightly different - pass vs. password + DBDParams "host=localhost user=mb password=12345 dbname=mb_samba connect_timeout=15" + + + * configure mod_mirrorbrain. + You probably want to reate a vhost (e.g. + /etc/apache2/vhosts.d/samba.mirrorbrain.org.conf) and add the MirrorBrain + configuration like shown here:: + + <VirtualHost your.host.name:80> + ServerName samba.mirrorbrain.org + + ServerAdmin webmaster_at_mirrorbrain.org + + DocumentRoot /srv/samba/pub/projects + + ErrorLog /var/log/apache2/samba.mirrorbrain.org/logs/error_log + CustomLog /var/log/apache2/samba.mirrorbrain.org/logs/access_log combined + + <Directory /srv/samba/pub/projects> + MirrorBrainEngine On + MirrorBrainDebug Off + FormGET On + MirrorBrainHandleHEADRequestLocally Off + MirrorBrainMinSize 2048 + MirrorBrainHandleDirectoryIndexLocally On + MirrorBrainExcludeUserAgent rpm/4.4.2* + MirrorBrainExcludeUserAgent *APT-HTTP* + MirrorBrainExcludeMimeType application/pgp-keys + + Options FollowSymLinks Indexes + AllowOverride None + Order allow,deny + Allow from all + </Directory> + + </VirtualHost> + + * restart Apache, while watching the error log:: + + tail -F /var/log/apache2/*_log & + rcapache2 restart + + + * mirror surveillance needs to be configured. Put this into /etc/crontab:: + + -* * * * * mirrorbrain mirrorprobe -t 20 &>/dev/null + + Likewise, configure scanning:: + + 44 0,4,8,12,16,20 * * * mirrorbrain mb scan -j 3 -a + + +TODO: describe how to test that the install was successful + (When testing, consider any excludes that you configured, and which may + confuse you.) + + +TODO: describe decent logging setup + + +* further things that you might want to configure: + + * mod_autoindex_mb, a replacement for the standard module mod_autoindex:: + + a2dismod autoindex + a2enmod autoindex_mb + Add IndexOptions Metalink Mirrorlist + # or IndexOptions +Metalink +Mirrorlist, depending on your config + + * add a link to a CSS stylesheet for mirror lists:: + + MirrorBrainMirrorlistStylesheet "http://static.opensuse.org/css/mirrorbrain.css" + + and for the autoindex:: + + IndexStyleSheet "http://static.opensuse.org/css/mirrorbrain.css" + + * prepare the metalink hashes. + + * First, add some configuration:: + + MirrorBrainMetalinkPublisher "openSUSE" http://download.opensuse.org + MirrorBrainMetalinkHashesPathPrefix /srv/metalink-hashes/ppc + + * install the "metalink" tool from http://metamirrors.nl/metalinks_project + (openSUSE package called metalink, http://download.opensuse.org/repositories/network:/utilities/) + and create the actual hashes:: + + metalink-hasher update -t /srv/metalink-hashes/ppc/srv/ftp/pub/opensuse/ppc /srv/ftp/pub/opensuse/ppc + + * add the hashing command to /etc/crontab to be run every few hours. + + +.. note:: That's how far the instructions go. I hope they are useful. Please + subscribe to the mirrorbrain mailing list, see + http://mirrorbrain.org/communication . Questions can be answered there, + feedback is appreciated. + + + + +Memcache support +================ + +Memcache support is optional. You should not need it normally, so it is +suggested that you just ignore this. When compiling with memcache support, +-DWITH_MEMCACHE needs to be among the compile flags. +apxs2 -c -Wc,"-DWITH_MEMCACHE -Wall -g" mod_mirrorbrain.c +If you use an apr-util version prior to 1.3, the memcache client support isn't included. Then you'll +need to get and build libapr_memcache, and then you'll probably build mod_mirrorbrain like this: +apxs2 -c -I/usr/include/apr_memcache-0 -lapr_memcache '-Wc,-Wall -DWITH_MEMCACHE -g -D_GNU_SOURCE' mod_mirrorbrain.c + +Further steps required for memcache support would be: + +- install memcached +- make sure it listens on localhost only (/etc/sysconfig/memcached) +- start it ("/etc/init.d/memcached start") +- configure it to start at boot ("chkconfig -a memcached") +- install mod_memcache from http://code.google.com/p/modmemcache/ + (openSUSE package apache2-mod_memcache); a2enmod memcache + +Configuration example:: + + <IfModule mod_memcache.c> + MemcacheServer 127.0.0.1:11211 min=0 smax=4 max=16 ttl=600 + </IfModule> + <IfModule mod_mirrorbrain.c> + MirrorBrainMemcached On + MirrorBrainMemcachedLifetime 1800 + </IfModule> + + Added: trunk/docs/intro.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/intro.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,19 @@ +Introduction +============ + +MirrorBrain is an open source framework to run a content delivery network using +mirror servers. It solves a challenge that many popular open source projects +face - a flood of download requests, often magnitudes more than a single site +could practically handle. + +A central (and probably the most obvious) part is a "download redirector" which +automatically redirects requests from web browsers or download programs to a +mirror server near them. + +Choosing a suitable mirror for a users request is the key, and MirrorBrain uses +geolocation and global routing data to make a sensible choice, and achieve +load-balancing for the mirrors at the same time. The used algorithm is both +sophisticated and easy to control and tune. In addition, MirrorBrain monitors +mirrors, scans them for files, generates mirror lists, and more. + + Added: trunk/docs/known_problems.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/known_problems.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,16 @@ +Known problems +============== + +Database reconnections issues +----------------------------- + +If the database goes away (or is restarted), it is not clear at the moment if +the pgsql database adapter used by Apache's DBD library reconnects cleanly. +Sometimes it seems that it doesn't reconnect, and a graceful restart of Apache +is needed. This needs further inspection. + + +Passwords containing spaces +----------------------------- + +Passwords containing spaces in :file:`/etc/mirrorbrain.conf` are known not to work. Added: trunk/docs/mirrors.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/docs/mirrors.rst Tue Jul 14 00:00:15 2009 (r7698) @@ -0,0 +1,34 @@ +Prerequirements for mirrors +=========================== + + +* must run rsync, FTP or HTTP for scanning. rsync is best. + + +Creating and maintaining the mirror database +============================================ + + +Creating a new mirror +--------------------- + +Run the :program:`mb new` command, like this:: + + mb new opensuse.uib.no -H 'http://opensuse.uib.no/' -F 'ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/' -R rsync://opensuse.uib.no/opensuse-full/ + +This creates a new entry in the mirror database for this mirror. + + +Listing mirrors +--------------- + +mb list + + +Displaying details about a mirror +--------------------------------- + +Changing a mirror +--------------------- + +mb edit _______________________________________________ mirrorbrain-commits mailing list Archive: http://mirrorbrain.org/archive/mirrorbrain-commits/ Note: To remove yourself from this list, send a mail with the content unsubscribe to the address mirrorbrain-commits-request_at_mirrorbrain.orgReceived on Mon Jul 13 2009 - 22:00:18 GMT
This archive was generated by hypermail 2.2.0 : Mon Jul 13 2009 - 22:45:08 GMT