# 🚲 Radweltreise-Blog Statische Website (kein PHP, keine Datenbank) für ein Reisetagebuch mit Gesamtroute auf einer Karte. Gebaut mit [Astro](https://astro.build) + [Leaflet](https://leafletjs.com). - **Karte oben**, klein – Klick aufs Symbol (⤢) macht sie groß (Vollbild). - **Route** entsteht automatisch aus deinen **GPX-Dateien** (z. B. Komoot-Export). - **Foto-Marker** entstehen automatisch aus den **GPS-Daten (EXIF)** deiner Fotos. ## Lokal starten ```bash npm install npm run dev ``` Dann im Browser http://localhost:4321 öffnen. Produktions-Build (erzeugt den Ordner `dist/` mit fertigem HTML): ```bash npm run build npm run preview # zum lokalen Anschauen des Builds ``` ## Neuen Tagebucheintrag schreiben Lege eine Markdown-Datei in `src/pages/posts/` an, z. B. `src/pages/posts/2026-06-05-andorra.md`: ```markdown --- layout: ../../layouts/Base.astro title: Ankunft in Andorra date: 2026-06-05 --- # Ankunft in Andorra Text, Text, Text … ![Bildunterschrift](/photos/IMG_2042.jpg) ``` ## GPX-Strecke "hochladen" (Komoot & Co.) 1. In der App die Etappe als **GPX exportieren**. 2. Die Datei in den Ordner **`src/data/tracks/`** legen. Tipp: Dateinamen mit Datum beginnen (`2026-06-05-andorra.gpx`), dann ist die Reihenfolge automatisch korrekt. 3. Neu bauen / pushen (siehe unten). Fertig – die Linie hängt sich an die Route an. Es ist kein Upload-Formular nötig: "Hochladen" = Datei in den Ordner legen. Vom Handy unterwegs am einfachsten mit **Working Copy** (iOS) bzw. **Termux/MGit** (Android) per Git, oder mit einem **Syncthing/Nextcloud**-Ordner. ## Fotos mit Karten-Marker Original-Fotos (mit GPS im EXIF) in **`public/photos/`** ablegen. Beim Bauen werden Koordinaten + Aufnahmezeit ausgelesen und als Marker gesetzt. ⚠️ Nicht über Dienste schicken, die EXIF entfernen (z. B. WhatsApp). Die Originaldatei verwenden. ## Auf den eigenen Server bringen (Kurzfassung) Statische Dateien aus `dist/` werden von einem Webserver ohne PHP ausgeliefert. Empfehlung **Caddy** (automatisches HTTPS): ``` radweltreise.example.com { root * /var/www/radweltreise/dist file_server encode gzip } ``` Automatischer Rebuild bei Git-Push: einen `post-receive`-Hook im Bare-Repo auf dem Server `npm ci && npm run build` ausführen lassen. Sag Bescheid, dann richten wir das Schritt für Schritt ein.