Files
iwz/CLAUDE.md
T

102 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IWZ Ferienwohnungen – Projektkontext
## Was ist das?
Hugo-basierte statische Website als WordPress-Ersatz für www.iwz-ferienwohnungen.de.
Drei Ferienwohnungen in Kaufbeuren-Hirschzell / Allgäu.
## Stack
- **Static Site Generator**: Hugo (keine externe Abhängigkeit, einzelne .exe)
- **Hosting**: Bunny.net (Bunny CDN / Storage Zone, kostenpflichtig nach Traffic)
- **DNS**: Bunny.net DNS oder weiterhin IONOS (siehe Umzug-Notizen, ggf. anzupassen)
- **Domain-Registrar**: IONOS (bleibt so)
- **Buchungskalender**: webplanner.de (externer Dienst, per Link eingebunden)
- **Git**: eigene Gitea-Instanz (kein GitHub/GitLab, kein CI/CD-Workflow)
- **Deploy**: manuell per `deploy.bat` oder `deploy.py` → `hugo --gc --minify` + Upload nach Bunny.net Storage Zone (per Bunny-API/FTP, analog zum Ansatz in `.github/workflows/deploy.yml`-Vorlage, aber lokal statt als GitHub Action)
## Projektstruktur
```
iwz/
├── hugo.toml # Konfiguration: baseURL, Menü, Kontaktdaten (Params)
├── deploy.bat # Windows: hugo build + wrangler deploy
├── deploy.py # Python-Alternative zum deploy.bat
├── content/
│ ├── _index.md # Startseite
│ ├── preise.md # Preistabelle + Buchungsbedingungen
│ ├── ausflugsziele.md
│ ├── kontakt.md
│ ├── impressum.md # PLATZHALTER – echte Daten eintragen!
│ ├── datenschutz.md # PLATZHALTER – rechtskonform ersetzen!
│ └── ferienwohnungen/
│ ├── _index.md
│ ├── fewo1.md # 45 qm, bis 4 Pers., 60 €/Nacht
│ ├── fewo2.md # 40 qm, bis 3 Pers., 55 €/Nacht
│ └── fewo3.md # 56 qm, bis 5 Pers., 100 €/Nacht
├── layouts/ # Hugo-Templates (kein externes Theme!)
│ ├── index.html # Startseite: Hero, Highlights, FeWo-Karten
│ ├── _default/
│ │ ├── baseof.html # Basis-Template (nav + footer)
│ │ ├── single.html # Standard-Einzelseite
│ │ └── list.html # Listenansicht (Ferienwohnungen-Übersicht)
│ ├── ferienwohnungen/
│ │ └── single.html # FeWo-Detailseite: Galerie + Buchungsbutton
│ └── partials/
│ ├── head.html # <meta>, CSS-Link
│ ├── nav.html # Navigation (mobil-responsive)
│ └── footer.html # Footer mit Kontakt + Links
└── static/
├── css/style.css # Reines CSS, CSS Variables, Dark Mode
├── js/main.js # Nur mobiles Menü-Toggle
└── images/ # Fotos hier ablegen
```
## Frontmatter der FeWo-Seiten
Jede `fewoX.md` hat folgende Felder:
```yaml
groesse: "45 qm"
personen: 4
preis: 60
belegungsplan: "https://www.webplanner.de/XXXXXX/fewo1"
bilder:
- "/images/fewo1_wohnzimmer.jpg"
- "/images/fewo1_kueche.jpg"
```
## Noch offen / TODO
- [x] Echte webplanner.de-URLs in fewo1/2/3.md eintragen (`belegungsplan`)
- [x] Fotos in `static/images/` ablegen + in fewoX.md verlinken
- [x] Telefon, E-Mail, Adresse in `hugo.toml` unter `[params]` eintragen
- [x] `content/impressum.md` mit echten Pflichtangaben füllen
- [x] `content/datenschutz.md` durch rechtskonforme Version ersetzen
- [x] Bunny.net-Account anlegen + Storage Zone für die Seite erstellen
- [x] Bunny Storage-Passwort besorgen, sicher hinterlegen (`.env`, nicht ins Git)
- [x] `deploy.bat` / `deploy.py` um Upload zur Bunny Storage Zone erweitern (FTP, Port 21, passiv)
- [ ] Bunny Pull Zone / CDN vor die Storage Zone schalten (Auslieferung + HTTPS)
- [ ] Domain-Anbindung an Bunny klären (DNS bei IONOS auf Bunny zeigen lassen, oder DNS zu Bunny umziehen)
## Lokaler Dev-Server
```powershell
hugo server
# → http://localhost:1313
```
## Deploy
Deploy läuft lokal per Skript (kein CI/CD, da Repo bei Gitea liegt). Referenz für den Bunny-Upload-Schritt ist die Vorlage `.github/workflows/deploy.yml` (GitHub-Actions-Syntax), deren Build- und Deploy-Logik 1:1 in `deploy.bat`/`deploy.py` nachgebaut wird:
```powershell
hugo --gc --minify
# danach: Upload von ./public zur Bunny.net Storage Zone
# (Storage Zone Name + API-Key/Storage-Passwort als Secrets/env, nicht im Git)
# Bei jeder Änderung:
deploy.bat
# oder:
python deploy.py
```