README.md aktualisiert
This commit is contained in:
179
README.md
179
README.md
@@ -1,86 +1,107 @@
|
||||
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '1,20p'
|
||||
|
||||
|
||||
## Admin‑Zugang
|
||||
|
||||
|
||||
chatgpt-agent % bash -lc cat /home/oai/share/report.md | sed -n '121,140p'
|
||||
|
||||
|
||||
- Melde dich unter `/admin/login` an. Ein erster Admin‑Benutzer 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 Fallback‑Routenhandler.
|
||||
|
||||
|
||||
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 Queue‑Jobs nutzt (z. B. Newsletter‑Versand), richte einen Queue‑Worker 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 E‑Mail, 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, Meta‑Beschreibung und Keywords an dein Projekt an; sie werden auf der Startseite und den Kategorieseiten verwendet【490713492725882†L23-L47】. Aktualisiere auch die Social‑Links, 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. API‑Schlü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 Staging‑Umgebung, 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 Laravel‑Skeleton und steht unter der **MIT‑Lizenz**【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 Gitea‑Repository 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
|
||||
|
||||
Reference in New Issue
Block a user