Tirex is a bunch of tools that let you run a tile server. A tile server is a web server that hands out pre-rendered map raster images to clients.
The web page for Tirex is at http://wiki.openstreetmap.org/wiki/Tirex . See there for more information.
You'll need the following Perl modules to run Tirex:
- IPC::ShareLite (Debian/Ubuntu: libipc-sharelite-perl)
- JSON (Debian/Ubuntu: libjson-perl)
- GD (Debian/Ubuntu: libgd-gd2-perl)
- LWP (Debian/Ubuntu: libwww-perl)
You'll need a C++ compiler and build tools to compile the Mapnik backend.
To build Tirex run
make
in the main directory. This will compile the mapnik backend and create the man pages for the Perl modules.
Call 'make clean' to cleanup after a 'make'.
To install Tirex call
make install
as root user. This will install the main parts of Tirex including the tirex-master, tirex-backend-manager and the Mapnik backend.
This will not install the example map, or the munin or nagios plugins. To install those, call
make install-example-map
make install-munin
make install-nagios
respectively. You can also install everything with
make install-all
Geofabrik maintains backports of Tirex on it's github fork.
| OS | Branch |
|---|---|
| Ubuntu 24.04.2 LTS (Noble Numbat) | geofabrik/noble |
| Ubuntu 22.04.2 LTS (Jammy Jellyfish) | geofabrik/jammy |
To build these backports, clone the repo, switch to the branch and call:
gbp buildpackage --git-pbuilder --git-ignore-branch --git-dist=DIST
(e.g. … --git-dist=noble).
This will produce files like tirex_0.8.0-1~geofabriknoble1_amd64.deb
The Debian GIS Team's guide to Packaging with Git, explains how to set up a build environment, and create a cowbuilder environment.
Geofabrik makes no guarantee that the backport(s) will work for the duration that the OS release is supported upstream.
To create Debian/Ubuntu packages you need the package 'devscripts' installed. Call
make deb
to create the packages. The following packages will be created in the parent directory:
tirex
Call 'make deb-clean' to cleanup after a 'make deb'.
This package is also maintained in Debian by the Debian GIS Team.
Call 'prove' in the main directory to run Perl unit tests. You need Test::More (Debian/Ubuntu: libtest-simple-perl) and Test::Harness (Debian/Ubuntu: libtest-harness-perl) installed.
There are some other tests in the 'test' directory. See the description at the beginning of the scripts for information on how to use them.
Tirex is intended to be a drop-in replacement for renderd. It maintains
and processes a rendering queue and stores its output in a metatile directory
structure on disk. (Other storage backends are not supported.) In order to
use this to run a tile server, you will also need mod_tile to publish the tiles,
as well as a data source for the backend to produce tiles from. The standard
rendering backend is backend_mapnik which works with the mapnik library,
and you will usually run that with an openstreetmap-carto map style pointed
to an OpenStreetMap database populated with osm2pgsql - although Tirex
itself is data source agnostic and you can use with without something other
than OpenStreetMap if you wish.
In a running system you will usually have one instance of tirex-master that
controls the rendering queue, and one instance of tirex-backend-manager
that starts up backends as needed. The utility tirex-status allows you
to watch what is going on with the queue, and tirex-batch can be used
to enqueue render jobs. (In a standard tile server setup, tirex-batch
would likely be used once initially to pre-render some tiles, but later
render requests would come from mod_tile which is not part of Tirex.)
Tirex has a global configuration file in /etc/tirex/tirex.conf,
then one renderer config file per rendering backend in /etc/tirex/renderer/$NAME_OF_BACKEND.conf
and, if the backend supports multiple maps, one map config file per map in
/etc/tirex/renderer/$NAME_OF_BACKEND/$NAME_OF_MAP.conf.
https://wiki.openstreetmap.org/wiki/Tirex/Config has details about the available configuration options.