Redax-WP (Redakteur): - WordPressMirrorClient: Multi-Publish an mehrere WP-Instanzen - Target-Toggles im Dashboard (Checkbox, server-side rendering) - WP-Admin Direktzugang via socat-Proxy (bypass Cloudflare WAF) - Drag & Drop im Redaktionsplan - Artikel-Karten mit Titel + SEO-Snippet sichtbar - Entwürfe ohne Datum in separater Sektion - DB-Cleanup-Job (Sonntag 03:00 Uhr) - openrouter.py: sync generate() Wrapper - mirror_posts Tabelle in DB ESP32-Serie (Arakava News): - Teil 1 veröffentlicht (Post 1209) - Teil 2 als WP-Entwurf erstellt (Post 1340) - Animiertes Hydraulikschema (SVG, 4 Betriebsmodi) in Teil 2 eingebaut - Hardware liegt in DE, Einbau ab April nach Kambodscha-Rückkehr Doku: - STATE.md Redax-WP vollständig aktualisiert - STATE.md Arakava-News: Serie-Status + Hardware-Timeline Made-with: Cursor
125 lines
4.1 KiB
Markdown
125 lines
4.1 KiB
Markdown
# STATE: Redax-WP
|
|
**Stand: 28.02.2026**
|
|
|
|
---
|
|
|
|
## Status
|
|
|
|
✅ **Vollständig in Betrieb — 28.02.2026**
|
|
|
|
---
|
|
|
|
## Infrastruktur
|
|
|
|
| CT | Dienst | Host | IP | Status |
|
|
|----|--------|------|----|--------|
|
|
| 113 | Redax-WP Dashboard | pve-hetzner | 10.10.10.113 | ✅ Läuft |
|
|
| 113 | WordPress (DeutschlandBlog) | pve-hetzner | 10.10.10.113 | ✅ Läuft |
|
|
|
|
---
|
|
|
|
## Zugangsdaten
|
|
|
|
| Dienst | URL | Login |
|
|
|--------|-----|-------|
|
|
| Dashboard | https://redax.orbitalo.net | admin / astral66 |
|
|
| Arakava News (Primary) | https://arakava-news-2.orbitalo.net | — |
|
|
| Arakava News WP-Admin | https://arakava-news-2.orbitalo.net/wp-admin | admin / astral66 |
|
|
| Arakava News App PW | (REST API) | XPKjaHFiYb8LOo16BeRL3huF |
|
|
| DeutschlandBlog (Mirror) | https://deutschlandblog.orbitalo.net | — |
|
|
| DeutschlandBlog WP-Admin | https://deutschlandblog.orbitalo.net/wp-admin | admin / Redax2026! |
|
|
| DeutschlandBlog App PW | (REST API) | YJ7L4CFAxDPszGLXpamJmzl6 |
|
|
|
|
---
|
|
|
|
## Multi-Publish Architektur
|
|
|
|
```
|
|
WordPressMirrorClient (wordpress.py)
|
|
├── Primary: arakava-news-2.orbitalo.net (WP_URL)
|
|
└── Mirror 1: deutschlandblog.orbitalo.net (WP_MIRROR_URL)
|
|
|
|
Beim Publish (job_publish_due):
|
|
1. Artikel wird auf Primary veröffentlicht
|
|
2. Duplikat-Check auf Mirror (Titel-Vergleich vor dem Post)
|
|
3. Mirror erhält denselben Artikel
|
|
4. Ergebnis in mirror_posts Tabelle gespeichert
|
|
5. Dashboard zeigt Mirror-Status pro Artikel
|
|
|
|
Erweiterbar: WP_MIRROR2_URL, WP_MIRROR2_ENABLED, ... (bis Mirror9)
|
|
```
|
|
|
|
---
|
|
|
|
## .env Konfiguration (CT 113: /opt/redax-wp/.env)
|
|
|
|
| Variable | Wert |
|
|
|----------|------|
|
|
| `WP_URL` | `https://arakava-news-2.orbitalo.net` |
|
|
| `WP_USERNAME` | `admin` |
|
|
| `WP_APP_PASSWORD` | `XPKjaHFiYb8LOo16BeRL3huF` |
|
|
| `WP_ADMIN_PASSWORD` | `astral66` |
|
|
| `WP_MIRROR_URL` | `https://deutschlandblog.orbitalo.net` |
|
|
| `WP_MIRROR_USERNAME` | `admin` |
|
|
| `WP_MIRROR_APP_PASSWORD` | `YJ7L4CFAxDPszGLXpamJmzl6` |
|
|
| `WP_MIRROR_ADMIN_PASSWORD` | `Redax2026!` |
|
|
| `WP_MIRROR_ENABLED` | `true` |
|
|
| `OPENROUTER_API_KEY` | gesetzt |
|
|
| `DB_PATH` | `/data/redax.db` |
|
|
|
|
---
|
|
|
|
## Stack auf CT 113
|
|
|
|
```
|
|
Docker Container:
|
|
redax-db MySQL 8.0
|
|
redax-wordpress WordPress 6.9.1 + Apache (DeutschlandBlog)
|
|
redax-web Flask/Gunicorn Dashboard (Port 8080)
|
|
cloudflared Tunnel für redax.orbitalo.net
|
|
cloudflared-wp Tunnel für deutschlandblog.orbitalo.net
|
|
```
|
|
|
|
---
|
|
|
|
## Dashboard Features
|
|
|
|
| Feature | Beschreibung |
|
|
|---------|-------------|
|
|
| Artikel-Studio | KI-Generierung via OpenRouter (Ton wählbar) |
|
|
| WP-Entwurf | Artikel direkt als Draft auf Primary pushen + Vorschau-Link |
|
|
| Redaktionsplan | 7-Tage-Kalender mit Status, Umplanen, Löschen |
|
|
| Multi-Publish | Beim Veröffentlichen: Primary + alle aktiven Mirrors |
|
|
| Publish-Ziele | Checkboxen zum Ein-/Ausschalten pro Mirror + Links zu Website & WP-Admin + Zugangsdaten |
|
|
| Mirror-Status | Pro Artikel: welche Sites wurden bespielt (✅/❌) |
|
|
| RSS-Queue | Feed-Artikel verwalten, KI-Rewrite, Auto-Publish |
|
|
| Duplikat-Schutz | Mirror überspringt Artikel die bereits vorhanden sind |
|
|
|
|
---
|
|
|
|
## Changelog
|
|
|
|
### 28.02.2026
|
|
- Multi-Publish implementiert: `WordPressMirrorClient` in `wordpress.py`
|
|
- `mirror_posts` Tabelle in SQLite für Mirror-Tracking
|
|
- `job_publish_due` publiziert auf Primary + alle aktiven Mirrors
|
|
- Publish-Ziele im Dashboard: Checkboxen zum Ein/Ausschalten (per DB-Setting)
|
|
- Links zu Website + WP-Admin + Zugangsdaten direkt sichtbar im Dashboard
|
|
- `WP_ADMIN_PASSWORD` + `WP_MIRROR_ADMIN_PASSWORD` in `.env` ergänzt
|
|
- Arakava News WP-Admin Passwort auf `astral66` gesetzt
|
|
- Test: Beide Targets erreichbar bestätigt
|
|
|
|
### 27.02.2026
|
|
- WordPress 6.9.1 auf DeutschlandBlog installiert (Update)
|
|
- Blocksy Theme + Companion Plugin installiert
|
|
- Yoast SEO installiert
|
|
- Cloudflare Tunnel für WordPress eingerichtet
|
|
- WP Application Passwords generiert (beide Sites)
|
|
- WP-Draft Push: Artikel als Entwurf in WP speichern + Vorschau-Link im Dashboard
|
|
- Redakteur mit Arakava News (CT 101) verbunden
|
|
|
|
### 26.02.2026
|
|
- CT 113 auf pve-hetzner erstellt
|
|
- Docker Stack deployed (MySQL + WordPress + Flask + cloudflared)
|
|
- Dashboard unter redax.orbitalo.net erreichbar
|
|
- Login-Seite eingerichtet
|