Verbatim:Deployment
Jump to navigation
Jump to search
Verbatim » Deployment
NOTE: This page contains notes about Mozilla's installation of Pootle. If you wish to install Pootle, the best would be to consult the documentation of the Pootle project.
Pre-Deployment Checklist
- Prerequisites
- Python >= 2.4
- pip
- python-sqlite2
- python-ldap
- MySQL-python
- At least gettext version 0.15. This seems to upgrade cleanly in Redhat with no dependency issues (bug 438706)
- At least SVN 1.5 (we make use of
--with-revprop) - libxml2-devel
- libxslt-devel
- python-devel
(list of Pootle's dependencies)
Setup
I've added some scripts etc. to github.
As the apache user, pick a dir where you want to deploy Pootle (pootle_dir), then:
- Create and activate a virtualenv
cd pootle_dirvirtualenv pootle_env. pootle_env/bin/activate
- Install all required packages using
pipwget .../requirements.txt(from github)pip -E pootle_env install -r requirements.txt
- Download and extract Pootle itself (from the SourceForge releases) so that it lives under pootle_dir/Pootle
Set up Apache and mod_python to properly run Pootle
cd pootle_env/binwget .../modpython_wrapper.py(from github); chmod +x it- set up Apache config similarly to the
apache-host.confon github; important parts:PythonHandler modpython_wrapperrefers to the .py file we put intopootle_dir/pootle_envabove.- make sure to adjust pootle_dir appropriately in all places
- the config should in the end use HTTPS and forward HTTP->HTTPS, because we use LDAP auth
Configuration
- set up SVN user (more details on these steps but here's a summary):
- Create a Verbatim SSH account on the SVN server using an SSH key with no passphrase
- Copy the key to a .ssh directory in the home directory of the verbatim user on the verbatim server
- Add commit hooks to the SVN server for translate:author
- check out inital projects into
Pootle/po/(project-slug), for example:
cd pootle_dir/Pootle/posvn co svn+ssh://svn.mozilla.org/addons/trunk/site/app/locale amo
- set up Pootle itself
- create a MySQL db and user
- set up a memcached instance for Pootle
- edit
Pootle/localconfig.py, there: - change
DATABASE_* - switch
AUTHENTICATION_BACKENDSto use LDAP, and adjust the credentials/settings there - switch
CACHE_BACKENDwith the memcached option
- initialize Pootle
- in
pootle_dir/Pootle, run the database initialization steps, including creation of a first admin user: ./manage.py syncdb./manage.py initdb./manage.py refresh_stats
Post-deployment Checklist
- make sure at the very least
/poand/dbsare owned and writeable by the apache user, probablypootle/settings.pytoo. - once it all works, switch
DEBUGinlocalconfig.pyto False
todo: verification things are working, cron jobs, nagios checks, etc.
You might also want to look into tips for Pootle optimisation].