Hauptseite: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
<strong>MediaWiki wurde installiert.</strong>
== Hauptbausteine im Detail ==


Hilfe zur Verwendung und Konfiguration der Wiki-Software {{#FORMAL:findest du|finden Sie}} im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].
=== Data Engine (Datenmodell & Speicherung) ===
Das Herzstück des CMS. Es definiert, wie Daten im System abgelegt werden:
* Entwickler-Entscheidung: Monolithisches Datenmodell (feste Tabellen für posts, pages, comments) oder flexibles Schema (JSONB / EAV-Muster für benutzerdefinierte Inhalts-Typen).
* Mandantenfähigkeit / Multi-Tenancy (optional): Trennung von Daten per tenant_id-Spalte oder separaten Datenbankschemas.
* Datenbank: Relationale Datenbanken wie PostgreSQL bieten mit JSON-Unterstützung volle Flexibilität bei hoher Integrität.


== Starthilfen ==
=== Content & Routing Layer (Inhaltsverwaltung & URLs) ===
Verantwortlich für das Laden und Rendern von Inhalten für Besucher:
* Slug-Mapping: Zuordnung von lesbaren Pfaden (/blog/rust-cms-guide) zu Datenbank-Einträgen.
* Status & Versionierung: Inhalte besitzen Zustände (draft, published, archived) sowie oft eine Revisions-Historie.
* Rendering:
** Server-Side Rendering (SSR): HTML wird direkt über eine Template-Engine (z. B. Askama, Tera) gerendert.
** Headless (API): Ausgabe von JSON für entkoppelte Frontends.


* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]
=== Authentication & Authorization (Sicherheit) ===
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]
Trennt den öffentlichen Bereich vom Verwaltungsbereich:
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]
* Authentifizierung: Identitätsprüfung von Benutzern (z. B. Session-Cookies oder JWT-Tokens).
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources {{#FORMAL:Übersetze|Übersetzen Sie}} MediaWiki {{#FORMAL:für deine|in Ihre}} Sprache]
* Rechteverwaltung (RBAC): Rollenbasierte Zugriffskontrolle (z. B. Admin, Editor, Author), um festzulegen, wer welche Endpunkte oder Inhalte bearbeiten darf.
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam {{#FORMAL:Erfahre|Erfahren Sie}}, wie {{#FORMAL:du|Sie}} Spam auf {{#FORMAL:deinem|ihrem}} Wiki bekämpfen {{#FORMAL:kannst|können}}]
 
=== Media Manager (Dateiverwaltung) ===
Verwaltet Bilder, PDFs und sonstige Uploads:
* Upload-Pipeline: Empfang von Dateien, Prüfung von MIME-Types und Dateigrößen.
* Verarbeitung: Automatische Skalierung oder Konvertierung von Bildern (z. B. Erzeugung von WebP-Thumbnails).
* Storage: Speicherung auf dem lokalen Dateisystem oder in einem Object-Storage (S3/MinIO).
 
=== Admin Backend (Verwaltungsoberfläche) ===
Die Benutzeroberfläche für Redakteure:
* Rich-Text / Markdown Editor: Eingabeoberfläche für Inhalte.
* REST / gRPC / GraphQL API: Kommuniziert mit dem Backend, um Inhalte, Einstellungen, Benutzer und Medien zu verwalten.
 
=== Caching & Performance Layer ===
Verhindert unnötige Datenbankabfragen bei hoher Last:
* HTTP-Caching: Passende Header (Cache-Control, ETag) für Nginx oder CDNs.
* In-Memory Caching: Zwischenspeichern von zusammengestellten Seiten oder Datenbank-Ergebnissen (z. B. über In-Memory-Stores oder Redis).
 
=== Search & Discovery (Suche) ===
Ermöglicht Besuchern und Redakteuren, Inhalte gezielt zu finden:
* DB-native Suche: Volltextsuche über PostgreSQL tsvector/tsquery, ausreichend für kleinere bis mittlere Datenmengen.
* Externer Suchindex: Bei höheren Anforderungen an Relevanz und Performance Anbindung an Meilisearch, Typesense oder Elasticsearch.
* Facettierung & Filter: Eingrenzung nach Kategorie, Tag, Datum oder Autor.
 
=== SEO & Metadata ===
Sorgt dafür, dass Inhalte von Suchmaschinen korrekt erfasst werden:
* Meta-Tags & Open Graph: Pro Inhalt konfigurierbare Title-, Description- und Social-Preview-Daten.
* Sitemap & Robots: Automatisch generierte sitemap.xml und robots.txt.
* Kanonische URLs & Redirects: Vermeidung von Duplicate Content, Verwaltung von 301-Weiterleitungen bei Slug-Änderungen.
 
=== Plugin- & Extension-System ===
Erlaubt es, Funktionalität ohne Eingriff in den Core zu erweitern:
* Hooks & Events: Definierte Erweiterungspunkte (z. B. before_publish, after_upload), an denen Plugins andocken können.
* Middleware-Ketten: Zusätzliche Verarbeitungsschritte in Request/Response-Pipeline einschiebbar.
 
=== Background Jobs / Task Queue ===
Verlagert zeitintensive Arbeiten aus dem Request-Zyklus:
* Queue-Anbindung: Asynchrone Verarbeitung über Redis-basierte Queues oder tokio-Task-Runner.
* Typische Jobs: Bildkonvertierung, E-Mail-Versand, Sitemap-Neubau, Webhook-Zustellung.
* Retry & Fehlerbehandlung: Wiederholungslogik und Dead-Letter-Handling bei fehlgeschlagenen Jobs.
 
=== Internationalisierung (i18n / l10n) ===
Unterstützt mehrsprachige Inhalte und Oberflächen:
* Mehrsprachige Inhalte: Übersetzungsstatus pro Sprache und Content-Objekt.
* Locale-Routing: Sprachspezifische Pfade (/de/…, /en/…) oder Subdomains.
* UI-Übersetzung: Lokalisierte Texte im Admin Backend.
 
=== Notifications & E-Mail ===
Kommuniziert Systemereignisse an Nutzer und Redakteure:
* Transaktionale Mails: Passwort-Reset, Einladungen, Kommentar-Benachrichtigungen.
* Workflow-Benachrichtigungen: Hinweise bei Freigabe-Anfragen oder Statuswechseln von Inhalten.
 
=== Audit-Log & Monitoring ===
Schafft Nachvollziehbarkeit und Betriebssicherheit:
* Audit-Log: Protokollierung, wer wann welche Änderung vorgenommen hat (Compliance, Nachvollziehbarkeit).
* Monitoring & Tracing: Metriken, Logs und Fehlerreporting für den laufenden Betrieb (z. B. über OpenTelemetry).
 
=== Konfigurationsmanagement ===
Zentrale Steuerung systemweiter Einstellungen:
* Site-Settings: Globale Konfiguration wie Seitenname, Standardsprache, Zeitzone.
* Feature-Flags: Kontrolliertes Ein-/Ausschalten einzelner Funktionen ohne Redeploy.
 
=== Deployment & Infrastructure ===
Betrifft Betrieb und Wartbarkeit des Systems:
* Migrations-Tooling: Versionierte Datenbank-Migrationen (z. B. via sqlx oder refinery).
* CI/CD: Automatisierte Tests und Deployments.
* Backup-Strategie: Regelmäßige Sicherung von Datenbank und Medien-Storage.

Version vom 11. August 2026, 23:24 Uhr

Hauptbausteine im Detail

Data Engine (Datenmodell & Speicherung)

Das Herzstück des CMS. Es definiert, wie Daten im System abgelegt werden:

  • Entwickler-Entscheidung: Monolithisches Datenmodell (feste Tabellen für posts, pages, comments) oder flexibles Schema (JSONB / EAV-Muster für benutzerdefinierte Inhalts-Typen).
  • Mandantenfähigkeit / Multi-Tenancy (optional): Trennung von Daten per tenant_id-Spalte oder separaten Datenbankschemas.
  • Datenbank: Relationale Datenbanken wie PostgreSQL bieten mit JSON-Unterstützung volle Flexibilität bei hoher Integrität.

Content & Routing Layer (Inhaltsverwaltung & URLs)

Verantwortlich für das Laden und Rendern von Inhalten für Besucher:

  • Slug-Mapping: Zuordnung von lesbaren Pfaden (/blog/rust-cms-guide) zu Datenbank-Einträgen.
  • Status & Versionierung: Inhalte besitzen Zustände (draft, published, archived) sowie oft eine Revisions-Historie.
  • Rendering:
    • Server-Side Rendering (SSR): HTML wird direkt über eine Template-Engine (z. B. Askama, Tera) gerendert.
    • Headless (API): Ausgabe von JSON für entkoppelte Frontends.

Authentication & Authorization (Sicherheit)

Trennt den öffentlichen Bereich vom Verwaltungsbereich:

  • Authentifizierung: Identitätsprüfung von Benutzern (z. B. Session-Cookies oder JWT-Tokens).
  • Rechteverwaltung (RBAC): Rollenbasierte Zugriffskontrolle (z. B. Admin, Editor, Author), um festzulegen, wer welche Endpunkte oder Inhalte bearbeiten darf.

Media Manager (Dateiverwaltung)

Verwaltet Bilder, PDFs und sonstige Uploads:

  • Upload-Pipeline: Empfang von Dateien, Prüfung von MIME-Types und Dateigrößen.
  • Verarbeitung: Automatische Skalierung oder Konvertierung von Bildern (z. B. Erzeugung von WebP-Thumbnails).
  • Storage: Speicherung auf dem lokalen Dateisystem oder in einem Object-Storage (S3/MinIO).

Admin Backend (Verwaltungsoberfläche)

Die Benutzeroberfläche für Redakteure:

  • Rich-Text / Markdown Editor: Eingabeoberfläche für Inhalte.
  • REST / gRPC / GraphQL API: Kommuniziert mit dem Backend, um Inhalte, Einstellungen, Benutzer und Medien zu verwalten.

Caching & Performance Layer

Verhindert unnötige Datenbankabfragen bei hoher Last:

  • HTTP-Caching: Passende Header (Cache-Control, ETag) für Nginx oder CDNs.
  • In-Memory Caching: Zwischenspeichern von zusammengestellten Seiten oder Datenbank-Ergebnissen (z. B. über In-Memory-Stores oder Redis).

Search & Discovery (Suche)

Ermöglicht Besuchern und Redakteuren, Inhalte gezielt zu finden:

  • DB-native Suche: Volltextsuche über PostgreSQL tsvector/tsquery, ausreichend für kleinere bis mittlere Datenmengen.
  • Externer Suchindex: Bei höheren Anforderungen an Relevanz und Performance Anbindung an Meilisearch, Typesense oder Elasticsearch.
  • Facettierung & Filter: Eingrenzung nach Kategorie, Tag, Datum oder Autor.

SEO & Metadata

Sorgt dafür, dass Inhalte von Suchmaschinen korrekt erfasst werden:

  • Meta-Tags & Open Graph: Pro Inhalt konfigurierbare Title-, Description- und Social-Preview-Daten.
  • Sitemap & Robots: Automatisch generierte sitemap.xml und robots.txt.
  • Kanonische URLs & Redirects: Vermeidung von Duplicate Content, Verwaltung von 301-Weiterleitungen bei Slug-Änderungen.

Plugin- & Extension-System

Erlaubt es, Funktionalität ohne Eingriff in den Core zu erweitern:

  • Hooks & Events: Definierte Erweiterungspunkte (z. B. before_publish, after_upload), an denen Plugins andocken können.
  • Middleware-Ketten: Zusätzliche Verarbeitungsschritte in Request/Response-Pipeline einschiebbar.

Background Jobs / Task Queue

Verlagert zeitintensive Arbeiten aus dem Request-Zyklus:

  • Queue-Anbindung: Asynchrone Verarbeitung über Redis-basierte Queues oder tokio-Task-Runner.
  • Typische Jobs: Bildkonvertierung, E-Mail-Versand, Sitemap-Neubau, Webhook-Zustellung.
  • Retry & Fehlerbehandlung: Wiederholungslogik und Dead-Letter-Handling bei fehlgeschlagenen Jobs.

Internationalisierung (i18n / l10n)

Unterstützt mehrsprachige Inhalte und Oberflächen:

  • Mehrsprachige Inhalte: Übersetzungsstatus pro Sprache und Content-Objekt.
  • Locale-Routing: Sprachspezifische Pfade (/de/…, /en/…) oder Subdomains.
  • UI-Übersetzung: Lokalisierte Texte im Admin Backend.

Notifications & E-Mail

Kommuniziert Systemereignisse an Nutzer und Redakteure:

  • Transaktionale Mails: Passwort-Reset, Einladungen, Kommentar-Benachrichtigungen.
  • Workflow-Benachrichtigungen: Hinweise bei Freigabe-Anfragen oder Statuswechseln von Inhalten.

Audit-Log & Monitoring

Schafft Nachvollziehbarkeit und Betriebssicherheit:

  • Audit-Log: Protokollierung, wer wann welche Änderung vorgenommen hat (Compliance, Nachvollziehbarkeit).
  • Monitoring & Tracing: Metriken, Logs und Fehlerreporting für den laufenden Betrieb (z. B. über OpenTelemetry).

Konfigurationsmanagement

Zentrale Steuerung systemweiter Einstellungen:

  • Site-Settings: Globale Konfiguration wie Seitenname, Standardsprache, Zeitzone.
  • Feature-Flags: Kontrolliertes Ein-/Ausschalten einzelner Funktionen ohne Redeploy.

Deployment & Infrastructure

Betrifft Betrieb und Wartbarkeit des Systems:

  • Migrations-Tooling: Versionierte Datenbank-Migrationen (z. B. via sqlx oder refinery).
  • CI/CD: Automatisierte Tests und Deployments.
  • Backup-Strategie: Regelmäßige Sicherung von Datenbank und Medien-Storage.