Reiseblog mit CMS

This commit is contained in:
Burkhard Naumann 2026-05-30 00:09:33 +02:00
commit 7f820a6478
19 changed files with 600 additions and 0 deletions

81
README.md Normal file
View file

@ -0,0 +1,81 @@
# 🚲 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.