Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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.