How to Install Nominatim on Debian Latest
Nominatim is a free and open-source tool that provides world-wide address lookup services. It can be used to convert addresses into geographic coordinates, to find nearby points of interest, and to adjust OpenStreetMap data.
In this tutorial, we will go through the steps to install Nominatim on Debian Latest.
Prerequisites
Before we start with the installation, make sure you have the following:
- Debian Latest installed
- At least 4GB of RAM (although 8GB or more is recommended)
- A quad-core processor
- An internet connection
Step 1: Update your system
The first step is to make sure your system is up-to-date.
sudo apt update
sudo apt upgrade
Step 2: Install dependencies
Next, you need to install some dependencies required for Nominatim.
sudo apt install build-essential cmake g++ libboost-dev libboost-system-dev \
libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev libbz2-dev \
libpq-dev libproj-dev postgresql-server-dev-12 postgresql-12-postgis-3 \
postgresql-contrib-12
Step 3: Create a new user
Since Nominatim requires a lot of resources to run, it is recommended that you create a new user specifically for it.
sudo adduser nominatim
Step 4: Download and build Nominatim
Login with the new user by running the following command:
sudo su nominatim
Now clone the Nominatim repository and build it:
git clone https://github.com/osm-search/Nominatim.git
cd Nominatim
mkdir build
cd build
cmake ..
make
Note: The build process can take several hours, depending on the resources of your system.
Step 5: Configure PostgreSQL
Next, you need to create a new PostgreSQL user and database for Nominatim.
sudo su postgres
createuser -s nominatim
createdb -O nominatim nominatim
exit
Step 6: Import data
You can now import data into the Nominatim database. This can be done by downloading a data dump from the Nominatim website or by creating your own from OpenStreetMap data.
wget https://nominatim.org/data/country_grid.sql.gz
gunzip country_grid.sql.gz
psql -d nominatim -f country_grid.sql
Note: The import process can take a few hours, depending on the size of the data.
Step 7: Configure Nominatim
Copy the Nominatim configuration file:
cp ../settings/local.php.sample ../settings/local.php
Edit the local.php file with your specific settings. For example, to set the website name:
@define('CONST_WebsiteName', 'My Nominatim');
Step 8: Start Nominatim
You can now start Nominatim by running the following command:
./utils/setup.php --create-website /var/www/nominatim
This will create a new website in the /var/www/nominatim directory.
Conclusion
In this tutorial, you learned how to install Nominatim on Debian Latest. You can now use Nominatim to provide address lookup services for your applications.