redax-wp: Projekt vorläufig abgeschlossen

Made-with: Cursor
This commit is contained in:
root 2026-02-27 11:06:09 +07:00
parent 62f6e393b9
commit a2658c6673
2 changed files with 123 additions and 98 deletions

View file

@ -5,7 +5,7 @@
## Status ## Status
✅ **Rohzustand läuft — Basis-Setup abgeschlossen** 🏁 **Vorläufig abgeschlossen — 27.02.2026**
--- ---

View file

@ -1,9 +1,24 @@
# Redax-WP # Redax-WP
KI-gestützter WordPress-Redakteur mit Dashboard, RSS-Feed-Integration und Telegram-Anbindung. > KI-gestützter WordPress-Redakteur — selbst gehostet, Docker-basiert, template-ready.
**Was ist Redax-WP?** Redax-WP ist ein vollständiges Redaktionssystem aus **WordPress + einem Flask-Dashboard**. Es generiert KI-Artikel, importiert RSS-Feeds und veröffentlicht automatisch in WordPress und optional auf Telegram.
Ein selbst gehostetes System aus WordPress + einem Flask-Dashboard, das KI-Artikel generiert, einplant und veröffentlicht. RSS-Feeds können automatisch importiert werden. KI-Artikel landen in WordPress **und** Telegram, RSS-Artikel nur in WordPress.
---
## Was kann Redax-WP?
| Feature | Beschreibung |
|---------|-------------|
| ✍️ KI-Artikel | Artikel per KI generieren (OpenRouter / GPT-4o, Claude, Mistral...) |
| 📰 RSS-Import | Feeds automatisch importieren, prüfen und veröffentlichen |
| 📅 Redaktionskalender | 7-Tage-Planung mit Drag & Drop |
| 🔍 Yoast SEO | SEO-Titel, Meta-Beschreibung, Focus-Keyword direkt im Editor |
| 📲 Telegram | KI-Artikel als Teaser auf Telegram posten |
| ⏰ Morgen-Briefing | Tägliche Zusammenfassung um 10:00 Uhr |
| 🚨 Fehler-Alarm | Sofortbenachrichtigung bei Veröffentlichungsfehlern |
| 🗂️ Kategorie-Routing | KI-Artikel → WordPress + Telegram / RSS-Artikel → nur WordPress |
| 🐳 Docker | Kompletter Stack per Docker Compose |
--- ---
@ -11,21 +26,23 @@ Ein selbst gehostetes System aus WordPress + einem Flask-Dashboard, das KI-Artik
```bash ```bash
# 1. Repository klonen # 1. Repository klonen
git clone https://github.com/DEIN_USER/redax-wp mein-blog git clone https://github.com/Orbitalo/Redax-Wordpress.git mein-blog
cd mein-blog cd mein-blog
# 2. Interaktives Setup starten # 2. Setup starten (interaktiv)
chmod +x setup.sh chmod +x setup.sh
./setup.sh ./setup.sh
``` ```
Das Setup-Skript erledigt automatisch: Das Setup-Skript erledigt automatisch:
- `.env` generieren (mit zufälligen Passwörtern) - `.env` mit zufälligen Passwörtern generieren
- Docker Stack starten - Docker Stack starten (MySQL + WordPress + Dashboard)
- WordPress installieren (6.9+) - WordPress installieren (6.9+)
- Blocksy Theme + Yoast SEO installieren - Blocksy Theme + Yoast SEO installieren
- Kategorien & Navigation anlegen - Kategorien & Navigationsmenü anlegen
- Application Password für REST-API generieren - WordPress Application Password für die REST-API generieren
**Danach:** API-Keys in `.env` eintragen und `make restart` ausführen.
--- ---
@ -36,22 +53,41 @@ Das Setup-Skript erledigt automatisch:
| Docker | 24+ | | Docker | 24+ |
| Docker Compose | 2.x | | Docker Compose | 2.x |
| Freie Ports | 80 (WordPress), 8080 (Dashboard) | | Freie Ports | 80 (WordPress), 8080 (Dashboard) |
| Betriebssystem | Linux (Debian/Ubuntu empfohlen) |
--- ---
## Manuelle Konfiguration ## Konfiguration
Falls `setup.sh` nicht verwendet wird:
```bash ```bash
cp .env.example .env cp .env.example .env
# .env anpassen nano .env # Pflichtfelder ausfüllen
docker compose up -d --build
``` ```
### Pflichtfelder
| Variable | Beschreibung |
|----------|-------------|
| `DASHBOARD_USER` | Login für das Redax-WP Dashboard |
| `DASHBOARD_PASSWORD` | Passwort für das Dashboard |
| `WP_URL` | Öffentliche URL des WordPress-Blogs |
| `WP_USERNAME` | WordPress Admin-Benutzername |
| `WP_APP_PASSWORD` | WordPress Application Password (auto via setup.sh) |
| `OPENROUTER_API_KEY` | API-Key für KI-Generierung ([openrouter.ai](https://openrouter.ai)) |
| `MYSQL_ROOT_PASSWORD` | MySQL Root-Passwort |
| `MYSQL_PASSWORD` | MySQL Benutzer-Passwort |
### Optionale Felder (Telegram)
| Variable | Beschreibung |
|----------|-------------|
| `TELEGRAM_BOT_TOKEN` | Bot-Token von [@BotFather](https://t.me/BotFather) |
| `TELEGRAM_CHANNEL_ID` | Kanal-ID für Artikel-Teaser |
| `TELEGRAM_REVIEWER_IDS` | Chat-IDs für Fehler-Alarm (kommagetrennt) |
--- ---
## Nützliche Befehle ## Befehle
```bash ```bash
make help # Alle Befehle anzeigen make help # Alle Befehle anzeigen
@ -60,22 +96,22 @@ make stop # Stack stoppen
make restart # Dashboard neustarten (nach .env-Änderung) make restart # Dashboard neustarten (nach .env-Änderung)
make logs # Live-Logs aller Container make logs # Live-Logs aller Container
make logs-web # Nur Dashboard-Logs make logs-web # Nur Dashboard-Logs
make status # Container-Status make status # Container-Status anzeigen
make shell-web # Shell im Dashboard make shell-web # Shell im Dashboard-Container
make shell-db # MySQL-Shell make shell-db # MySQL-Shell öffnen
make backup # Datensicherung nach ./backups/ make backup # Datensicherung ./backups/
make update # Docker-Images aktualisieren make update # Docker-Images aktualisieren
make clean # Alle Daten löschen (Vorsicht!)
``` ```
--- ### WP-CLI
## WP-CLI Befehle
```bash ```bash
# Beliebige WP-CLI Befehle ausführen: # Beliebige WP-CLI Befehle ausführen:
make wp plugin list make wp plugin list
make wp user list make wp user list
make wp cache flush make wp cache flush
make wp post list
``` ```
--- ---
@ -83,21 +119,22 @@ make wp cache flush
## Architektur ## Architektur
``` ```
┌─────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────
│ Docker Stack │ │ Docker Stack │
│ │ │ │
│ ┌──────────────┐ ┌───────────────────────┐ │ │ ┌────────────────┐ ┌─────────────────────────┐ │
│ │ redax-web │ │ redax-wordpress │ │ │ │ redax-web │ │ redax-wordpress │ │
│ │ Flask :8080 │◄──►│ Apache/PHP :80 │ │ │ │ Flask :8080 │◄──►│ Apache/PHP :80 │ │
│ └──────┬───────┘ └──────────┬────────────┘ │ │ │ Dashboard │ │ WordPress 6.9+ │ │
│ └──────┬─────────┘ └────────────┬────────────┘ │
│ │ │ │ │ │ │ │
│ └──────────┬────────────┘ │ │ └──────────────┬────────────┘ │
│ ▼ │ │ ▼ │
──────────────┐ │ ┌───────────────┐ │
│ │ redax-db │ │ │ │ redax-db │ │
│ │ MySQL :3306│ │ │ MySQL 8 :3306│ │
──────────────┘ │ └───────────────┘ │
└─────────────────────────────────────────────────┘ └──────────────────────┬──────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
https://redax. https://blog. https://redax. https://blog.
@ -107,80 +144,68 @@ make wp cache flush
--- ---
## Cloudflare Tunnel einrichten ## Öffentlicher Zugang via Cloudflare Tunnel
Für öffentliche Erreichbarkeit ohne offene Ports: Für öffentliche Erreichbarkeit ohne offene Firewall-Ports:
1. [Cloudflare Zero Trust](https://one.dash.cloudflare.com) → Networks → Tunnels → Create 1. **[Cloudflare Zero Trust](https://one.dash.cloudflare.com)** → Networks → Tunnels → Create
2. **Tunnel 1** (Dashboard): 2. **Tunnel 1** (Dashboard):
- Hostname: `redax.example.com` - Public Hostname: `redax.example.com`
- Service: `http://localhost:8080` - Service: `http://localhost:8080`
3. **Tunnel 2** (Blog): 3. **Tunnel 2** (Blog):
- Hostname: `blog.example.com` - Public Hostname: `blog.example.com`
- Service: `http://localhost:80` - Service: `http://localhost:80`
4. Docker-Befehle aus Cloudflare kopieren und ausführen 4. Den `docker run cloudflare/cloudflared ...`-Befehl aus dem CF-Dashboard ausführen
--- ---
## Nach dem Setup ## Verzeichnisstruktur
### Pflichtfelder nachträglich setzen
Nach dem Setup unbedingt in `.env` eintragen:
```bash
nano .env
# OPENROUTER_API_KEY=sk-or-v1-...
# TELEGRAM_BOT_TOKEN=...
# TELEGRAM_CHANNEL_ID=...
make restart # Änderungen übernehmen
```
### WordPress konfigurieren
- **WP-Admin:** `https://blog.example.com/wp-admin`
- Kategorien umbenennen: WP-Admin → Beiträge → Kategorien
- Yoast SEO einrichten: SEO → Allgemein
---
## Daten & Verzeichnisse
``` ```
redax-wp/ redax-wp/
├── data/ ├── setup.sh ← Automatisches Ersteinrichtungs-Skript
│ ├── mysql/ # MySQL-Datenbank (persistent) ├── Makefile ← Komfort-Befehle
│ ├── wordpress/ # WordPress-Dateien + Uploads ├── docker-compose.yml ← Docker Stack Definition
│ └── db/ # Redax-WP SQLite-Datenbank ├── .env.example ← Konfigurationsvorlage
├── logs/ # Anwendungs-Logs ├── README.md ← Diese Datei
├── src/ # Dashboard-Quellcode (Flask) ├── .gitignore ← .env, data/, logs/ ausgeschlossen
├── .env # Konfiguration (nicht ins Git!) └── src/
├── .env.example # Vorlage ├── app.py ← Flask Dashboard (Haupt-App)
├── docker-compose.yml ├── database.py ← SQLite Datenbankschicht
├── setup.sh # Automatisches Ersteinrichtungs-Skript ├── wordpress.py ← WordPress REST API Client
└── Makefile # Komfort-Befehle ├── rss_fetcher.py ← RSS Feed Import
├── logger.py ← Strukturiertes JSON-Logging
├── requirements.txt ← Python-Abhängigkeiten
├── Dockerfile.web ← Container-Definition
└── templates/ ← HTML-Templates (Jinja2)
├── base.html
├── index.html ← Studio / Editor
├── feeds.html ← RSS Feed-Verwaltung
├── history.html ← Veröffentlichungs-Historie
├── prompts.html ← KI-Prompt Bibliothek
├── settings.html ← Einstellungen
├── hilfe.html ← Hilfe-Seite
└── login.html
``` ```
--- ---
## Features ## Datensicherung
| Feature | Status | ```bash
|---------|--------| make backup
| KI-Artikel generieren (OpenRouter) | ✅ | # → Erstellt: ./backups/redax-wp-YYYYMMDD_HHMMSS.tar.gz
| WordPress REST API Integration | ✅ | # Enthält: MySQL-Daten, WordPress-Dateien, SQLite-DB, .env
| Yoast SEO Felder | ✅ | ```
| RSS Feed Import | ✅ |
| Redaktionskalender (7 Tage) | ✅ |
| Telegram Benachrichtigungen | ✅ |
| Morgen-Briefing (10:00 Uhr) | ✅ |
| Featured Image (og:image) | ✅ |
| Strukturierte Logs | ✅ |
| Multi-Reviewer Support | ✅ |
--- ---
## Lizenz ## Lizenz
MIT — frei verwendbar, anpassbar, weitergabe erlaubt. MIT — frei verwendbar, anpassbar und weitergabe erlaubt.
---
## Entwickelt von
[Orbitalo](https://github.com/Orbitalo) — Homelab & Automatisierungsprojekte