Dokumentation
AliothPress ist ein self-hosted CMS, das speziell für mehrsprachige Websites entwickelt wurde. Jegliche Inhalte – Beiträge, Seiten, Formulare, Menüs, Newsletter, rechtliche Seiten – können in einer Sprache erstellt und in jede der 31 unterstützten Sprachen übersetzt werden, mit vollständiger SEO‑, AEO‑ und hreflang‑Unterstützung out of the box.
Die gesamte Admin‑Oberfläche ist ebenfalls in alle 31 Sprachen übersetzt, sodass jedes Teammitglied in seiner bevorzugten Sprache arbeiten kann.
Entwickelt mit Python/Flask. Läuft auf SQLite oder PostgreSQL. Installation in 5 Minuten, ohne dass ein Terminal berührt werden muss.
Der Kern deckt eine komplette Website für sich allein ab – Plugins sind nie nötig, um Lücken zu stopfen. Für Projekte, die darüber hinausgehen, bringt AliothPress ein installierbares Plugin‑System und Unterstützung für eigene Themes mit – beides vollständig über das Admin‑Panel verwaltet.
Highlights
- Multilingual CMS: 31 Sprachen – Inhalte, Admin‑Panel, rechtliche Seiten, Setup‑Assistent und öffentliche Benutzeroberfläche – alles vollständig übersetzt
- KI‑Assistent – Inhalte generieren, übersetzen, SEO optimieren – unterstützt Anthropic Claude, DeepSeek und Google Gemini
- Kein Terminal erforderlich – ein Cloud‑Init‑Skript beim Erstellen des Servers einfügen, den Browser öffnen, fertig
- Visueller Page Builder – 21 Blocktypen: Text, Bilder, Spalten, Galerien, Diashows, Logo‑Ticker, Tabellen, Akkordeons, Formulare und mehr
- SEO & AEO out of the box – Schema.org
@graph, FAQPage‑Schema, Speakable,/llms.txt, antwortorientierte KI‑Inhalte – optimiert für Suchmaschinen und KI‑Antwort‑Engines - Automatische Bildoptimierung – jeder Upload erzeugt responsive WebP‑ + AVIF‑Varianten, OG‑/Social‑Crops und Dominant‑Color‑Platzhalter
- 15 Design‑Themes – jedes mit Dunkel‑ und Hellmodus, über das Admin‑Panel umschaltbar
- Plugins & eigene Themes – Plugins und Themes als ZIP direkt im Admin‑Panel installieren; Ein‑Klick‑Updates für Plugins mit Changelog, kostenpflichtige Plugins haben ihren eigenen Lizenzschlüssel, die Entwicklung durch Dritte ist offen und dokumentiert
- Intelligenter Inhaltsschutz – automatische Bereinigung von Verweisen beim Löschen von Inhalten, automatische 301‑Weiterleitungen bei Slug‑Änderungen
- Integrierte Sicherheit – CSRF, Ratenbegrenzung, Brute‑Force‑Schutz, optionale Zwei‑Faktor‑Authentifizierung, HTML‑/SVG‑Sanitisierung, Sicherheits‑Header, verschlüsselte Anmeldeinformationen
- Datenschutz‑First & DSGVO‑bereit – standardmäßig keine Drittanbieter‑Anfragen, selbst gehostete Schriftarten und ein integrierter Editor (AliothEditor), Fassadenmuster für Video‑Einbettungen (kein Cookie‑Banner für die Standardkonfiguration erforderlich)
- Barrierefreiheit geprüft – 100/100 Accessibility‑Score in Google PageSpeed Insights für alle 15 Themes in beiden Modi (Hell und Dunkel)
- Vollständig responsiv – Mobile‑First‑Design für Admin‑Panel und öffentliche Website
Funktionen
Content Management
- Beiträge & Seiten mit AliothEditor – integrierter Rich‑Text‑Editor mit drei synchronisierten Tabs (Visuell / Markdown / HTML)
- Entwurf / Veröffentlicht – Status‑Workflow mit Live‑Vorschau vor der Veröffentlichung
- Schlagwörter & Kategorien mit eigenen Übersichtsseiten
- Auszüge und Beitragsbilder mit Alt‑Text und Bildunterschriften
- Autorenprofile mit Anzeigename, Biografie und Avatar (Schema.org‑kompatibel)
- Kanonische URLs zur Vermeidung doppelter Inhalte
- FAQ‑Editor pro Beitrag/Seite – erzeugt sichtbares FAQ‑Akkordeon und FAQPage‑Schema für KI‑Zitation
- Autor und Datum pro Beitrag/Seite ein‑/ausblendbar – Metadaten sind für Suchmaschinen stets im HTML vorhanden
Mehrsprachigkeit
- 31 Sprachen: Englisch, Deutsch, Französisch, Spanisch, Portugiesisch, Italienisch, Niederländisch, Schwedisch, Dänisch, Norwegisch, Finnisch, Polnisch, Tschechisch, Slowakisch, Ungarisch, Rumänisch, Kroatisch, Bulgarisch, Griechisch, Türkisch, Ukrainisch, Russisch, Arabisch, Hebräisch, Hindi, Thailändisch, Vietnamesisch, Indonesisch, Chinesisch, Japanisch, Koreanisch
- Übersetzungsgruppen – Beiträge, Seiten, Formulare und Newsletter über ein UUID‑basiertes System sprachübergreifend verknüpfen
- Sprachspezifische Menüs – Kopf‑ und Fußmenüs lösen automatisch auf die Sprache des Besuchers auf
- hreflang‑Tags im HTML und in der Sitemap für eine korrekte internationale SEO
- Sprachumschalter auf der öffentlichen Website
- Benutzerspezifische Admin‑Sprache – jedes Teammitglied wählt seine eigene Oberflächensprache
- Standard‑rechtliche Seiten werden während der Einrichtung in der gewählten Sprache angelegt (Datenschutzerklärung, Impressum, Barrierefreiheit)
Visueller Page Builder
Ein blockbasierter Page Builder mit Drag-and-Drop für Seiten mit Live‑Vorschau. 21 Blocktypen:
- Basis: Überschrift, Text, Bild, Button, Trennlinie, Abstand
- Struktur: Spalten (1–4), Abschnitt mit Hintergrund
- Medien: Video, Galerie, Videogalerie, Audio, Diashow, Logo‑Ticker
- Erweitert: Zitat, Tabelle, Akkordeon/FAQ, Tabs, HTML, Code, Formular
- KI kann gesamte Seitenlayouts als Blöcke aus einem Textprompt generieren
KI‑Assistent
KI-Assistent unterstützt drei Anbieter – einer oder alle können konfiguriert und jederzeit gewechselt werden:
- Anthropic Claude (Standard)
- DeepSeek
- Google Gemini
KI‑Funktionen aus dem Admin‑Panel:
- Inhalte generieren – Beschreibung eingeben, fertigen Beitrag oder Seite mit SEO‑Metadaten und FAQ‑Paaren für KI‑Zitation erhalten
- Inhalte übersetzen – KI‑gestützte Übersetzung als neue Sprachversion verknüpfen
- SEO optimieren – Meta‑Titel, ‑Beschreibungen, ‑Schlüsselwörter und Open‑Graph‑Daten generieren
- Seitenlayouts generieren – KI erstellt Seitenbaukasten‑Blöcke aus einer Beschreibung
- Konversationsmodus – Ergebnisse durch Folgeanweisungen verfeinern
- API‑Schlüssel werden verschlüsselt gespeichert (Fernet‑symmetrische Verschlüsselung)
Agentenzugriff (WebMCP)
Optional können KI‑Agenten über WebMCP – etwa agentische Browser – die Website als strukturierte, aufrufbare Tools nutzen, statt sie aus der Seite erraten zu müssen. Basiert auf dem WebMCP‑Browserstandard (navigator.modelContext / document.modelContext). Standardmäßig deaktiviert, wird vom Inhaber auf der KI‑Assistent‑Seite eingeschaltet und bleibt in Browsern ohne die API einfach wirkungslos.
- Öffentliche Inhaltssuche – ein maschinenlesbares
/api/public/search: Agenten fragen „was habt ihr zu X“ und erhalten Titel, URLs und Textauszüge in einem Aufruf; umfasst Beiträge, Seiten, Baukasten‑Blöcke (inklusive Akkordeon/FAQ), Kategorien und Tags. Wie/llms.txtund die Sitemap ohne Token offen, mit Ratenbegrenzung - Öffentliche Formular‑Tools – Agenten können die Felder eines Formulars lesen, es ausfüllen und absenden; genutzt wird der vorhandene Submission‑Endpunkt (Honeypot, Ratenbegrenzung und Validierung bleiben serverseitig)
- Admin‑Tools – generieren, übersetzen, SEO optimieren, Inhalte auflisten und durchsuchen, Beiträge, Seiten und Baukasten‑Seiten erstellen, Menüs bauen und navigieren – alles läuft in der Sitzung des angemeldeten Benutzers, bestehende Berechtigungen und CSRF gelten weiterhin
- Human‑in‑the‑Loop – jede schreibende Aktion fragt vorher nach Bestätigung; Lesezugriffe nie
- Inaktiv per Standard – ohne Aktivierung wird nichts gerendert; Ausschalten entzieht den Zugriff sofort. Formulareinsendungen und andere personenbezogene Besucherdaten werden Agenten nie offengelegt
- Bereit für Origin Trials – Chrome‑Origin‑Trial‑Token eintragen, und die Funktion läuft in Produktion für echte Besucher
- Discovery‑Manifest –
/.well-known/webmcpteilt mit, was die Website kann
Medienbibliothek
- Automatische Bildverarbeitung beim Upload: Größe auf maximale Abmessung reduzieren, EXIF‑Metadaten entfernen, automatische Ausrichtung
- Responsive Varianten: WebP und AVIF in mehreren Breakpoints (400w, 800w, 1200w, 1920w)
- OG‑/Social‑Crops: 1200×630‑Varianten in WebP, AVIF und JPG für Facebook, LinkedIn, Twitter
- Extraktion der dominanten Farbe für CSS‑Platzhalter (verhindert Cumulative Layout Shift)
- srcset‑Generierung für
<picture>‑Elemente – passendes Format und Größe für jedes Gerät ausliefern - SVG‑Sanitisierung – Script‑Tags, Event‑Handler und gefährliche Elemente werden beim Upload entfernt
- Metadatenbearbeitung: Titel, Bildunterschrift, Beschreibung, Alt‑Text
- Rasteransicht mit Suche und Paginierung
File-Manager
Getrennt von der Medienbibliothek – für Dokumente und Downloads:
- Unterstützte Formate: PDF, DOC/DOCX, XLS/XLSX, ZIP, RAR, TXT, CSV
- Saubere Download‑URLs über Slugs (z. B.
ihreseite.de/bericht.pdf) - Titel‑ und Beschreibungs‑Metadaten
- Dateityp‑Icons und menschenlesbare Größen
- Suche und Paginierung
Formular-Builder
- Feldtypen: Text, E‑Mail, Telefon, Zahl, Textarea, Auswahlliste, Radio, Checkbox, Datum, URL, versteckt, Bewertung, Einwilligung
- Honeypot‑Antispam‑Schutz
- Double‑Opt‑in‑E‑Mail‑Bestätigung mit tokenisierten Links
- E‑Mail‑Benachrichtigungen bei Einsendungen (SMTP)
- Einsendungsverwaltung: anzeigen, nach Status filtern (neu/gelesen/archiviert/Spam), mehrfach löschen
- CSV‑Export der Einsendungen
- IP‑basierte Ratenbegrenzung pro Formular
- Formulare sind mehrsprachig – gleiches Übersetzungsgruppen‑System wie bei Beiträgen/Seiten
- Formulare über den Seitenbaukasten oder benutzerdefiniertes HTML in Seiten einbetten
Newsletter
- Rich‑HTML‑Editor für Kampagneninhalte
- Zielgruppenauswahl: nach Sprache, nach Herkunftsformular, mit E‑Mail‑Ausschlüssen
- CSV‑Import für externe Abonnentenlisten
- Testversand vor dem Broadcast
- Kampagnen werden nur an Abonnenten mit bestätigter E‑Mail‑Adresse gesendet
- Abmeldelinks mit HMAC‑signierten Token (fälschungssicher)
- Mehrsprachige Kampagnen – gleiches Übersetzungsgruppen‑System
- Abonnenten stammen aus Formulareinsendungen – kein separates Abonnenten‑Modell erforderlich
SEO, AEO & Leistung
- Vollständige Kontrolle über Meta‑Tags pro Beitrag/Seite: Meta‑Titel, ‑Beschreibung, ‑Schlüsselwörter
- Open‑Graph‑Tags: og:title, og:description, og:image, og:type
- Twitter‑Card‑Tags: twitter:card, twitter:title, twitter:description, twitter:image
- Schema.org
@graph– vernetzte Organization‑, Person‑ und Article‑Entitäten mitsameAs‑Links zu Wikipedia, Wikidata, LinkedIn und sozialen Profilen für die KI‑Entitätsprüfung - FAQPage‑Schema – automatisch aus FAQ‑Editor und Akkordeon‑Blöcken des Seitenbaukastens generiert
- Speakable‑Schema – markiert wichtige Inhalte als geeignet für Sprachassistenten und KI‑Antwort‑Extraktion
/llms.txt– automatisch generierte KI‑freundliche Seitenzusammenfassung nach dem llmstxt.org‑Standard, mit mehrsprachigen Inhalten gruppiert nach Sprache- Antwortorientierte KI‑Inhalte – der KI‑Assistent generiert Inhalte mit direkten Antworten in den ersten 150 Wörtern, optimiert für KI‑Zitation
- Automatische XML‑Sitemap mit hreflang‑Alternativlinks und XSL‑Stylesheet
- Bearbeitbare robots.txt über das Admin‑Panel (KI‑Crawler standardmäßig erlaubt, llms.txt automatisch verlinkt)
- RSS/Atom‑Feeds mit Mehrsprachigkeitsunterstützung (
/feed,/feed/de,/feed/es) - Automatische 301‑Weiterleitungen bei Änderung des Slugs eines Beitrags oder einer Seite – Weiterleitungsketten werden abgeflacht (A→B→C wird zu A→C + B→C)
- Intelligente Cache‑Header: Immutable für statische Dateien, kurzer Cache mit CDN‑Unterstützung für öffentliche Seiten, No‑Cache für Admin
- Cache‑Busting für statische Dateien – automatischer
?v=‑Zeitstempel‑Parameter auf CSS/JS/Bildern - Automatische Bereinigung defekter Verweise – beim Löschen eines Bildes, einer Datei, eines Formulars oder einer Seite werden alle Verweise darauf in anderen Inhalten (Beiträge, Seiten, Seitenbaukasten‑Blöcke, Menüs) automatisch entfernt
Themes
- 15 Design‑Themes inklusive, jedes mit Dunkel‑ und Hellmodus
- Standard‑Anzeigemodus: dunkel, hell oder automatisch (folgt der Systemeinstellung)
- Theme‑Vorschaubilder im Admin‑Panel
- Themes bestehen aus reinem CSS – kein Build‑Schritt, kein JavaScript‑Framework erforderlich
- Theme‑Beschreibungen werden über i18n übersetzt
- Eigene Themes: Theme‑ZIP im Admin‑Panel hochladen – es erscheint sofort in der Galerie, ohne Neustart
- Eigene Themes überstehen Core‑Updates und lassen sich aus der Galerie löschen; mitgelieferte Themes sind vor versehentlichem Löschen geschützt
Plugins
- Plugins Installation per ZIP im Admin‑Panel – kein Terminal, kein Dateimanager
- Ein‑Klick‑Updates – das Admin‑Panel prüft täglich (und auf Wunsch jederzeit) den Update‑Server auf Plugin‑Updates; eine neue Version zeigt ihr Changelog direkt auf der Plugin‑Karte und wird mit einem per Prüfsumme verifizierten Klick installiert – Einstellungen und Daten bleiben erhalten
- Plugins auf der Plugins‑Seite aktivieren, deaktivieren, aktualisieren und löschen; Statusänderungen lösen denselben sanften automatischen Neustart aus wie Core‑Updates
- Plugins laufen auf lizenzierten Installationen – die vorhandene CMS‑Lizenz deckt alle kostenlosen und selbst entwickelten Plugins ab
- Kostenpflichtige Plugins haben ihren eigenen Lizenzschlüssel (ein Schlüssel pro Domain, Dev‑Domains ausgenommen), geprüft gegen denselben Lizenzserver wie der Core
- Offen für Drittentwickler – ein Plugin ist ein Ordner mit einem Manifest und einer
register(ctx)‑Funktion; es kann Admin‑Seiten, Datenbanktabellen, Einstellungen und Übersetzungen unter eigenem Namespace hinzufügen - Mit dokumentiertem Hello‑World‑Beispielplugin und einer
PLUGIN_DEV.md‑Referenz (Plugin-Entwicklungsleitfaden) min_cms_versionwird mit einer klaren Meldung durchgesetzt statt mit einem kryptischen Fehler- Core‑Updates rühren installierte Plugins nie an – das Plugins‑Verzeichnis ist geschützt, CMS‑Update und Plugin‑Update bleiben also unabhängig voneinander; das ZIP‑Formular dient zusätzlich als manueller Update‑Weg
Menüs
- Zwei Positionen: Kopf‑ und Fußbereich
- Hierarchische Menüs mit Eltern‑Kind‑Beziehungen (Untermenüs)
- Verlinkung auf Beiträge, Seiten oder benutzerdefinierte/externe URLs
- Sprachspezifische Bezeichnungen – jeder Menüpunkt kann pro Sprache eine andere Bezeichnung haben (JSON‑gespeichert)
- Automatische Sprachauflösung – wenn ein Besucher eine deutsche Seite aufruft, lösen Menülinks zu Beiträgen/Seiten auf deren deutsche Übersetzungen auf (falls vorhanden)
- Drag‑and‑Drop‑Sortierung
- Aktiv/Inaktiv‑Umschalter, CSS‑Klassenunterstützung, Ziel (
_self/_blank)
User-Management
- Drei CMS-Benutzerrollen: Inhaber (Ersteller der Site), Administrator (voller Zugriff), Redakteur (nur Inhalte)
- E‑Mail‑Einladungen mit tokenisierten Anmeldelinks und Ablaufdatum
- Kennwortrichtlinie: konfigurierbare Mindestlänge, Anforderungen an Groß‑, Klein‑ und Ziffern
- Kennwortzurücksetzung per E‑Mail mit zeitlich begrenzten Token
- Konto deaktivieren ohne Löschung
- Sitzungsinvalidation bei Kennwortänderung (Versionszähler erzwingt erneute Anmeldung)
- Benutzerspezifische Admin‑Theme‑Präferenz: hell, dunkel oder systemabhängig
- Autorenprofile: Anzeigename, Biografie, Avatar‑URL, LinkedIn/Website/GitHub‑Links (werden im Schema.org
sameAsfür die KI‑Entitätsprüfung verwendet)
Sicherheit
- CSRF‑Schutz für alle Formulare (Flask‑WTF, Token gilt für die gesamte 12‑Stunden‑Sitzung – lange Redaktionssitzungen scheitern nie beim Speichern)
- Ratenbegrenzung (Flask‑Limiter): 200 Anfragen/Minute global, strengere Grenzen für Login, KI, SSL und Formular‑Endpunkte
- Brute‑Force‑Schutz: 5 fehlgeschlagene Anmeldungen pro IP‑Benutzer‑Paar oder 20 pro IP innerhalb von 15 Minuten blockieren weitere Versuche
- Zwei‑Faktor‑Authentifizierung (optional): TOTP‑Codes für jede Authenticator‑App (RFC 6238, nur Standardbibliothek, keine externen Dienste); ab Werk aus, vom Inhaber für die ganze Website aktiviert, Opt‑in pro Benutzer im Profil
- 2FA‑Wiederherstellung: gehashte Einmal‑Wiederherstellungscodes, Anmeldecodes per E‑Mail als Ausweichweg, Admin‑Reset auf der Benutzerseite und eine Break‑Glass‑Datei (DISABLE_2FA) für den ausgesperrten Allein‑Inhaber
- HTML‑Sanitisierung für alle Editor‑Inhalte (bleach – erlaubte Tags und Attribute)
- SVG‑Sanitisierung: entfernt
<script>, Event‑Handler,javascript:‑URLs,<foreignObject>, externe Verweise - Sicherheits‑Header: X‑Frame‑Options, X‑Content‑Type‑Options, X‑XSS‑Protection, Referrer‑Policy, Permissions‑Policy, HSTS
- Schutz vor offenen Weiterleitungen – next‑URL‑Validierung beim Login
- Verschlüsselte Speicherung von Anmeldeinformationen – SMTP‑Passwörter, API‑Schlüssel und Lizenzschlüssel verschlüsselt mit Fernet (abgeleitet von SECRET_KEY)
- Integritätsprüfung der Lizenz – HMAC‑Signatur verhindert Manipulation in der Datenbank
- Audit‑Log – jede wichtige Admin‑Aktion wird mit Benutzer, IP, Zeitstempel und übersetzten Details protokolliert
- Sitzungssicherheit: HTTP‑only‑Cookies, SameSite=Lax, 12‑Stunden‑Lebensdauer
Backup & Wiederherstellung
- Ein‑Klick‑Backup über das Admin‑Panel – erstellt ein ZIP‑Archiv mit:
- Datenbank‑Dump (SQLite‑Datei oder PostgreSQL
pg_dump) - Allen hochgeladenen Dateien (Bilder, Dokumente, Favicons)
- Installierten Plugins (ihre Einstellungen und Daten liegen im Datenbank‑Dump)
.env‑Konfiguration (sensible Werte werden automatisch maskiert)
- Datenbank‑Dump (SQLite‑Datei oder PostgreSQL
- Wiederherstellung aus Backup – ZIP hochladen, und die Website wird vollständig wiederhergestellt: Datenbank, Uploads und Konfiguration
- Unterstützt sowohl SQLite‑ als auch PostgreSQL‑Backup/Wiederherstellung
Favicon-Generator
- Favicon über das Admin‑Panel hochladen
- Automatische Generierung aller erforderlichen Größen und Formate
- Unterstützt ICO‑, PNG‑ und SVG‑Quelldateien
SSL / HTTPS
- Ein‑Klick‑Let's‑Encrypt‑Einrichtung über das Admin‑Panel
- Domain‑Validierung mit DNS‑Prüfung
- Delegiert an ein sicheres Systemskript (Flask schreibt niemals direkt nginx‑Konfigurationen)
- Ratenbegrenzt (5 pro Stunde)
- Im Audit‑Log protokolliert
Lizenzierung & Updates
- Kostenlos für die nicht‑kommerzielle Nutzung – persönliche Websites, Blogs, Bildungsprojekte, gemeinnützige Organisationen
- Lizenzschlüssel für kommerzielle Nutzung erforderlich – ein Schlüssel pro Domain
- Lizenzierte Seiten erhalten: kein „Powered by“‑Hinweis, automatische Updates
- Integriertes Update‑System: Nach Updates suchen und diese über die Einstellungen einspielen
- Lizenzprüfung gegen den Update‑Server mit regelmäßigen Überprüfungen (alle 7 Tage)
- Manipulationssichere Lizenzspeicherung (HMAC‑signiert)
Datenschutz & DSGVO
AliothPress wurde von Grund auf datenschutzfreundlich konzipiert und liefert standardmäßig null Anfragen an Drittanbieter. Dies ist eine bewusste Design‑Entscheidung, um das CMS einfach in Rechtsräumen mit strengen Datenschutzvorschriften einsetzen zu können – insbesondere in der EU (DSGVO, ePrivacy), Deutschland (TTDSG), Großbritannien (UK GDPR) und der Schweiz (revDSG).
Keine externen Anfragen beim Seitenaufruf. Eine standardmäßige AliothPress‑Site tätigt beim Öffnen einer Seite keine HTTP‑Anfragen an Drittanbieter‑Domains. Keine Google‑Fonts, keine CDN‑Skripte, keine Analyse‑Tracker, keine eingebetteten Iframes. Das bedeutet:
- Keine Besucher‑IP‑Adressen werden ohne ausdrückliche Einwilligung an Dritte weitergegeben
- Für die Standardkonfiguration ist kein Cookie‑Einwilligungsbanner erforderlich
- Es sind keine Datenverarbeitungsvereinbarungen (DPA) über den eigenen Hosting‑Anbieter hinaus notwendig
Selbst gehostete Assets:
- Web‑Schriftarten – 12 Schriftfamilien werden pro Teilmenge von
/static/fonts/als WOFF2‑Dateien ausgeliefert. Browser laden nur die tatsächlich auf der Seite verwendeten Glyphen‑Teilmengen. Null Anfragen an Google‑Fonts, Adobe‑Fonts oder ein Schrift‑CDN. Dies folgt der Rechtsprechung des LG München I zu Google‑Fonts (Az. 3 O 17493/20, Januar 2022), die feststellte, dass die Übermittlung von Besucher‑IP‑Adressen an Google‑Fonts ohne Einwilligung einen DSGVO‑Verstoß darstellt. - Rich‑Text‑Editor (AliothEditor) – der Editor ist direkt in die Engine eingebaut: drei synchronisierte Tabs (Visuell / Markdown / HTML), Markdown↔HTML‑Konvertierung über selbst gehostete
marked+turndown(static/js/vendor/), gestaltet über die aktive Admin‑Palette. Null externe Anfragen – kein CDN, keine Telemetrie, keine API‑Keys. - Syntax‑Highlighting (Prism.js) – Selbst gehostet unter
/static/js/prism/. Keinecdnjs‑Aufrufe. - Bilder – Alle über die Medienbibliothek hochgeladenen Bilder werden serverseitig verarbeitet (Größe angepasst, EXIF entfernt, in WebP/AVIF konvertiert) und von der eigenen Domain ausgeliefert. Keine Bild‑CDNs.
- Favicons & Admin‑Icons – Inline‑SVG oder selbst gehostet. Keine Icon‑Fonts von CDNs.
Video‑Einbettungen (YouTube / Vimeo) – Fassadenmuster. Eingebettete Videos verwenden einen datenschutzfreundlichen Zwei‑Klick‑Ansatz:
- Beim ersten Seitenaufruf sieht der Besucher ein lokal zwischengespeichertes Vorschaubild, das von der eigenen Domain ausgeliefert wird. Null Anfragen an
youtube.com,youtube-nocookie.com,i.ytimg.com,vimeo.comoderplayer.vimeo.com. - Der Video‑Iframe wird erst geladen, nachdem der Besucher explizit auf die Wiedergabe‑Schaltfläche klickt, was eine aktive Einwilligung gemäß DSGVO Art. 6(1)(a) und §25 TTDSG darstellt.
- Die Vorschaubilder werden serverseitig einmal vom offiziellen oEmbed‑Endpunkt des Anbieters abgerufen, auf der Festplatte unter
/static/uploads/video-thumbs/zwischengespeichert und als normale statische Dateien mit langen Cache‑Headern ausgeliefert.
Die im Admin‑Panel angezeigten Videotitel (automatisch beim Einfügen abgerufen) gehen ebenfalls über den Server – der Browser des Administrators kommuniziert nie direkt mit Google oder Vimeo. Dieser Ansatz folgt den Empfehlungen der deutschen Datenschutzaufsichtsbehörden (DSK, BayLDA, LfDI Baden‑Württemberg) für die Einbettung von Drittanbieter‑Videoinhalten, ohne dass ein Cookie‑Banner für den Videoblock erforderlich ist.
KI‑Assistent – Wenn aktiviert, werden KI‑Anfragen von Ihrem Server an den konfigurierten Anbieter (Anthropic Claude, DeepSeek oder Google Gemini) gesendet. Besucher‑IP‑Adressen und Browserdaten werden niemals an den KI‑Anbieter weitergeleitet. API‑Schlüssel werden verschlüsselt gespeichert (Fernet‑symmetrische Verschlüsselung, abgeleitet von SECRET_KEY).
Formulare – Kein Drittanbieter‑CAPTCHA (kein Google reCAPTCHA, kein hCaptcha). Der Spam‑Schutz erfolgt über Honeypot‑Felder und IP‑basierte Ratenbegrenzung – beides vollständig eigenständig. Die Double‑Opt‑in‑E‑Mail‑Bestätigung verwendet HMAC‑signierte Token, die auf dem eigenen Server generiert werden.
Analyse ist opt‑in. Google Analytics, Tag Manager und benutzerdefinierter Analyse‑Code sind standardmäßig deaktiviert. Füge deine Analyse in den Einstellungen hinzu und aktiviere das integrierte Einwilligungsbanner mit einem einzigen Häkchen. Google Analytics und Tag Manager werden dann inert als type="text/plain" eingebunden und erst ausgeführt, nachdem der Besucher zugestimmt hat. Die Einwilligungsebene speichert die Auswahl im localStorage und setzt selbst keine Cookies. Benutzerdefinierter Code wird genau so eingefügt, wie du ihn eingegeben hast, und wird nicht vom Banner gesteuert; seine Einwilligung steuerst du selbst. Bei deaktivierter Analyse zeigt die Standard‑Site kein Banner und keinen Tracker.
Audit‑Log – Protokolliert Admin‑Aktionen (Benutzer, IP, Zeitstempel, übersetzte Aktionsbeschreibung) zu Sicherheitszwecken. Enthält keine Besucherdaten und ist nur für Admin‑Benutzer zugänglich.
Für Seitenbetreiber
AliothPress bietet eine technische Garantie für das Verhalten der Software. Die Verantwortung, auf Ihrer Live‑Site eine korrekte Datenschutzerklärung zu veröffentlichen, liegt weiterhin bei Ihnen als Betreiber.
Hinweis: Die obige Beschreibung ist eine technische Aussage über das Verhalten der Software, keine Rechtsberatung. Für den produktiven Einsatz im kommerziellen Umfeld empfiehlt sich eine einmalige Prüfung durch einen qualifizierten Fachanwalt für IT‑Recht.
Barrierefreiheit
- Alle 15 Design‑Themes auf Barrierefreiheit in Hell‑ und Dunkelmodus getestet
- 100/100 Accessibility‑Score in Google PageSpeed Insights für alle 15 Themes in beiden Modi
- Selbst gehostete Schriftarten und Icons – keine externen CDNs, keine font‑swap‑Layout‑Verschiebungen
prefers-reduced-motionwird beachtet – deaktiviert Diashow‑Autoplay, Ticker‑Scroll und scroll‑getriggerte Animationenprefers-color-schemesteuert den automatischen Dunkel‑/Hellmodus, wenn das Theme auf „auto“ eingestellt ist- Tastaturnavigation in benutzerdefinierten Komponenten – Video‑Fassade (nativer
<button>), Diashow (Pfeiltasten), Lightbox (Escape), Akkordeon (nativer<details>) <html lang="">wird pro Seite basierend auf dem Inhalt gesetzt;hreflang‑Alternativen im HTML und in der Sitemap- RTL‑Layout für arabische und hebräische Inhalte
Installation
AliothPress wird ohne Terminal installiert. Einen Cloud‑Server erstellen (Hetzner, DigitalOcean, Linode, Vultr), das bereitgestellte Cloud‑Init‑Skript einfügen und den Browser öffnen. Der Setup‑Assistent übernimmt den Rest:
- Sprache wählen
- Datenbank wählen (SQLite für Einfachheit, PostgreSQL für Skalierung)
- Admin‑Konto anlegen
- Site‑Namen vergeben und Lizenzschlüssel eingeben (optional)
Eine detaillierte Schritt‑für‑Schritt‑Anleitung mit Screenshots findet sich in der Installationsanleitung.
Server‑Anforderungen: Ubuntu Server (LTS empfohlen), 2 vCPU, 4 GB RAM. Läuft auf jedem gängigen VPS — zum Beispiel Hetzner, DigitalOcean, Linode oder Vultr.
Projektstruktur
aliothpress/
├── app.py # Anwendungskern – Routen, Logik, API
├── config.py # Konfiguration (DB, Uploads, Bildverarbeitung, Sicherheit)
├── models.py # Datenbankmodelle (14 Modelle)
├── block_renderer.py # Rendering‑Engine für Seitenbaukasten‑Blöcke
├── webmcp.py # WebMCP – Agenten‑Erkennungsmanifest, Suche öffentlicher Inhalte, Agenten‑Endpunkte
├── twofa.py # Optionale Zwei‑Faktor‑Authentifizierung (TOTP, Wiederherstellungscodes)
├── schema_org.py # Schema.org JSON‑LD‑Graph‑Builder (SEO‑Strukturdaten)
├── i18n.py # Internationalisierungssystem
├── updater.py # Lizenzprüfung & Update‑System
├── migrate.py # Kumulative Datenbankmigrationen (laufen automatisch beim Update)
├── plugin_system.py # Plugin‑System – Erkennung, Lizenzprüfung, ZIP‑Installation, Admin‑UI
├── PLUGIN_DEV.md # Referenz für Plugin‑Entwicklung (liegt jeder Installation bei)
├── install.py # Installationshilfen
├── requirements.txt # Python‑Abhängigkeiten
│
├── plugins/ # Installierte Plugins (geschützt vor Core‑Updates)
│ └── hello_world/ # Beispielplugin – als Vorlage für eigene Plugins kopieren
│ ├── plugin.json # Manifest
│ ├── __init__.py # Einstiegspunkt register(ctx)
│ └── i18n/ # Plugin‑Übersetzungen (en, de, es)
│
├── .env # Umgebungsvariablen (Geheimnisse, DB‑URI)
├── .env.example # Beispiel‑Umgebungsdatei
│
├── static/
│ ├── js/
│ │ ├── public.js # Skripte für die öffentliche Site
│ │ ├── page-builder-public.js # Frontend‑Rendering des Seitenbaukastens
│ │ ├── admin-image-picker.js # Gemeinsame Medienbibliothek‑Auswahl (Admin)
│ │ ├── webmcp-core.js # WebMCP‑Engine – Tool‑Registry, Lebenszyklus, CSRF, i18n
│ │ ├── webmcp-admin.js # WebMCP‑Admin‑Tools (Inhalte, Seitenbaukasten‑Seiten, Menüs, Suche)
│ │ ├── webmcp-public.js # Öffentliche WebMCP‑Tools (Site‑Suche, Formular ausfüllen & absenden)
│ │ ├── alioth-editor.js # AliothEditor – integrierter Rich‑Text‑Editor (Visuell / Markdown / HTML)
│ │ ├── vendor/ # Selbst gehostete Drittanbieter‑Libs (marked, turndown + GFM, qrcode)
│ │ └── prism/ # Selbst gehostetes Prism.js (Syntax‑Highlighting)
│ │
│ ├── css/
│ │ ├── core.css # Kern‑Styles
│ │ ├── admin.css # Admin‑Panel‑Styles
│ │ ├── components.css # UI‑Komponenten
│ │ ├── typography.css # Typografie‑System
│ │ ├── responsive.css # Responsive‑Breakpoints & mobile Styles
│ │ ├── setup.css # Setup‑Assistent‑Styles
│ │ ├── page-builder-blocks.css # Seitenbaukasten‑Block‑Styles
│ │ ├── page-builder-editor.css # Editor‑UI für den Seitenbaukasten
│ │ ├── alioth-editor.css # AliothEditor‑Styles (Admin‑Tokens --adm-*, Hell & Dunkel)
│ │ └── themes/ # 15 Design‑Themes
│ │ ├── stellar-origin/
│ │ │ ├── theme.css # Theme‑Styles (Dunkel‑ + Hellmodus)
│ │ │ └── preview.svg # Theme‑Vorschaubild
│ │ └── ... (14 weitere Themes)
│ │
│ ├── i18n/
│ │ ├── en.json # Admin‑Übersetzungen (Englisch)
│ │ ├── public.json # Übersetzungen für die öffentliche Site
│ │ ├── setup.json # Übersetzungen für den Setup‑Assistenten
│ │ ├── default_pages.json # Standardinhalte für rechtliche Seiten
│ │ └── ... (30 weitere Sprachdateien – insgesamt 31 Sprachen)
│ │
│ ├── legal/
│ │ ├── eula_en.html # EULA auf Englisch
│ │ └── ... (30 weitere Sprachen – insgesamt 31 EULA‑Dateien)
│ │
│ ├── img/
│ │ └── ... # Admin‑UI‑Icons und statische Assets
│ │
│ ├── fonts/ # Selbst gehostete Web‑Schriftarten (pro Teilmenge WOFF2, DSGVO‑konform)
│ │ ├── inter/
│ │ ├── outfit/
│ │ └── ... (12 Schriftfamilien, aufgeteilt nach Teilmenge – Browser laden nur das, was verwendet wird)
│ │
│ ├── uploads/
│ │ ├── favicon/ # Hochgeladene Favicon‑Dateien
│ │ └── files/ # Hochgeladene Dokumente (PDF, DOCX usw.)
│ │
│ └── sitemap.xsl # XSL‑Stylesheet für die XML‑Sitemap
│
└── templates/
├── setup.html # Installationsassistent
│
├── components/
│ └── admin-bar.html # Admin‑Toolbar‑Komponente
│
├── admin/
│ ├── base.html # Admin‑Layout‑Basis‑Template
│ ├── dashboard.html # Dashboard mit Statistik‑Übersicht
│ ├── login.html # Anmeldeseite
│ ├── login_2fa.html # Zweiter Anmeldeschritt (2FA‑Code‑Eingabe)
│ ├── settings.html # Site‑Einstellungen (Identität, SEO, AEO, Soziales, E‑Mail)
│ ├── themes.html # Theme‑Browser & Aktivierung
│ ├── menus.html # Menü‑Editor (Kopf‑, Fuß‑, Seitenleiste)
│ ├── ai.html # KI‑Assistent‑Einstellungen & Werkzeuge
│ ├── tools.html # SEO‑ & AEO‑Werkzeuge (Sitemap, robots.txt, llms.txt)
│ ├── users.html # Benutzerverwaltung & Einladungen
│ ├── profile.html # Benutzerprofil‑Editor
│ ├── twofa_setup.html # 2FA‑Einrichtung (QR‑Code, erste Code‑Prüfung)
│ ├── twofa_recovery.html # Einmal‑Wiederherstellungscodes nach der Einrichtung
│ ├── audit_log.html # Sicherheits‑Audit‑Log‑Betrachter
│ ├── backup.html # Backup & Wiederherstellung
│ ├── accept_invite.html # Annahme von Team‑Einladungen
│ ├── forgot_password.html # Kennwort‑Zurücksetzung anfordern
│ ├── reset_password.html # Kennwort‑Zurücksetzungs‑Formular
│ │
│ ├── posts/
│ │ ├── list.html # Beitragsliste mit Suche & Filtern
│ │ ├── new.html # Neuen Beitrag erstellen
│ │ ├── edit.html # Beitrag bearbeiten (mit SEO‑Panel)
│ │ └── translate.html # Übersetzungs‑Editor
│ │
│ ├── pages/
│ │ ├── list.html # Seitenliste
│ │ ├── new.html # Neue Seite erstellen
│ │ ├── edit.html # Seite bearbeiten
│ │ ├── translate.html # Übersetzungs‑Editor
│ │ └── builder.html # Visueller Seitenbaukasten
│ │
│ ├── forms/
│ │ ├── list.html # Formularliste
│ │ ├── new.html # Neues Formular erstellen
│ │ ├── edit.html # Formular & Felder bearbeiten
│ │ ├── submissions.html # Formular‑Einsendungen auflisten
│ │ └── submission_detail.html # Einzelne Einsendung anzeigen
│ │
│ ├── newsletter/
│ │ ├── list.html # Newsletter‑Kampagnen auflisten
│ │ ├── new.html # Neue Kampagne erstellen
│ │ ├── edit.html # Kampagneninhalt bearbeiten
│ │ └── translate.html # Übersetzungs‑Editor
│ │
│ ├── media/
│ │ ├── library.html # Medienbibliothek – Rasteransicht
│ │ ├── upload.html # Bild hochladen
│ │ ├── edit.html # Bild‑Metadaten bearbeiten
│ │ └── favicon.html # Favicon‑Verwaltung
│ │
│ └── files/
│ ├── list.html # Dateiverwaltung – Liste
│ ├── upload.html # Datei hochladen
│ └── edit.html # Datei‑Metadaten bearbeiten
│
└── public/
├── base.html # Basis‑Layout für die öffentliche Site
├── index.html # Startseite (Beitragsliste)
├── post.html # Einzelbeitrag‑Template
├── page.html # Einzelseiten‑Template
├── tag.html # Beiträge nach Schlagwort gefiltert
├── tags_hub.html # Übersicht aller Schlagwörter
├── categories_hub.html # Übersicht aller Kategorien
├── message.html # Systemmeldungen (Bestätigung, Abmeldung)
└── 404.html # Benutzerdefinierte 404‑Seite
Lizenz
AliothPress ist proprietäre Software. Für nicht‑kommerzielle Nutzung kostenlos. Für kommerzielle Nutzung ist ein Lizenzschlüssel erforderlich. Die vollständigen Bedingungen finden Sie in der Endbenutzer-Lizenzvereinbarung (EULA).
Technologie‑Stack
- Backend: Python 3, Flask, SQLAlchemy, Flask‑Login, Flask‑WTF, Flask‑Limiter
- Datenbank: SQLite (Standard) oder PostgreSQL
- Bildverarbeitung: Pillow (WebP, AVIF, Größenanpassung, EXIF‑Entfernung, Farbextraktion)
- Editor: AliothEditor (integriert; Tabs Visuell / Markdown / HTML, MD↔HTML‑Konvertierung, Prism‑fähige Codeblöcke)
- KI: Anthropic, DeepSeek, Google Gemini‑APIs (HTTP, keine SDK‑Abhängigkeit)
- Sicherheit: bleach, cryptography (Fernet), HMAC, Werkzeug (scrypt‑Passwort‑Hashing)
- Frontend: Vanilla‑JS, CSS‑Custom‑Properties, keine Framework‑Abhängigkeit
Unterstützte Sprachen
Admin‑Oberfläche, öffentliche Benutzeroberfläche, rechtliche Seiten und Setup‑Assistent – alle vollständig übersetzt:
ar bg cs da de el en es fi fr he hi hr hu id it ja ko nb nl pl pt ro ru sk sv th tr uk vi zh