Deprecated! - See osm-tasking-manager2
CSS Python JavaScript
Latest commit 03474f4 Jul 19, 2014 @pgiraud pgiraud deprecation announce



This repo is now deprecated in favor of osm-tasking-manager2

OpenStreetMap Tasking Manager


OSMTM enables collaborative work on specific areas in OpenStreetMap by defining clear workflows to be achieved and by breaking tasks down into pieces.

The application is written in Python using the Pylons framework.


OSMTM has a set of dependencies that you need to install first.

On debian systems you can do:

sudo apt-get install build-essential protobuf-compiler libprotobuf-dev libgeos-dev python-dev

On OS X you can do:

brew install protobuf geos


First clone the git repository:

git clone git://

Update and load the submodules:

cd osm-tasking-manager
git submodule update --init

Installing OSMTM in a Virtual Python environment is recommended.

To create a virtual Python environment:

tar xvzf virtualenv-1.8.tar.gz
python virtualenv-1.8/ --distribute --no-site-packages env
rm -rf distribute-0.6.28.tar.gz
rm -rf virtualenv-1.8*
source env/bin/activate

To install OSMTM from source (the only option at this point) in the virtual Python environment execute the script:

python install

Edit the development.ini file and change the admin_user variable to match your OSM username.


To run OSMTM the easiest is to use pserve:

pserve --reload development.ini

Installation as a mod_wsgi Application

Edit the production.ini file and change the admin_user variable to match your OSM username.

Install and enable mod_wsgi module in Apache:

sudo apt-get install libapache2-mod-wsgi

Create a new Apache config file with the following:

# Use only 1 Python sub-interpreter.  Multiple sub-interpreters
# play badly with C extensions.
WSGIPassAuthorization On
WSGIDaemonProcess OSMTM_process user=ubuntu group=ubuntu processes=1 \
   threads=4 \
WSGIScriptAlias /OSMTM /home/ubuntu/osm-tasking-manager/env/OSMTM.wsgi
WSGIRestrictStdin Off

<Location /OSMTM>
    WSGIProcessGroup OSMTM_process
    WSGIApplicationGroup %{GLOBAL}

You may need to adpat the user, group and paths values.

Create a new OSMTM.wsgi in your virtual env directory with the following:

import sys
sys.stdout = sys.stderr

from pyramid.paster import get_app
application = get_app(
    '/home/ubuntu/osm-tasking-manager/production.ini', 'main')

You can then test config and restart Apache. Your application should be available at http://host.domain/OSMTM

You may also need to enable CORS. See Add the following to your virtual hosts:

Header set Access-Control-Allow-Origin "*"


The CSS stylesheet are compiled using less. Launch the following command as soon as you change the css:

lessc OSMTM/static/css/main.less > OSMTM/static/css/main.less.min.css

Run Tests

To ensure your build is working properly run the tests (in active virtual env):


Upgrade notes

Database versions are now managed using Alembic. The following commands should help upgrading the database.

Don't forget to make copies of your db file before running any upgrade.:

alembic upgrade head

Note: Please contact the maintainer if you encounter problems.