Installer & Optimiser un Serveur de Tuiles OpenStreetMap sur Ubuntu 24.04 LTS

Héberger ses propres tuiles OSM garantit indépendance, performance et conformité RGPD. Ce guide condensé va plus loin que les tutoriels classiques : il couvre l’installation, les réglages de performance, la sécurité, les mises à jour temps réel, le monitoring et ouvre sur les tuiles vectorielles.

1. Pré‑requis & sizing matériel

Pourquoi ? Dimensionner correctement évite les ralentissements lors de l’import et garantit un rendu fluide.

  • Ubuntu 24.04 LTS à jour (kernel 6.8).
  • 16 Go RAM min (France) ; 64 Go pour l’Europe ; 128 Go pour la planète.
  • SSD NVMe ≥ 1 To pour l’import + cache.
  • CPU 8 threads+ (osm2pgsql multithread).

2. Installation pas à pas

2.1 Installer les paquets

Pourquoi ? Ces paquets constituent la pile de rendu (Apache, mod_tile, renderd) et la base spatiale (PostgreSQL 16 + PostGIS 3.4).

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 libapache2-mod-tile renderd git wget unzip bzip2 \
  postgresql postgresql-16-postgis-3 postgresql-16-postgis-3-scripts \
  python3-mapnik mapnik-utils gdal-bin lua5.1 npm node-carto osm2pgsql

2.2 Créer la base PostGIS

Pourquoi ? La base gis stocke les données OSM et sert Mapnik.

sudo -u postgres createuser _renderd
sudo -u postgres createdb -E UTF8 -O _renderd gis
sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis; CREATE EXTENSION hstore;"

2.3 Télécharger le style openstreetmap‑carto

Pourquoi ? C’est le style “standard” OSM, prêt pour toutes régions.

git clone https://github.com/gravitystorm/openstreetmap-carto ~/src/osm-carto
cd ~/src/osm-carto && npm install -g carto
carto project.mml > mapnik.xml

2.4 Importer les données OSM

Pourquoi ? Peupler la base avec vos données régionales.

wget -P ~/data https://download.geofabrik.de/europe/france/alsace-latest.osm.pbf
sudo -u _renderd osm2pgsql -d gis --create --slim -G --hstore \
  --tag-transform-script ~/src/osm-carto/openstreetmap-carto.lua \
  -C 75% --number-processes $(nproc) \
  -S ~/src/osm-carto/openstreetmap-carto.style \
  ~/data/alsace-latest.osm.pbf

2.5 Configurer renderd & Apache

Pourquoi ? Lier le moteur de rendu au serveur HTTP.

sudo tee /etc/renderd.conf >/dev/null <<EOF

[renderd]

Lire aussi  Guide complet pour configurer votre messagerie Bbox Mail sur Outlook et Gmail

num_threads=$(nproc) tile_dir=/var/lib/mod_tile stats_file=/run/renderd/stats

[default]

URI=/osm/ XML=/home/$USER/src/osm-carto/mapnik.xml HOST=localhost TILESIZE=256 EOF sudo systemctl enable –now renderd apache2

Test : http://IP/osm/0/0/0.png

3. Optimisations

Pourquoi ? Réduire le temps de rendu et accroître le débit.

  • PostgreSQL : shared_buffers=RAM/4, work_mem=128MB.
  • Pré‑rendu des zooms 0‑12 : render_list -a -z 0 -Z 12.
  • Cache HTTP via Cache-Control: max-age=31536000.

4. Sécurité & sauvegardes

Pourquoi ? Protéger vos données et le service.

  • UFW : n’ouvrir que 80/443, restreindre 5432.
  • fail2ban sur Apache.
  • TLS Let’s Encrypt : sudo certbot --apache --hsts.
  • Backups : pg_dump -Fc gis | rclone copy - s3://bucket/.

5. Mises à jour automatiques

Pourquoi ? Garder la base en phase avec OSM.

sudo -u _renderd osm2pgsql-replication init -d gis \
  --osm-file ~/data/alsace-latest.osm.pbf
# systemd timer toutes les 5 min

6. Monitoring

Pourquoi ? Anticiper les problèmes.

  • Munin : plugin renderd queue size.
  • Prometheus + Grafana pour métriques et alertes.

7. Extensions : vector tiles, Docker, Ansible

  • Tegola ou TileServer‑GL pour tuiles vectorielles.
  • Image Docker overv/openstreetmap-tile-server prête à l’emploi.
  • Playbook Ansible pour déploiement idempotent.

Dernière mise à jour : juillet 2025.

Laisser un commentaire