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'
|
# Fitnessblog
|
||||||
|
|
||||||
|
|
||||||
## 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** 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