654276f6b570ab48a40e852829b7237b0b9d2a44
- Introduce a new period selection feature in the dashboard for generating newsletters, allowing users to choose between "last month" and "last X days." - Refactor newsletter generation logic to support filtering by article type (new, edited, or all) and improve the handling of filters in the dashboard. - Update the dashboard template to include new input fields for period and article type, enhancing user experience. - Improve CSS styles for send notifications and sections in the dashboard, providing clearer feedback on newsletter sending status.
TK Wiki Newsletter Admin
Produktionsnahes internes Tool zur Erstellung von Thomas-Krenn.AG Newslettern auf Basis der letzten Wiki-Änderungen.
Funktionen
- Login und Benutzerverwaltung mit RBAC (
admin,editor,reader) - Verpflichtender CSRF-Schutz auf allen POST-Formularen
- Filter in der Web-UI:
- Zeitraum in Tagen
- Nur bearbeitete Artikel
- Kategorie
- Redaktioneller Feinschliff pro Ausgabe:
- Redaktionsnotiz – optionaler Hinweistext, der als eigene Box im Newsletter erscheint
- Top-Highlights – bis zu 3 Artikel per Titel hervorheben (erscheinen oben als Highlight-Box)
- Datenquelle: MediaWiki API (
recentchangesüberwikiDE/api.php) - E-Mail-Layout im Thomas-Krenn Corporate Design:
- Hero-Header mit Logo, Artikel-Karten mit „Zum Beitrag“-Button, Kontakt- und Adress-Footer
- Neu-/Bearbeitet-Trennung, Zusammenfassungs-Kacheln, Outlook-taugliche Kopiervorschau
- Export:
- Plain Text (für Outlook)
- Raw HTML
- Optionaler SMTP-Versand:
- UI-konfigurierbar
- Verteilerlisten
- tägliche Zeitplanung
- Versandprotokoll
- Docker/Compose Betrieb
Start mit Docker
-
Konfiguration anlegen:
cp .env.example .env -
Wichtige Werte in
.envsetzen:HOST_PORT(z. B.8080, falls8000bereits belegt ist)SECRET_KEYADMIN_BOOTSTRAP_EMAILADMIN_BOOTSTRAP_PASSWORD
-
Start:
docker compose up --build -d -
Zugriff:
- http://localhost:8080/login (oder dein
HOST_PORT)
- http://localhost:8080/login (oder dein
Sicherheits-Hinweise für Produktion
- Reverse Proxy (z. B. Nginx/Traefik) mit TLS vor den Container setzen.
SECRET_KEYlang und zufällig setzen.- Bootstrap-Admin-Passwort nach erstem Login ändern.
- Netzwerkzugriff auf interne IPs/Netze beschränken.
- Regelmäßige Backups des
dataVolumes.
Rollenmodell
reader: darf Ergebnisse seheneditor: darf Newsletter generieren und sofort versendenadmin: zusätzlich Benutzerverwaltung und SMTP-Konfiguration
Description
Languages
Python
55.9%
HTML
28%
CSS
8.6%
JavaScript
7.2%
Dockerfile
0.2%