Skip to content

CentralGPS/centralgps-nominatim

Repository files navigation

CentralGPS - Nominatim Docker (Nominatim version 3.4)

  1. Build

    docker build -t nominatim .
  2. Copy <your_country>.osm.pbf to a local directory (i.e. /home/me/nominatimdata)

  3. Initialize Nominatim Database

    docker run -t -v /home/your-user:/data centralgpsnominatim_centralgps-nominatim  sh /app/init.sh /data/paraguay-latest.osm.pbf postgresdata 4

    Where 4 is the number of threads to use during import. In general the import of data in postgres is a very time consuming process that may take hours or days. If you run this process on a multiprocessor system make sure that it makes the best use of it. You can delete the /home/me/nominatimdata/<your_country>.osm.pbf once the import is finished.

  4. After the import is finished the /home/me/nominatimdata/postgresdata folder will contain the full postgress binaries of a postgis/nominatim database. The easiest way to start the nominatim as a single node is the following:

    docker run --restart=always -p 7654:5432 -p 8088:8080 -d --name nominatim -v /home/me/nominatimdata/postgresdata:/var/lib/postgresql/11/main nominatim bash /app/start.sh
  5. Advanced configuration. If necessary you can split the osm installation into a database and restservice layer

    In order to set the nominatin-db only node:

    docker run --restart=always -p 7654:5432 -d -v /home/me/nominatimdata/postgresdata:/var/lib/postgresql/11/main nominatim sh /app/startpostgres.sh

    After doing this create the /home/me/nominatimdata/conf folder and copy there the docker/local.php file. Then uncomment the following line:

    @define('CONST_Database_DSN', 'pgsql://nominatim:password1234@192.168.1.128:7654/nominatim'); // <driver>://<username>:<password>@<host>:<port>/<database>

    You can start the nominatib-rest only node with the following command:

    docker run --restart=always -p 8088:8080 -d -v /home/me/nominatimdata/conf:/data nominatim sh /app/startapache.sh
  6. Configure incremental update. By default CONST_Replication_Url configured for Monaco. If you want a different update source, you will need to declare CONST_Replication_Url in local.php. Documentation here. For example, to use the daily country extracts diffs for Gemany from geofabrik add the following:

@define('CONST_Replication_Url', 'http://download.geofabrik.de/europe/germany-updates');

Now you will have a fully functioning nominatim instance available at : http://localhost:8088/. Unlike the previous versions this one does not store data in the docker context and this results to a much slimmer docker image.

Update

Full documentation for Nominatim update available here. For a list of other methods see the output of:

docker exec -it nominatim sudo -u postgres ./src/build/utils/update.php --help

The following command will keep your database constantly up to date:

docker exec -it nominatim sudo -u postgres ./src/build/utils/update.php --import-osmosis-all

If you have imported multiple country extracts and want to keep them up-to-date, have a look at the script in issue #60.

About

100% working container for Nominatim

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published