pdf1.wikimedia.org
The pdf1.wikimedia.org, pdf2.wikimedia.org and pdf3.wikimedia.org servers used to run PediaPress / mwlib software for Collection/Book tool. It was shut down on 2014-10-03 in favour of OCG.
Until rt 1100 is resolved the most up to date documentation is on the PediaPress Wiki
Hardware
This currently resides on pdf1
Software
- Python mini web server on port 8080 + Python backend
- mwlib -> backend libraries
- mwlib.rl -> PDF output tool + mw-serve mini-server
- swap-watchdog to trigger reboot if/when swap death occurs from memory leak
Usage
- Starting initial testing end of May 2008
Notes
- May need some manual cleanup etc.
Setup / Recovery
Dependencies: apt-get install \ build-essential \ python-imaging python-dev python-flup python-setuptools python-simplejson \ subversion mercurial \ re2c \ tetex-bin tetex-extra ploticus \ mediawiki-math Add the user mwlib. This is what you should run the cron job and service under. Init script: Get: http://svn.wikimedia.org/svnroot/mediawiki/trunk/tools/mw-serve/mw-serve.sh Put it in /etc/init.d/mw-serve Set up appropriate S* and K* aliases in /etc/rc.d/*: cd /etc/rc0.d ln -s ../init.d/mw-serve K25mw-serve chmod 777 K25mw-serve cd /etc/rc1.d ln -s ../init.d/mw-serve K25mw-serve chmod 777 K25mw-serve cd /etc/rc2.d ln -s ../init.d/mw-serve S25mw-serve chmod 777 S25mw-serve cd /etc/rc3.d ln -s ../init.d/mw-serve S25mw-serve chmod 777 S25mw-serve cd /etc/rc4.d ln -s ../init.d/mw-serve S25mw-serve chmod 777 S25mw-serve cd /etc/rc5.d ln -s ../init.d/mw-serve S25mw-serve chmod 777 S25mw-serve cd /etc/rc6.d ln -s ../init.d/mw-serve K25mw-serve chmod 777 K25mw-serve DNS setup: pdf1.wikimedia.org -> pdf1 (or whatever server is running the service.) mwlib stuff: Set up directories for the cache and log files: mkdir /opt/mwlib mkdir /opt/mwlib/var mkdir /opt/mwlib/var/log mkdir /opt/mwlib/var/run mkdir /opt/mwlib/var/cache mkdir /opt/mwlib/var/cache/pdfserver mkdir /opt/mwlib/var/cache/python-eggs mkdir /opt/mwlib/var/cache/pdfserver/ chown -R mwlib /opt/mwlib/ chgrp -R mwlib /opt/mwlib/ Install the mwlib release version (into /usr): easy_install mwlib easy_install mwlib.rl easy_install mwlib.ext Add a cronjob for the cache clearing in /etc/cron.hourly touch mw-serve vim mw-serve Insert the following into the file: #!/bin/sh su mwlib -c "mw-serve --clean-cache 24 --cache-dir '/opt/mwlib/var/cache/pdfserver/'" www-data >> /opt/mwlib/var/log/cache-cleaning Add log rotation job '''<- add this info''' Install [[swap-watchdog]] script into /usr/local/bin Add to /etc/rc.local script: /usr/local/bin/swap-watchdog &
Upgrading mwlib
We're currently running release versions of the mwlib code, which means they're all nicely packaged up for us and can be installed and upgraded via the Python 'easy_install' tool:
/etc/init.d/mw-serve stop && easy_install -U mwlib && easy_install -U mwlib.rl && easy_install -U mwlib.ext && /etc/init.d/mw-serve start
Software reference
- http://pypi.python.org/pypi/mwlib/
- http://pypi.python.org/pypi/mwlib.rl/
- http://pypi.python.org/pypi/mwlib.ext/
Starting the server
To start:
/etc/init.d/mw-serve start
To stop:
/etc/init.d/mw-serve stop
To restart:
/etc/init.d/mw-serve restart
Should work. :D
Logfiles and pidfiles in /opt/mwlib/var/* need to be writable by www-data, which the daemon gets run as.
Maintenance and cleanup
Currently the daemon doesn't appear to do live garbage collection of cached output; it can be done with a batch script running mw-serve and some extra options. This isn't quite set up yet, so be warned the server may run out of space (bad!)
Also the logs should be rotated...