Renamed from tilecache to "tileman": please re-config your git repository. This is OpenStreetMap "Tile-cache" and "Tile-server" recipe with Nginx and embeded Lua. A backend is Tirex, mapnik and PostGIS.
Shell Python Perl Makefile
Clone or download
Latest commit d3f901d Jan 19, 2015
Failed to load latest commit information.
bin fix conf reference error May 26, 2014
data add rate limit Jan 18, 2015
debian fix debian packaging Feb 2, 2014
etc update conf files Nov 4, 2013
lua-nginx-osm @ 0b2f3d2
neturl @ 258c3f6 fix neturl submodule reference Jan 31, 2014
nginx Merge pull request #52 from osmfj/limit_rate Jan 19, 2015
osmosis split osmosis install procedure into script Nov 4, 2013
test update for test Nov 4, 2013
.gitignore vagrant: gitignore local vagrant config Jul 28, 2013
.gitmodules fix submodule url to https not ssh Jan 31, 2014
.travis.yml travis: revert to postgre 9.1 Jan 31, 2014
Changelog fix debian packaging Feb 2, 2014 doc: fix conf filename in INSTALL Jul 8, 2013
Makefile add rate limit Jan 18, 2015 remove bitdeli batch May 26, 2014
Vagrantfile fix vagrant path Feb 1, 2014


Author: Hiroshi Miura, OpenStreetMap Foundation Japan

Here is a project to maintain tile cache/tile server. It uses following technologies.

  • Nginx Web server (tested on nginx v1.4.1 + lua-module 0.8.1) we provide PPA for ubuntu user. You need to select nginx-extras package. (need lua module > 0.8.1) or nginx-openresty.

  • Tirex, rendering backend 0.4.1

  • PostGIS 2.0/postgresql 9.1

  • osm2pgsql

  • osmosis (recommend v0.40 or later)

It is intended to run on Ubuntu 12.04.2 server but it may be useful for other platform and who want to run osm tile server.


Ver 1.4.1 Release: 3, Feb. 2014


Please see for up-to-date install instructions.

Also you can try it with Vagrant. Setup development environment using Vagrant


TileMan is distributed under GPLv3 license.


It is maintained by OpenStreetMap Foundation Japan.

Core developer: Hiroshi Miura Developers: Hal Seki


Nginx serves tile proxy. It returns disk cache and escalate to upstream servers when needed. Lua script included by Nginx controls local rendering. It is an asumption that postgis server has limited osm data in region.

Lua script retrive x/y/z parameter and check an existence of tile data. If it is out of area where the server provided, it goes upstream.

We need another script to maintain tile generation control. We can get expire.list as "Tile expire method" explaines when importing diff.osm.

Here is a typical configuration configration diagram

planet import

The directory updatedb has an incremental update script and primary load script for osm data. It is now defaults geofabrik data and also supposed to use data.


This distribution includes several tile images.

It can be used to replace some tiles, where some country law request to display specific name.

There are several places where multiple laws in countries requires incoherent rules, such as administration claims.

A nginx configuration, statictile provides a solution for these case. For details, please refer doc/statictile.ja.txt