rd13_tile_server/history/summary/PROJECT_CONTEXT.md

4.9 KiB
Raw Blame History

PROJECT_CONTEXT rd13_tile_server

Letzte Aktualisierung: 2026-06-12 Architektur-Entscheidung: Martin + tileserver-gl für Vektor + Raster. ADR-001 dokumentiert. PNG-Rendering für Kartographer nun planbar.


Projektziel

Selbst gehosteter Tile Server für MediaWiki (Kartographer), Nextcloud, Home Assistant. Stack: Martin (Vektor-API) + tileserver-gl (Raster PNG für Clients). Tile-Updates manuell 24×/Jahr; Styles anpassbar.


Stack (Architektur ADR-001)

  • Vektor-API: ghcr.io/maplibre/martin:latest (Port 9982 extern → 3000 intern)
  • Raster-Renderer: ghcr.io/maptiler/tileserver-gl (NEU Port 8080 lokal, via NPM zu /osm-intl)
  • Proxy: NPM (Nginx Proxy Manager) extern SSL-Termination, Rate Limiting
  • Daten: /data/ osm.mbtiles (Vektor), fonts/, styles/ (Rendering-Definitionen)
  • Git Remote: ssh://git@192.168.178.6:2222/cschulz/rd13_tile_server.git

Architektur-Decision: Martin + tileserver-gl

Rationale: siehe ADR-001

Komponente Rolle Input Output
Martin Vektor-Tile-API osm.mbtiles /osm/{z}/{x}/{y}.pbf
tileserver-gl Raster-Renderer Martin PBF + Styles /osm-intl/{z}/{x}/{y}.png
NPM Proxy + Rate Limit Requests HTTPS mit Cache-Headers

Kartographer-URL bleibt gleich:

  • $wgKartographerMapServer = 'https://tiles.rd13server.de'
  • Style osm-intl (Raster)

Aktueller Zustand

Laufende Services

  • Martin-Container: laeuft und ist healthy
  • WebUI: aktiviert ueber --webui enable-for-all

Vorhandene Daten in /data/

Datei/Ordner Status
osm.mbtiles wird von Martin erkannt (Source osm)
fonts/ installiert
styles/ vorhanden
satellite.mbtiles noch nicht heruntergeladen

Git-Stand

  • Branch: main
  • Letzter Commit: 0a5f6cd - WebUI aktiviert und MediaWiki-Integration vorbereitet
  • Noch offen (lokal): docs/mediawiki-config.php

Nächste Schritte (Sprint 2026-06-19)

Ziel: Kartographer rendert PNG statt PBF-Vektor

  1. docker-compose.yml erweitern

    • tileserver-gl Service hinzufügen (ghcr.io/maptiler/tileserver-gl)
    • Mount /data/styles/, /data/fonts/, /data/sprites/
    • Port: 8080 lokal (nur intern, nicht exposed)
  2. Style osm-intl vorbereiten

    • Baseline MapLibre GL Style (JSON) in /data/styles/osm-intl.json
    • Quelle: Martin PBF unter http://martin:3000/osm
    • Fonts: /fonts/, Sprites: /sprites/
  3. NPM Proxy-Routing konfigurieren

  4. MediaWiki LocalSettings testen

  5. REQ-002 Rate Limiting (aus REQUIREMENTS.md)

    • NPM Advanced Config: limit_req_zone, limit_conn_zone, 429 status

Offene Aufgaben

Bekannte Fallstricke

  • data/tmp/ und data/sources/ werden von Docker als root erstellt → sudo rm -rf nötig
  • Planetiler braucht sehr viel Disk (87 GB sources + 264 GB tmp + ~70 GB output = ~420 GB) → Nicht mehr nötig, wir nutzen OpenFreeMap MBTiles direkt
  • Fish Shell unterstützt kein heredoc << 'EOF' → Python open().write() oder tee verwenden
  • Download von OpenFreeMap: wget --continue für Resume-Support bei Abbruch

Erledigte Aufgaben

  • Git-Repo initialisiert und auf Forgejo gepusht
  • Migration TileServer-GL → Martin
  • nginx-Sidecar entfernt (NPM extern)
  • Port auf 9982 geändert
  • copilot-instructions auf aktuelles Template aktualisiert
  • download-data.sh + download-satellite.py erstellt
  • History-System (post-commit Hook + _session.md Konvention) in rd13_copilot_setup implementiert
  • Docs für MediaWiki, Nextcloud, Home Assistant erstellt
  • Planet-MBTiles Download gestartet (OpenFreeMap, 94 GB)
  • Martin WebUI aktiviert (--webui enable-for-all)
  • Endpunkte verifiziert (/health, /catalog, Root 200)
  • MediaWiki-Kartographer Doku in docs/mediawiki-config.php erweitert
  • MediaWiki-Repo auf Martin umgestellt und committed
  • Rate-Limiting-Anforderungen in docs/requirements/REQUIREMENTS.md aufgenommen

Offene Aufgaben

  • Raster-Rendering für Kartographer (Sprint 2026-06-19)
    • tileserver-gl in docker-compose.yml
    • Style osm-intl.json vorbereiten
    • NPM Routing /osm-intl/{z}/{x}/{y}.png
    • MediaWiki testen
  • REQ-002 Rate Limiting NPM Advanced Config für tiles.rd13server.de
  • NPM Proxy-Host für tiles.rd13server.de anlegen (manuell im NPM UI)
  • fail2ban optional konfigurieren (REQ-002 Schicht 3)
  • Satellit-Download (optional, REQ-005)
  • Martin mit Satellit-Daten testen