Overpass

De Wiki de Geonov

Overpass est une API permettant d'interroger des données OSM.

1 Installation d'un serveur Overpass (Debian)

1.1 Création d'un utilisateur système spécifique

sudo adduser overpass --system --shell /bin/bash --group

1.2 Création des répertoires

sudo mkdir -p "/opt/osm-3s/database/"
sudo mkdir "/opt/osm-3s/replicate/"
sudo mkdir "/opt/osm-3s/logs/"
sudo chown overpass:overpass -R /opt/osm-3s

1.3 Téléchargement et compilation d'Overpass

1.3.1 Téléchargement

sudo wget https://dev.overpass-api.de/releases/osm-3s_v0.7.56.9.tar.gz -P /usr/local/src/
sudo tar -xvf /usr/local/src/osm-3s_v0.7.56.9.tar.gz -C /usr/local/src/
sudo chown overpass:overpass -R /usr/local/src/osm-3s_v0.7.56.9

1.3.2 Compilation et installation

cd /usr/local/src/osm-3s_v0.7.56.9
sudo -u overpass ./configure CXXFLAGS="-O2" --prefix=/opt/osm-3s/osm-3s_v0.7.56.9
sudo apt-get install -y g++ make expat libexpat1-dev zlib1g-dev
sudo -u overpass make
sudo -u overpass make install

1.4 Installation et configuration d'Apache

1.4.1 Installation

sudo apt-get install -y apache2 libapache2-mod-auth-openidc python-certbot-apache
sudo a2enmod cgid
sudo a2enmod ext_filter
sudo a2enmod headers
sudo a2enmod setenvif
sudo a2enmod rewrite

1.4.2 Configuration

Fichier de configuration "/etc/apache2/sites-available/000-default.conf" :

<VirtualHost *:80>
	ServerName nom_de_domaine
	ServerAdmin mail_de_contact
	DocumentRoot /var/www/html
	DirectoryIndex index.html interpreter
	ExtFilterDefine gzip mode=output cmd=/bin/gzip
	ScriptAlias /api /opt/osm-3s/osm-3s_v0.7.56.9/cgi-bin/
	LogLevel error
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	<Directory "/opt/osm-3s/osm-3s_v0.7.56.9/cgi-bin/">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Require all granted
	</Directory>
</VirtualHost>

Note : le domaine "nom_de_domaine" lié à l'adresse IP du serveur doit être configuré dans les DNS du domaine.

1.4.3 Service

Activation et redémarrage du service :

sudo systemctl enable apache2
sudo systemctl restart apache2

1.4.4 Pare-feu (Nftables)

inet filter input tcp dport {80,443} ct state new,established accept
inet filter output tcp sport {80,443} ct state established accept

1.4.5 Certificat Let's Encrypt

sudo certbot -d nom_de_domaine --apache -n --agree-tos --email mail_de_contact
sudo certbot enhance -d nom_de_domaine -n --redirect --apache --cert-name nom_de_domaine

Note : le renouvellement automatique est mis en place dans "/etc/cron.d/certbot".

1.5 Clonage des données mondiales

Avant de pouvoir utiliser l'API, il faut charger les données OSM.

1.6 Documentation

https://wiki.openstreetmap.org/wiki/Overpass_API/Installation