diff --git a/.gitignore b/.gitignore index d2e0f90..e4427cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Datendateien – nicht im Repo (können mehrere GB groß sein) data/* +# Planetiler Build-Output (Host-Build, nicht auf dem Server) +build/ + # Laufzeit .env diff --git a/docker-compose.build.yml b/docker-compose.build.yml new file mode 100644 index 0000000..65faa8b --- /dev/null +++ b/docker-compose.build.yml @@ -0,0 +1,66 @@ +# Planetiler Build – Vektor-Tiles für höhere Zoom-Level +# +# LÄUFT AUF DEM HOST-RECHNER (nicht auf dem Server). +# Voraussetzung: Docker Desktop (macOS/Windows) oder Docker Engine (Linux) +# +# ══════════════════════════════════════════════════════════════════════ +# SCHRITT 1: Build starten +# ══════════════════════════════════════════════════════════════════════ +# +# # Germany z0-16 (~12 GB Output, ~2h, 8 GB RAM) +# AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up +# +# # Austria z0-16 (~2 GB Output, ~20min, 4 GB RAM) +# AREA=austria MAX_ZOOM=16 RAM=4g docker compose -f docker-compose.build.yml up +# +# # Europe z0-16 (~80 GB Output, ~12h, 16 GB RAM) +# AREA=europe MAX_ZOOM=16 RAM=16g docker compose -f docker-compose.build.yml up +# +# Status verfolgen (zweites Terminal): +# docker compose -f docker-compose.build.yml logs -f +# +# ══════════════════════════════════════════════════════════════════════ +# SCHRITT 2: Ergebnis auf Server übertragen +# ══════════════════════════════════════════════════════════════════════ +# +# rsync -avh --progress \ +# ./build/.mbtiles \ +# rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-.mbtiles +# +# ══════════════════════════════════════════════════════════════════════ +# SCHRITT 3: Martin auf dem Server neu starten +# ══════════════════════════════════════════════════════════════════════ +# +# ssh rd13server@192.168.178.6 \ +# "cd /mnt/services-data/rd13_tile_server && docker compose restart martin" +# +# # Neue Source prüfen: +# curl https://tiles.rd13server.de/catalog | grep osm- +# +# ══════════════════════════════════════════════════════════════════════ +# UMGEBUNGSVARIABLEN (Defaults) +# ══════════════════════════════════════════════════════════════════════ +# AREA = germany (germany | austria | switzerland | europe | planet) +# MAX_ZOOM = 16 (14 = Planet-Level, 16 = Detail) +# RAM = 8g (Java Heap: 8g für DE, 16g für EU) + +services: + planetiler-build: + image: ghcr.io/onthegomap/planetiler:latest + container_name: rd13_planetiler_build + volumes: + - ./build:/data + environment: + - JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g} + command: + - "--download" + - "--area=${AREA:-germany}" + - "--output=/data/${AREA:-germany}.mbtiles" + - "--maxzoom=${MAX_ZOOM:-16}" + - "--force" + restart: "no" + deploy: + resources: + limits: + cpus: "${BUILD_CPUS:-8.0}" + memory: ${BUILD_MEM:-12g} diff --git a/docs/ADMIN.md b/docs/ADMIN.md index 3297793..5de51af 100644 --- a/docs/ADMIN.md +++ b/docs/ADMIN.md @@ -61,6 +61,36 @@ curl -s http://localhost:9982/osm | jq . curl -s "http://localhost:9983/osm-intl/0/0/0.png" > /tmp/test.png && file /tmp/test.png ``` +### Höhere Zoom-Level bauen (auf Host-Rechner, nicht auf dem Server) + +Planetiler läuft in einem eigenen Container auf dem **Host-Rechner** (MacBook, Desktop-PC +etc.) mit genug RAM. Das Ergebnis wird per `rsync` auf den Server übertragen. + +```bash +# Auf dem HOST-RECHNER ausführen (nicht auf dem Server): +cd /path/to/rd13_tile_server + +# Germany z0-16 (~12 GB, ~2h, 8 GB RAM) +AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up + +# Europe z0-16 (~80 GB, ~12h, 16 GB RAM) +AREA=europe MAX_ZOOM=16 RAM=16g docker compose -f docker-compose.build.yml up + +# Fertige Datei auf Server übertragen (resume-fähig via rsync): +rsync -avh --progress \ + ./build/germany.mbtiles \ + rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-germany.mbtiles + +# Martin auf dem Server neu starten: +ssh rd13server@192.168.178.6 \ + "cd /mnt/services-data/rd13_tile_server && docker compose restart martin" + +# Neue Source prüfen: +curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep osm-germany +``` + +Output liegt lokal unter `./build/.mbtiles` (gitignored). + ### Satellit-Tiles herunterladen (einmalig, ~38 GB, ~24h) Der Download läuft in einem eigenen Container – vollständig unabhängig von