Skip to content
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
Find file
Latest commit d3f901d @miurahr miurahr Merge pull request #52 from osmfj/limit_rate
add rate limit feature


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

Something went wrong with that request. Please try again.