|
|
||
|---|---|---|
| .. | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Makefile | ||
| README.md | ||
| setup.sh | ||
| STATE.md | ||
Redax-WP
KI-gestützter WordPress-Redakteur — selbst gehostet, Docker-basiert, template-ready.
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.
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 |
Schnellstart
# 1. Repository klonen
git clone https://github.com/Orbitalo/Redax-Wordpress.git mein-blog
cd mein-blog
# 2. Setup starten (interaktiv)
chmod +x setup.sh
./setup.sh
Das Setup-Skript erledigt automatisch:
.envmit zufälligen Passwörtern generieren- Docker Stack starten (MySQL + WordPress + Dashboard)
- WordPress installieren (6.9+)
- Blocksy Theme + Yoast SEO installieren
- Kategorien & Navigationsmenü anlegen
- WordPress Application Password für die REST-API generieren
Danach: API-Keys in .env eintragen und make restart ausführen.
Voraussetzungen
| Software | Version |
|---|---|
| Docker | 24+ |
| Docker Compose | 2.x |
| Freie Ports | 80 (WordPress), 8080 (Dashboard) |
| Betriebssystem | Linux (Debian/Ubuntu empfohlen) |
Konfiguration
cp .env.example .env
nano .env # Pflichtfelder ausfüllen
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) |
MYSQL_ROOT_PASSWORD |
MySQL Root-Passwort |
MYSQL_PASSWORD |
MySQL Benutzer-Passwort |
Optionale Felder (Telegram)
| Variable | Beschreibung |
|---|---|
TELEGRAM_BOT_TOKEN |
Bot-Token von @BotFather |
TELEGRAM_CHANNEL_ID |
Kanal-ID für Artikel-Teaser |
TELEGRAM_REVIEWER_IDS |
Chat-IDs für Fehler-Alarm (kommagetrennt) |
Befehle
make help # Alle Befehle anzeigen
make start # Stack starten
make stop # Stack stoppen
make restart # Dashboard neustarten (nach .env-Änderung)
make logs # Live-Logs aller Container
make logs-web # Nur Dashboard-Logs
make status # Container-Status anzeigen
make shell-web # Shell im Dashboard-Container
make shell-db # MySQL-Shell öffnen
make backup # Datensicherung → ./backups/
make update # Docker-Images aktualisieren
make clean # Alle Daten löschen (Vorsicht!)
WP-CLI
# Beliebige WP-CLI Befehle ausführen:
make wp plugin list
make wp user list
make wp cache flush
make wp post list
Architektur
┌─────────────────────────────────────────────────────┐
│ Docker Stack │
│ │
│ ┌────────────────┐ ┌─────────────────────────┐ │
│ │ redax-web │ │ redax-wordpress │ │
│ │ Flask :8080 │◄──►│ Apache/PHP :80 │ │
│ │ Dashboard │ │ WordPress 6.9+ │ │
│ └──────┬─────────┘ └────────────┬────────────┘ │
│ │ │ │
│ └──────────────┬────────────┘ │
│ ▼ │
│ ┌───────────────┐ │
│ │ redax-db │ │
│ │ MySQL 8 :3306│ │
│ └───────────────┘ │
└──────────────────────┬──────────────────────────────┘
│ │
▼ ▼
https://redax. https://blog.
example.com example.com
(Dashboard) (Blog)
Öffentlicher Zugang via Cloudflare Tunnel
Für öffentliche Erreichbarkeit ohne offene Firewall-Ports:
- Cloudflare Zero Trust → Networks → Tunnels → Create
- Tunnel 1 (Dashboard):
- Public Hostname:
redax.example.com - Service:
http://localhost:8080
- Public Hostname:
- Tunnel 2 (Blog):
- Public Hostname:
blog.example.com - Service:
http://localhost:80
- Public Hostname:
- Den
docker run cloudflare/cloudflared ...-Befehl aus dem CF-Dashboard ausführen
Verzeichnisstruktur
redax-wp/
├── setup.sh ← Automatisches Ersteinrichtungs-Skript
├── Makefile ← Komfort-Befehle
├── docker-compose.yml ← Docker Stack Definition
├── .env.example ← Konfigurationsvorlage
├── README.md ← Diese Datei
├── .gitignore ← .env, data/, logs/ ausgeschlossen
└── src/
├── app.py ← Flask Dashboard (Haupt-App)
├── database.py ← SQLite Datenbankschicht
├── wordpress.py ← WordPress REST API Client
├── 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
Datensicherung
make backup
# → Erstellt: ./backups/redax-wp-YYYYMMDD_HHMMSS.tar.gz
# Enthält: MySQL-Daten, WordPress-Dateien, SQLite-DB, .env
Lizenz
MIT — frei verwendbar, anpassbar und weitergabe erlaubt.
Entwickelt von
Orbitalo — Homelab & Automatisierungsprojekte