# 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