Nominatim installation

  1. Testing
  2. Requirements
    1. Planet mirrors
    2. Download an extract
  3. Install on Debian
    1. Setup
    2. Building and Configuration
    3. Setting up the webserver
    4. Import the database
  4. Install using docker
    1. Setup
    2. Clone the project
    3. Import the database
    4. Configure the environment file
    5. Start nominatim-docker

Testing

For testing purposes you could skip the nominatim installation and use one of these geocoding providers that run a server for free:


Requirements

From https://nominatim.org/release-docs/latest/admin/Installation/

“A minimum of 2GB of RAM is required or installation will fail. For a full planet import 128GB of RAM or more are strongly recommended. Do not report out of memory problems if you have less than 64GB RAM.”

Planet mirrors

There is a list of planet mirrors at https://wiki.openstreetmap.org/wiki/Planet.osm#Planet.osm_mirrors
There you can also find Country and area extracts, divided by Worldwide extract sources and Regional extract sources

Download an extract

For Nominatim to work, you need to import files in PBF Format in the PostGis database. Those files have extension *.osm.pbf.

Some of these mirrors provide also incremental updates via OsmChange, for example:

Do you need to host multiple areas? Checkout Osmium, to merge multiple PBF files into one.


Install on Debian

There is a detailed documentation for installing nominatim on Ubuntu 22 that should be valid also to install on Debian.

Setup

https://nominatim.org/release-docs/latest/appendix/Install-on-Ubuntu-22/#installing-the-required-software

Building and Configuration

Get the source code from Github and change into the source directory

cd $USERHOME
wget https://nominatim.org/release/Nominatim-4.2.0.tar.bz2
tar xf Nominatim-4.2.0.tar.bz2

The code must be built in a separate directory. Create this directory, then configure and build Nominatim in there:

mkdir $USERHOME/build
cd $USERHOME/build
cmake $USERHOME/Nominatim-4.2.0
make

Setting up the webserver

https://nominatim.org/release-docs/latest/appendix/Install-on-Ubuntu-22/#setting-up-a-webserver

Import the database

https://nominatim.org/release-docs/latest/admin/Import/


Install using docker

Setup

Make sure to have Docker Engine, Docker Compose and git installed:

sudo apt install docker docker-compose git

Clone the project

From https://github.com/mediagis/nominatim-docker

  • Clone the project from sources
    git clone git@github.com:mediagis/nominatim-docker.git
    cd nominatim-docker/4.2/contrib # released Nov 29, 2022
    docker-compose pull
    
  • Or, use the template at docs/docker/nominatim
    cd /opt/gancio/docs/docker/nominatim
    docker-compose pull
    

Import the database

See Requirements about downloading the .osm.pbf files

cd docs/docker/nominatim/
wget https://download.geofabrik.de/europe/italy/nord-ovest-latest.osm.pbf \
    ./nominatim/data/default.osm.pbf

Configure the environment file

cd docs/docker/nominatim/
cp .env.example .env

Create a random password for nominatim and add it to .env file

NOMINATIM_PASSWORD=$(echo random_password | openssl passwd --stdin);
sed -i -e 's/\(NOMINATIM_PASSWORD=\)\(.*\)/\1'$NOMINATIM_PASSWORD'/g' .env

Start nominatim-docker

Start your container:

docker-compose up -d

Checkout the logs to see when data are imported to the database:

docker-compose logs -f

Try out the search:

http://0.0.0.0:8080/search?q=building