UNPKG

peertube-plugin-cookie-consent

Version:

GDPR/DSGVO compliant cookie consent banner for PeerTube instances with script blocking functionality

193 lines (140 loc) 6.35 kB
# peertube-plugin-cookie-consent Ein DSGVO- und TTDSG-konformer Cookie-Consent-Banner für PeerTube-Instanzen mit vollständig konfigurierbarem Design. Dieses Plugin zeigt einen konfigurierbaren Cookie-Banner an, blockiert Tracking-Skripte (z. B. Matomo, Umami, Facebook Pixel) bis zur Zustimmung des Nutzers und ermöglicht eine feingranulare Auswahl nach Kategorien (essenzielle, funktionale, Statistik, Marketing). --- ## 🛡️ Merkmale - **DSGVO/TTDSG-konform** (Deutschland) - 🍪 **Cookie-Banner** beim ersten Besuch mit drei Auswahlmöglichkeiten - 🎨 **Vollständig konfigurierbares Design** über die Admin-Oberfläche - 📦 **Cookie-Kategorien**: `funktional`, `statistik`, `marketing` - 📝 **Markdown-Unterstützung** für Bannertext - 🛠 **Verwaltung** über das PeerTube-Adminpanel - 🔐 **Sichere Speicherung** des Einwilligungsstatus (180 Tage) - ⚙️ **Verwaltungsschaltfläche** als Icon oder Text konfigurierbar - 🌈 **Moderne Benutzeroberfläche** mit Hover-Effekten und Animationen - 📱 **Responsive Design** für alle Geräte --- ## 🎨 Design-Anpassungen Das Plugin bietet umfangreiche Designoptionen direkt im PeerTube-Admin: ### Banner-Anpassungen - **Hintergrundfarbe** des Cookie-Banners - **Textfarbe** des Banners - **Button-Farben** für alle drei Aktionen (Akzeptieren, Essentielle, Einstellungen) ### Verwaltungsschaltfläche - **Stil-Optionen**: - 🔧 Runde Schaltfläche mit Zahnrad-Symbol - 🍪 Runde Schaltfläche mit Cookie-Symbol - 📋 Runde Schaltfläche mit Einstellungs-Symbol - 📝 Kleine Textschaltfläche - 📄 Normale Textschaltfläche - **Position**: Unten rechts/links, Oben rechts/links - **Farbanpassung** der Schaltfläche ### Modal-Fenster - **Akzentfarbe** für Checkboxen und primäre Elemente - **Rundung der Ecken** (anpassbar in Pixeln) - **Moderne Typografie** mit verbesserter Lesbarkeit --- ## 🔧 Konfiguration Nach Installation erscheint das Plugin in den PeerTube-Einstellungen mit folgenden Optionen: ### Grundeinstellungen | Einstellung | Typ | Beschreibung | |-------------|-----|--------------| | `enableConsentBanner` | Boolean | Aktiviert/Deaktiviert den Banner | | `bannerMarkdown` | Markdown | Textinhalt des Banners (mit Link-Unterstützung) | ### Design-Einstellungen | Einstellung | Typ | Beschreibung | |-------------|-----|--------------| | `bannerBackgroundColor` | Farbfeld | Hintergrundfarbe des Banners (Standard: #000000) | | `bannerTextColor` | Farbfeld | Textfarbe des Banners (Standard: #ffffff) | | `buttonAcceptColor` | Farbfeld | Farbe der "Alle akzeptieren" Taste (Standard: #28a745) | | `buttonEssentialColor` | Farbfeld | Farbe der "Nur essentielle" Taste (Standard: #6c757d) | | `buttonSettingsColor` | Farbfeld | Farbe der "Einstellungen" Taste (Standard: #007bff) | ### Verwaltungsschaltfläche | Einstellung | Typ | Beschreibung | |-------------|-----|--------------| | `manageButtonStyle` | Auswahl | Stil der Verwaltungsschaltfläche (Icon oder Text) | | `manageButtonColor` | Farbfeld | Farbe der Verwaltungsschaltfläche | | `manageButtonPosition` | Auswahl | Position auf der Seite | ### Modal-Einstellungen | Einstellung | Typ | Beschreibung | |-------------|-----|--------------| | `modalAccentColor` | Farbfeld | Akzentfarbe für Checkboxen (Standard: #007bff) | | `modalBorderRadius` | Zahl | Rundung der Modal-Ecken in Pixeln (Standard: 12) | ### Erweiterte Einstellungen | Einstellung | Typ | Beschreibung | |-------------|-----|--------------| | `scripts` | JSON | Liste von Skripten zum Laden nach Zustimmung | | `customCss` | Textarea | Zusätzlicher CSS-Code für Experten | --- ## 📋 Skript-Konfiguration Konfigurieren Sie Tracking-Skripte im JSON-Format: ```json [ { "name": "Matomo Analytics", "src": "https://matomo.example.com/matomo.js", "async": true, "defer": true, "category": "statistik" }, { "name": "Facebook Pixel", "src": "https://connect.facebook.net/en_US/fbevents.js", "category": "marketing" }, { "name": "Google Analytics", "src": "https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID", "async": true, "category": "statistik" } ] ``` ### Verfügbare Kategorien: - **`funktional`**: Immer aktiviert (technisch notwendig) - **`statistik`**: Analytics, Besucherstatistiken - **`marketing`**: Werbung, Tracking, Social Media --- ## 🚀 Installation ### Über PeerTube Admin-Interface (empfohlen) 1. Gehen Sie zu **Administration** **Plugins & Themes** 2. Suchen Sie nach `peertube-plugin-cookie-consent` 3. Klicken Sie auf **Install** 4. Konfigurieren Sie das Plugin in den Einstellungen ### Über npm ```bash npm install peertube-plugin-cookie-consent ``` ### Manuelle Installation ```bash cd /var/www/peertube/peertube-latest sudo -u peertube npm run plugin:install -- --npm-name peertube-plugin-cookie-consent ``` --- ## 🎯 Verwendung 1. **Installation** des Plugins über die PeerTube-Administration 2. **Konfiguration** der Farben und Stile nach Ihren Wünschen 3. **Einrichtung** der Tracking-Skripte im JSON-Format 4. **Anpassung** des Banner-Texts mit Markdown 5. **Speichern** der Einstellungen Das Plugin funktioniert sofort nach der Installation. Besucher sehen beim ersten Besuch den Cookie-Banner und können ihre Präferenzen auswählen. --- ## 🔧 Technische Details - **PeerTube-Kompatibilität**: 5.2.0 - **Moderne ES6-Module**: Optimiert für PeerTube 7.x - **Universal-Cookie**: Robuste Cookie-Verwaltung - **Responsive Design**: Funktioniert auf allen Geräten - **Accessibility**: Screen-Reader-freundlich - **Performance**: Minimaler JavaScript-Footprint --- ## 📝 Lizenz AGPL-3.0 - Siehe [LICENSE](LICENSE) Datei für Details. --- ## 🤝 Beitragen Beiträge sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue. **Repository**: [https://github.com/yarkolife/peertube-plugin-cookie-consent](https://github.com/yarkolife/peertube-plugin-cookie-consent) --- ## 📞 Support Bei Fragen oder Problemen erstellen Sie bitte ein Issue im GitHub-Repository. --- *Entwickelt mit ❤️ für die PeerTube-Community*