Skip to content

woodpeck/tirex

 
 

Repository files navigation

Tirex Tile Rendering System

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.

Prerequisites

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.

Building

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'.

Installing

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

Debian & Ubuntu

git-buildpackage, cowbuilder & Backports

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.

Directly building

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'.

Packages in OS

This package is also maintained in Debian by the Debian GIS Team.

TESTS

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.

Using

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.

Components

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.)

Configuration

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.

About

Tirex tile queue manager. A drop-in replacement for renderd.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Perl 86.0%
  • C++ 8.9%
  • JavaScript 2.1%
  • Shell 1.5%
  • Makefile 1.5%