| deploy | ||
| public | ||
| src | ||
| .gitignore | ||
| astro.config.mjs | ||
| package.json | ||
| README.md | ||
🚲 Radweltreise-Blog
Statische Website (kein PHP, keine Datenbank) für ein Reisetagebuch mit Gesamtroute auf einer Karte. Gebaut mit Astro + Leaflet.
- 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
npm install
npm run dev
Dann im Browser http://localhost:4321 öffnen.
Produktions-Build (erzeugt den Ordner dist/ mit fertigem HTML):
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:
---
layout: ../../layouts/Base.astro
title: Ankunft in Andorra
date: 2026-06-05
---
# Ankunft in Andorra
Text, Text, Text …

GPX-Strecke "hochladen" (Komoot & Co.)
- In der App die Etappe als GPX exportieren.
- 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. - 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.