README.md aktualisiert

This commit is contained in:
2026-01-07 16:04:55 +01:00
parent 6b81f91959
commit 4af606bcc1

179
README.md
View File

@@ -1,86 +1,107 @@
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '1,20p'
## AdminZugang
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '121,140p'
- Melde dich unter `/admin/login` an. Ein erster AdminBenutzer kann via `php artisan tinker` erstellt werden:
```php
\App\Models\User::create([
'name' => 'Admin',
'username' => 'admin',
'email' => 'admin@example.com',
'password' => bcrypt('geheim'),
'status' => \App\UserStatus::Active,
]);
```
- Nach dem Login stehen Dashboard, Beitragsverwaltung, Kategorien, Slider und Einstellungen zur Verfügung【260995794809889†L45-L90】. Beachte, dass nur Benutzer mit der Rolle *SuperAdmin* Einstellungen ändern dürfen【716868813219956†L69-L79】.
## Deployment (Produktion)
1. **Server vorbereiten** Installiere PHP ≥ 8.2, Composer, Node.js und einen Webserver (Apache/Nginx). Konfiguriere den Webserver so, dass das `public`Verzeichnis als Root dient und `index.php` als FallbackRoutenhandler.
2. **Umgebungsvariablen setzen** Setze `APP_ENV=production` und `APP_DEBUG=false`. Passe `APP_URL` an deine Domain an und konfiguriere die Mail und Datenbankvariablen.
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '141,160p'
3. **Caches & Optimierung** Führe vor jedem Release aus:
```bash
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
npm run build
```
4. **Jobs & Cron** Wenn das Projekt QueueJobs nutzt (z.B. NewsletterVersand), richte einen QueueWorker via Supervisor oder systemd ein und plane den Scheduler (`php artisan schedule:run`) per Cron.
## Troubleshooting & Tipps
- **Lange Dateinamen unter Windows** Git kann unter Windows Probleme mit sehr langen Dateipfaden haben (z.B. bei hochgeladenen Bildern). Aktiviere lange Pfade mit `git config --global core.longpaths true`. Benenne Dateien möglichst kurz, wenn beim Commit Fehler wie „Filename too long“ auftreten.
- **Uploads und Rechte** Achte darauf, dass `storage/` und `bootstrap/cache/` für den Webserver schreibbar sind (Berechtigungen 775 oder 777 je nach Setup). Profilbilder und Logos werden direkt im `public/images`Verzeichnis gespeichert【716868813219956†L98-L148】【716868813219956†L169-L178】.
- **Newsletter** Abonnenten erhalten nur dann eine EMail, wenn ein Post als sichtbar (`visibility = 1`) markiert wird【277929543452449†L347-L349】【277929543452449†L360-L381】. Überprüfe, ob dein Mailserver korrekt konfiguriert ist und Mails versendet werden.
- **SEO** Passe in den Einstellungen Titel, MetaBeschreibung und Keywords an dein Projekt an; sie werden auf der Startseite und den Kategorieseiten verwendet【490713492725882†L23-L47】. Aktualisiere auch die SocialLinks, damit Buttons korrekt funktionieren【587727673959283†L34-L50】.
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '161,180p'
## Sicherheitshinweise
- **Schütze geheime Schlüssel** Die `.env`Datei sollte nie in das Repository eingecheckt werden; stattdessen umgebungsabhängig auf dem Server hinterlegt werden. APISchlüssel und Passwörter dürfen nicht in der Versionskontrolle landen.
- **Updates** Halte Laravel und die verwendeten Pakete aktuell (`composer update` und `npm update`). Teste Updates in einer StagingUmgebung, bevor du sie produktiv einsetzt.
- **Backups** Lege regelmäßige Datenbank und Dateibackups an, insbesondere für `storage/app/public` und die Datenbank.
## Lizenz
Die Anwendung basiert auf dem LaravelSkeleton und steht unter der **MITLizenz**【156200196044006†L53-L58】. Weitere Details findest du in der `LICENSE`Datei des Projekts.
# Fitnessblog
**Fitnessblog** ist ein Laravel-basiertes Blog-System für Fitness-/Lifestyle-Content mit öffentlichem Frontend und einem Admin-Backend zur Verwaltung von Beiträgen, Kategorien, Slider und Website-Einstellungen.
---
## Überblick
Diese Dokumentation fasst den aktuellen Stand des Projekts zum **7. Januar 2026** zusammen. Bei Änderungen im Repository sollten die genannten Versionsanforderungen und Funktionen aktualisiert werden. Bei offenen Fragen oder Problemen können Issues im GiteaRepository erstellt werden.
Das Projekt stellt eine klassische Blog-Struktur bereit:
- **Frontend**: Blog-Startseite, Beiträge nach Kategorien/Tags/Autoren, Suche, Kontaktformular
- **Backend (Admin)**: Login/Passwort-Reset, Dashboard, Beitragsverwaltung, Kategorien, Slider, Settings, Newsletter-Versand
chatgpt-agent %
---
## Tech-Stack
### Backend
- **Framework:** Laravel (Projekt nutzt moderne Laravel-Struktur)
- **Sprache:** PHP (empfohlen **PHP >= 8.2**)
- **Datenbank:** MySQL/MariaDB (alternativ PostgreSQL/SQLite möglich)
- **E-Mail:** Custom SMTP-Konfiguration über `CMAIL_*` (für Kontakt & Newsletter)
- **Queues/Jobs:** Newsletter-Versand erfolgt über Queue-Jobs (falls Worker aktiv)
### Frontend
- **Build Tool:** Vite
- **CSS:** Tailwind CSS
- **HTTP/AJAX:** Axios
### Verwendete Pakete (Auszug)
- **SEO:** `artesaos/seotools` (Meta-Tags, OpenGraph, Twitter Cards)
- **Sitemap:** `spatie/laravel-sitemap` (Sitemap-Generierung)
- **Slugs:** `cviebrock/eloquent-sluggable` (sprechende URLs)
- **Bildbearbeitung:** `intervention/image` (Thumbnails/Resizes)
- **Dateimanager:** `barryvdh/laravel-elfinder` (Medienverwaltung)
- **UI:** Livewire (interaktive Komponenten)
- **Mail:** `phpmailer/phpmailer`
- **Image Crop:** `sawastacks/kropify-laravel` (z.B. Profil/Logo-Zuschnitt)
---
## Features
### Frontend (öffentlich)
- **Startseite** mit SEO-Informationen aus den Einstellungen
- **Kategorien-Ansicht** (Posts nach Kategorie)
- **Autor-Seiten** (Posts nach Autor)
- **Tag-Seiten** (Posts nach Tags)
- **Suche** nach Beiträgen
- **Startseiten-Slider** (Slides aus dem Backend)
- **Sidebar-Widgets**
- Neueste Beiträge
- Kategorien mit Beitragsanzahl
- Tag-Übersicht
- **Lesedauer-Anzeige** (automatisch berechnet)
- **Kontaktformular** (`/contact`) inkl. Mailversand
- **Sitemap** (`/sitemap.xml`)
### Admin-Backend
- **Login** und **Passwort-Reset** (Token-basiert)
- **Dashboard** mit Kennzahlen (Posts/Tags/Newsletter-Abonnenten)
- **Beitragsverwaltung**
- Erstellen/Bearbeiten/Löschen
- Bild-Upload pro Beitrag
- Automatische Bild-Generierung:
- Thumbnail (z.B. 250×250)
- Resized Preview (z.B. 512×320)
- SEO-Felder (Meta Keywords/Description, strukturierte Daten)
- Sichtbarkeit (Draft/Published)
- **Kategorien & Unterkategorien**
- **Slider-Verwaltung** (Bilder/Reihenfolge/Status)
- **Settings**
- Seitentitel / Meta-Description / Keywords
- Site-E-Mail
- Social Links
- Logo & Favicon Upload
- **Profil**
- Profilbild Upload (ersetzt vorheriges Bild)
- **Newsletter**
- Abonnenten-Verwaltung
- Optionaler Versand an alle Abonnenten beim Veröffentlichen eines Posts
---
## Installation (lokal)
### Voraussetzungen
- PHP >= 8.2
- Composer
- Node.js (LTS) + npm
- Datenbank (z.B. MariaDB/MySQL)
- Git
### Setup
```bash
git clone ssh://git@git.magicpotter.at:2222/Magicpotter/Fitnessblog.git
cd Fitnessblog
composer install
npm install
php artisan key:generate
php artisan migrate
php artisan storage:link
npm run dev
# oder: npm run build