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
Markdown
# 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*