rd13_tile_server/history/summary/PROJECT_CONTEXT.md

3.7 KiB
Raw Blame History

PROJECT_CONTEXT rd13_tile_server

Letzte Aktualisierung: 2026-06-10 Martin laeuft healthy, WebUI aktiv, MediaWiki integriert, Rate-Limiting-Anforderung aufgenommen


Projektziel

Selbst gehosteter Tile Server auf Basis von Martin (Rust), der für MediaWiki, Nextcloud, Home Assistant und andere Dienste Vektorkarten bereitstellt.


Stack

  • Tile Server: ghcr.io/maplibre/martin:latest
  • Port: 9982 extern → 3000 intern
  • Proxy: NPM (Nginx Proxy Manager) extern kein nginx-Sidecar
  • Daten: MBTiles/PMTiles in /data/
  • Git Remote: ssh://git@192.168.178.6:2222/cschulz/rd13_tile_server.git

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 (fuer naechsten Agenten)

  1. REQ-002 Rate Limiting im NPM UI eintragen (manuell):

    • Proxy-Host: https://tile.rd13server.dehttp://HOST:9982
    • Advanced Config: Rate-Limiting-Block aus docs/requirements/REQUIREMENTS.md einfügen
    • NPM Access List „LAN" für / und /catalog anlegen
  2. Satellit-Download starten (optional, ~10 GB, Zoom 010):

    tmux new-session -d -s rd13-sat -c /mnt/services-data/rd13_tile_server \
      'python3 scripts/download-satellite.py data/satellite.mbtiles 2>&1 | tee logs/satellite.log'
    
  3. NPM konfigurieren (manuell im NPM UI):

    • Proxy Host: http://HOST:9982
    • Advanced Config: add_header Cache-Control "public, max-age=86400, stale-while-revalidate=3600" always;

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

  • REQ-002 Rate Limiting NPM Advanced Config für tile.rd13server.de eintragen (Details: docs/requirements/REQUIREMENTS.md)
  • NPM Proxy-Host für tile.rd13server.de anlegen (manuell im NPM UI)
  • fail2ban optional konfigurieren (REQ-002 Schicht 3)
  • Satellit-Download (optional, REQ-005)
  • Hook-Verteilung auf alle Repos (install-hooks.sh)
  • Martin mit Satellit-Daten testen