Instalar y Optimizar un Servidor de Teselas OpenStreetMap en Ubuntu 24.04 LTS

Evaluez cet article !
[Total: 0 Moyenne : 0]

Alojar sus propios mosaicos OSM garantiza independencia, rendimiento y conformidad con el RGPD. Esta guía condensada va más allá de los tutoriales clásicos: cubre la instalación, los ajustes de rendimiento, la seguridad, las actualizaciones en tiempo real, el monitoreo y abre camino a los mosaicos vectoriales.

1. Requisitos previos y dimensionamiento del hardware

¿Por qué? Dimensionar correctamente evita ralentizaciones durante la importación y garantiza un renderizado fluido.

  • Ubuntu 24.04 LTS actualizado (kernel 6.8).
  • 16 GB de RAM mínimo (Francia); 64 GB para Europa; 128 GB para el planeta.
  • SSD NVMe ≥ 1 TB para la importación + caché.
  • CPU con 8 hilos o más (osm2pgsql multihilo).

2. Instalación paso a paso

2.1 Instalar los paquetes

¿Por qué? Estos paquetes constituyen la pila de renderizado (Apache, mod_tile, renderd) y la base espacial (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 Crear la base PostGIS

¿Por qué? La base gis almacena los datos OSM y sirve a 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 Descargar el estilo openstreetmap-carto

¿Por qué? Es el estilo “estándar” de OSM, listo para todas las regiones.

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 Importar los datos OSM

¿Por qué? Poblar la base con sus datos regionales.

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 Configurar renderd y Apache

¿Por qué? Vincular el motor de renderizado al servidor HTTP.

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

[renderd]

Lire aussi  Guía completa para comenzar con Namso-Gen: instalación, configuración y primeras generaciones

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

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

3. Optimizaciones

¿Por qué? Reducir el tiempo de renderizado y aumentar el rendimiento.

  • PostgreSQL: shared_buffers=RAM/4, work_mem=128MB.
  • Pre-renderizado de zooms 0-12: render_list -a -z 0 -Z 12.
  • Caché HTTP mediante Cache-Control: max-age=31536000.

4. Seguridad y copias de seguridad

¿Por qué? Proteger sus datos y el servicio.

  • UFW: abrir solo 80/443, restringir 5432.
  • fail2ban en Apache.
  • TLS Let’s Encrypt: sudo certbot --apache --hsts.
  • Copias de seguridad: pg_dump -Fc gis | rclone copy - s3://bucket/.

5. Actualizaciones automáticas

¿Por qué? Mantener la base sincronizada con OSM.

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

6. Monitorización

¿Por qué? Anticipar problemas.

  • Munin: plugin renderd queue size.
  • Prometheus + Grafana para métricas y alertas.

7. Extensiones: vector tiles, Docker, Ansible

  • Tegola o TileServer-GL para teselas vectoriales.
  • Imagen Docker overv/openstreetmap-tile-server lista para usar.
  • Playbook Ansible para despliegue idempotente.

Última actualización: julio 2025.

Evaluez cet article !
[Total: 0 Moyenne : 0]
Julie - auteure Com-Strategie.fr

Julie – Auteure & Fondatrice

Étudiante en journalisme et passionnée de technologie, Julie partage ses découvertes autour de l’IA, du SEO et du marketing digital. Sa mission : rendre la veille technologique accessible et proposer des tutoriels pratiques pour le quotidien numérique.

Deja un comentario