diff --git a/docker-compose.build.yml b/docker-compose.build.yml
index 65faa8b..18faa7a 100644
--- a/docker-compose.build.yml
+++ b/docker-compose.build.yml
@@ -4,17 +4,28 @@
# Voraussetzung: Docker Desktop (macOS/Windows) oder Docker Engine (Linux)
#
# ══════════════════════════════════════════════════════════════════════
+# DISK-ANFORDERUNGEN (auf dem Host-Rechner)
+# ══════════════════════════════════════════════════════════════════════
+#
+# AREA=germany MAX_ZOOM=16: ~30 GB temp + ~12 GB output = ~50 GB frei
+# AREA=europe MAX_ZOOM=16: ~200 GB temp + ~80 GB output = ~350 GB frei
+# AREA=planet MAX_ZOOM=15: ~200 GB temp + ~80 GB output = ~350 GB frei
+# AREA=planet MAX_ZOOM=16: ~500 GB temp + ~300 GB output = ~900 GB frei
+#
+# ══════════════════════════════════════════════════════════════════════
# SCHRITT 1: Build starten
# ══════════════════════════════════════════════════════════════════════
#
-# # Germany z0-16 (~12 GB Output, ~2h, 8 GB RAM)
+# # Germany z0-16 (empfohlen als Einstieg)
# 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
+# # Planet z0-15 (~80 GB Output, ~8h, 28 GB RAM, ~350 GB Temp+Output Disk)
+# AREA=planet MAX_ZOOM=15 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
+# 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
+# # Planet z0-16 (~300 GB Output, ~15h, 28 GB RAM, ~900 GB Temp+Output Disk)
+# AREA=planet MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
+# docker compose -f docker-compose.build.yml up
#
# Status verfolgen (zweites Terminal):
# docker compose -f docker-compose.build.yml logs -f
@@ -23,8 +34,8 @@
# SCHRITT 2: Ergebnis auf Server übertragen
# ══════════════════════════════════════════════════════════════════════
#
-# rsync -avh --progress \
-# ./build/.mbtiles \
+# rsync -avh --progress --partial \
+# ./build/output/.mbtiles \
# rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-.mbtiles
#
# ══════════════════════════════════════════════════════════════════════
@@ -35,32 +46,31 @@
# "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)
+# curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep -i area
services:
planetiler-build:
image: ghcr.io/onthegomap/planetiler:latest
container_name: rd13_planetiler_build
volumes:
- - ./build:/data
+ # Output: fertige MBTiles
+ - ./build/output:/output
+ # Source-Cache: OSM-PBF wird hier gecacht (verhindert Re-Download bei Neustart)
+ - ./build/sources:/data/sources
+ # Temp: sehr viel Platz nötig (siehe Tabelle oben)
+ - ./build/tmp:/data/tmp
environment:
- - JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g}
+ - JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g} -Xms2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200
command:
- "--download"
- "--area=${AREA:-germany}"
- - "--output=/data/${AREA:-germany}.mbtiles"
+ - "--output=/output/${AREA:-germany}.mbtiles"
- "--maxzoom=${MAX_ZOOM:-16}"
+ - "--nodemap-type=sortedtable"
- "--force"
restart: "no"
deploy:
resources:
limits:
- cpus: "${BUILD_CPUS:-8.0}"
+ cpus: "${BUILD_CPUS:-4.0}"
memory: ${BUILD_MEM:-12g}
diff --git a/docs/ADMIN.md b/docs/ADMIN.md
index 5de51af..797b07a 100644
--- a/docs/ADMIN.md
+++ b/docs/ADMIN.md
@@ -66,30 +66,34 @@ curl -s "http://localhost:9983/osm-intl/0/0/0.png" > /tmp/test.png && file /tmp/
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.
+**Europa z16 (empfohlen):** ~280 GB Host-Disk, ~8–12h, 12 CPUs / 28 GB RAM
+
```bash
-# Auf dem HOST-RECHNER ausführen (nicht auf dem Server):
-cd /path/to/rd13_tile_server
+# Auf dem HOST-RECHNER ausführen (im geklonten Repo-Verzeichnis):
-# Germany z0-16 (~12 GB, ~2h, 8 GB RAM)
-AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up
+# Europa z0-16 (~80 GB Output, ~8-12h, ~280 GB Disk nötig)
+AREA=europe MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
+ 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
+# Germany z0-16 (kleiner Test: ~12 GB Output, ~2h, ~50 GB Disk)
+AREA=germany MAX_ZOOM=16 RAM=8g \
+ 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
+# Fertiges MBTiles auf Server übertragen (resume-fähig):
+rsync -avh --progress --partial \
+ ./build/output/europe.mbtiles \
+ rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-europe.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
+curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep osm-europe
```
-Output liegt lokal unter `./build/.mbtiles` (gitignored).
+Build-Output liegt lokal unter `./build/output/.mbtiles` (gitignored).
+Sources-Cache unter `./build/sources/` – bei Rebuild nicht löschen (spart Re-Download).
### Satellit-Tiles herunterladen (einmalig, ~38 GB, ~24h)
diff --git a/docs/history/prompts/2026-06-13_tile-raster-architecture_session.md b/docs/history/prompts/2026-06-13_tile-raster-architecture_session.md
index a3d2502..7f059d8 100644
--- a/docs/history/prompts/2026-06-13_tile-raster-architecture_session.md
+++ b/docs/history/prompts/2026-06-13_tile-raster-architecture_session.md
@@ -66,8 +66,29 @@ Lösung: eigenständiger Docker-Container für Downloads.
`docker-compose.download.yml` erstellt, Script mit `flush=True` robuster gemacht.
Überreste bereinigt: satellite.mbtiles (4 KB stub), satellite.mbtiles-shm/wal, satellite.log.
-### Prompt 10
-Starte nochmal alle neu ich habe nochmal etwas mehr Ressourcen bereitgestellt.
+### Prompt 11
+Lass uns gleich planet bauen wenn das geht. Und achte wieder auf Robustheit und Ressourcenverbrauch. Du kannst bis zu 12 CPUs und 32 GB RAM verwenden auf meinem Host-Rechner.
+
+### Antwort 11
+Disk-Analyse: Server hat 555 GB frei, Planet z16 bräuchte ~900 GB auf dem Host → nicht empfohlen.
+docker-compose.build.yml robuster gemacht: Volumes aufgeteilt (output/sources/tmp getrennt), `--nodemap-type=sortedtable` für weniger RAM, G1GC-JVM-Flags, Disk-Anforderungen in Kommentaren.
+
+### Prompt 12
+Ok dann lass uns das nur für Europa in z16 bauen. Wie viel wären es dann?
+
+### Antwort 12
+Europa z16: ~25 GB Sources + ~150 GB Temp + ~80 GB Output = ~280 GB auf Host. Server: +80 GB (555 GB frei → kein Problem). Buildzeit: ~8–12h mit 12 CPUs.
+
+### Prompt 13
+Ok ja so bauen wir es!
+
+### Antwort 13
+docker-compose.build.yml committed. Startbefehl für Host:
+```bash
+AREA=europe MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
+ docker compose -f docker-compose.build.yml up
+```
+
### Antwort 10
OOM-Ursache identifiziert: Script submittete alle 5,5 Mio Futures gleichzeitig in eine Liste → Memory-Spike beim Aufbau.
diff --git a/docs/history/summary/PROJECT_CONTEXT.md b/docs/history/summary/PROJECT_CONTEXT.md
index 0bac89e..6abaeaa 100644
--- a/docs/history/summary/PROJECT_CONTEXT.md
+++ b/docs/history/summary/PROJECT_CONTEXT.md
@@ -1,6 +1,6 @@
# PROJECT_CONTEXT – rd13_tile_server
-**Letzte Aktualisierung:** 2026-06-13 – Satellit-Download läuft stabil (16 Threads, 2GB RAM-Limit, OOM-Fix). Download-Container eigenständig.
+**Letzte Aktualisierung:** 2026-06-13 – Satellit-Download läuft (~372 MB, stabil). Europa z16 Build-Container vorbereitet für Host-Rechner.
---