Verbatim:Deployment: Difference between revisions
Jump to navigation
Jump to search
m (→Setup) |
Friedelwolff (talk | contribs) (Instructions for stray readers, update to 2010 realities) |
||
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Verbatim]] » Deployment | [[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 [http://translate.sourceforge.net/wiki/pootle/index documentation of the Pootle project]. | |||
== Pre-Deployment Checklist == | == Pre-Deployment Checklist == | ||
* Prerequisites | * Prerequisites | ||
** [http:// | ** Python >= 2.4 | ||
** [http://pip.openplans.org/ pip] | |||
** python-sqlite2 | |||
** python-ldap | |||
** | ** MySQL-python | ||
** At least gettext version 0.15. This seems to upgrade cleanly in Redhat with no dependency issues ([https://bugzilla.mozilla.org/show_bug.cgi?id=438706 bug 438706]) | ** At least gettext version 0.15. This seems to upgrade cleanly in Redhat with no dependency issues ([https://bugzilla.mozilla.org/show_bug.cgi?id=438706 bug 438706]) | ||
** At least SVN 1.5 (we make use of <code>--with-revprop</code>) | |||
** libxml2-devel | |||
** libxslt-devel | |||
** python-devel | |||
([http://translate.sourceforge.net/wiki/pootle/installation list of Pootle's dependencies]) | |||
== Setup == | == Setup == | ||
I've added some scripts etc. to [https://gist.github.com/cb33a48c6945db24f13a github]. | |||
* | |||
* | As the apache user, pick a dir where you want to deploy Pootle (pootle_dir), then: | ||
* | |||
* Create and activate a virtualenv | |||
** <code>cd pootle_dir</code> | |||
** <code>virtualenv pootle_env</code> | |||
** <code>. pootle_env/bin/activate</code> | |||
* Install all required packages using <code>pip</code> | |||
** <code>wget .../requirements.txt</code> (from github) | |||
** <code>pip -E pootle_env install -r requirements.txt</code> | |||
* Download and extract Pootle itself (from the [http://sourceforge.net/projects/translate/files/Pootle/ SourceForge releases]) so that it lives under pootle_dir/Pootle | |||
Set up Apache and mod_python to properly run Pootle | |||
* <code>cd pootle_env/bin</code> | |||
* <code>wget .../modpython_wrapper.py</code> (from github); chmod +x it | |||
* set up Apache config similarly to the <code>apache-host.conf</code> on github; important parts: | |||
** <code>PythonHandler modpython_wrapper</code> refers to the .py file we put into <code>pootle_dir/pootle_env</code> above. | |||
** 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 ([http://micropipes.com/blog/2008/09/19/committing-to-svn-securely-from-a-web-application/ 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 <code>Pootle/po/(project-slug)</code>, for example: | |||
# <code>cd pootle_dir/Pootle/po</code> | |||
# <code>svn co svn+ssh://svn.mozilla.org/addons/trunk/site/app/locale amo</code> | |||
* set up Pootle itself | |||
# create a MySQL db and user | |||
# set up a memcached instance for Pootle | |||
# edit <code>Pootle/localconfig.py</code>, there: | |||
# change <code>DATABASE_*</code> | |||
# switch <code>AUTHENTICATION_BACKENDS</code> to use LDAP, and adjust the credentials/settings there | |||
# switch <code>CACHE_BACKEND</code> with the memcached option | |||
* initialize Pootle | |||
# in <code>pootle_dir/Pootle</code>, run the database initialization steps, including creation of a first admin user: | |||
# <code>./manage.py syncdb</code> | |||
# <code>./manage.py initdb</code> | |||
# <code>./manage.py refresh_stats</code> | |||
== Post-deployment Checklist == | == Post-deployment Checklist == | ||
* make sure at the very least <code>/po</code> and <code>/dbs</code> are owned and writeable by the apache user, probably <code>pootle/settings.py</code> too. | |||
* once it all works, switch <code>DEBUG</code> in <code>localconfig.py</code> to'' False'' | |||
''todo: verification things are working, cron jobs, nagios checks, etc.'' | ''todo: verification things are working, cron jobs, nagios checks, etc.'' | ||
You might also want to look into tips for [http://translate.sourceforge.net/wiki/pootle/optimisation Pootle optimisation]]. |
Latest revision as of 08:36, 29 June 2010
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_dir
virtualenv pootle_env
. pootle_env/bin/activate
- Install all required packages using
pip
wget .../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/bin
wget .../modpython_wrapper.py
(from github); chmod +x it- set up Apache config similarly to the
apache-host.conf
on github; important parts:PythonHandler modpython_wrapper
refers to the .py file we put intopootle_dir/pootle_env
above.- 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/po
svn 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_BACKENDS
to use LDAP, and adjust the credentials/settings there - switch
CACHE_BACKEND
with 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
/po
and/dbs
are owned and writeable by the apache user, probablypootle/settings.py
too. - once it all works, switch
DEBUG
inlocalconfig.py
to False
todo: verification things are working, cron jobs, nagios checks, etc.
You might also want to look into tips for Pootle optimisation].