UNPKG

peertube-plugin-static-files-light

Version:

PeerTube Plugin zum Hochladen und Verwalten statischer Dateien mit Admin-Statistiken (einfache Version)

242 lines (189 loc) 7.83 kB
# PeerTube Static Files Light Plugin Ein einfaches Plugin für PeerTube zum Hochladen und Verwalten statischer Dateien mit grundlegenden Admin-Statistiken. ## 🚀 Funktionen ### 📁 Datei-Management - **Upload von Bildern und Dokumenten** mit Drag & Drop - **Benutzerrechte-Verwaltung** (alle/nur Admins) - **Admin-Interface** für Dateiverwaltung - **Link-Sharing** mit einem Klick ### 📊 Basis-Statistiken - **Instance-Metriken**: Benutzer, Videos, Meldungen - **Video-Analytics**: Zuschauerzahlen mit Zeitfiltern - **Datei-Übersicht**: Hochgeladene Dateien und Größen ## 📋 Unterstützte Dateitypen - **Bilder**: JPG, PNG, GIF, WebP, ICO - **Dokumente**: PDF, TXT, DOC, DOCX ## 🔧 Installation ### Automatisch (empfohlen) 1. PeerTube Admin-Oberfläche öffnen 2. **Plugins & Themes****peertube-plugin-static-files-light** suchen 3. **Installieren** klicken ### Manuell ```bash cd /var/www/peertube sudo -u peertube npm install peertube-plugin-static-files-light sudo systemctl restart peertube ``` ### Docker-Setup (zusätzliche Schritte) Wenn Sie PeerTube in Docker verwenden, sind zusätzliche Schritte erforderlich: #### 1. Ordner erstellen ```bash # Navigieren Sie zu Ihrem PeerTube-Docker-Verzeichnis cd ~/docker/peertube # Erstellen Sie die erforderlichen Ordner mkdir -p data/static/uploads/images mkdir -p data/static/uploads/documents mkdir -p data/static/metadata # Setzen Sie die korrekten Berechtigungen sudo chown -R 999:999 data/static/uploads/ sudo chown -R 999:999 data/static/metadata/ chmod -R 755 data/static/uploads/ chmod -R 755 data/static/metadata/ ``` #### 2. docker-compose.yml prüfen Stellen Sie sicher, dass Ihr `docker-compose.yml` das static-Volume enthält: ```yaml services: peertube: volumes: - ./data:/data - ./config:/config - ./data/static:/app/client/static # ← Diese Zeile ist wichtig! ``` #### 3. Container neustarten ```bash docker-compose restart peertube ``` **Hinweis:** Ohne das static-Volume werden hochgeladene Dateien im Container gespeichert und gehen bei Neustarts verloren! ## ⚙️ Konfiguration **Admin → Plugins → static-files-light → Einstellungen** | Einstellung | Beschreibung | Standard | |-------------|--------------|----------| | Plugin aktivieren | Plugin ein/ausschalten | ✅ Ein | | Upload-Pfad | URL-Pfad für Upload-Seite | `files/upload` | | Berechtigte Benutzer | Komma-getrennte Benutzerliste | Leer (alle) | | Nur Administratoren | Zugriff nur für Admins | ❌ Aus | | Max. Dateigröße | Upload-Limit in MB | 50 MB | ## 🎯 Verwendung ### Für Benutzer **Upload-Seite:** `https://ihre-domain.de/p/files/upload` 1. Anmelden (falls erforderlich) 2. Dateien per Drag & Drop hochladen 3. Links kopieren und teilen 4. Eigene Dateien verwalten ### Für Administratoren **Datei-Verwaltung:** `/p/files/admin` - Alle Dateien anzeigen - Dateien löschen - Verwaiste Dateien aufräumen **Statistiken:** `/p/admin/stats` - PeerTube Metriken - Video-Statistiken mit Zeitfiltern - Datei-Übersicht ## 🔗 API-Endpunkte ### Öffentlich (direkte Datei-URLs) ```http GET /static/uploads/images/filename.jpg # Bilder GET /static/uploads/documents/filename.pdf # Dokumente ``` ### Authentifiziert ```http POST /plugins/static-files-light/router/upload GET /plugins/static-files-light/router/files GET /plugins/static-files-light/router/admin/files GET /plugins/static-files-light/router/admin/stats DELETE /plugins/static-files-light/router/file/:category/:filename ``` ## 🛠️ Entwicklung ```bash git clone https://github.com/yarkolife/peertube-plugin-static-files-light.git cd peertube-plugin-static-files-light npm install npm run build ``` ### Projektstruktur ``` peertube-plugin-static-files-light/ ├── client/ │ └── client-plugin.js # Client-Code ├── routes/ │ └── stats.js # Statistik-API ├── scripts/ │ └── build.js # Build-Script ├── assets/style.css # Styling ├── main.js # Server-Code └── package.json # Hochgeladene Dateien (bei korrektem Docker-Setup): ~/docker/peertube/data/static/ ├── uploads/ │ ├── images/ # Hochgeladene Bilder │ └── documents/ # Hochgeladene Dokumente └── metadata/ # Datei-Metadaten (JSON) ``` ## 🐛 Troubleshooting ### Häufige Probleme - **Upload schlägt fehl**: Dateigröße und -typ prüfen - **403 Fehler**: Benutzerrechte in Plugin-Einstellungen kontrollieren - **Statistiken laden nicht**: Admin-Rechte bestätigen - **Dateien verschwinden nach Container-Neustart**: Docker Volume `./data/static:/app/client/static` prüfen ### Docker-spezifische Probleme - **"ENOENT: no such file or directory"**: Upload-Ordner fehlen - siehe Docker-Setup oben - **Dateien nicht über URL erreichbar**: Static-Volume nicht korrekt gemountet - **Berechtigungsfehler**: Ordner-Permissions prüfen (UID 999 für PeerTube-Container) ### Debug ```bash # PeerTube logs journalctl -u peertube -f # Docker logs docker-compose logs -f peertube # Plugin-Status prüfen sudo -u peertube npm list | grep static-files-light # Ordner-Struktur prüfen (Docker) docker exec -it peertube ls -la /app/client/static/ ``` ## 📈 Changelog ### v0.0.7 *(Aktuell)* - 🔧 **Verbessert:** Dateien werden jetzt in PeerTube static-Ordner gespeichert - 🔧 **Verbessert:** Direkte URL-Zugriffe ohne Plugin-Router (`/static/uploads/...`) - 🔧 **Verbessert:** Bessere Docker-Integration mit persistenten Volumes - 🔧 **Verbessert:** Optimierte Performance durch nginx-Serving der statischen Dateien - 📚 **Dokumentation:** Erweiterte Docker-Setup-Anleitung - 🐛 **Behoben:** ENOENT-Fehler bei fehlenden Upload-Ordnern ### v0.0.4 - 🔧 **Verbessert:** Vollständig überarbeitete Architektur mit vereinfachtem Code - 🔧 **Verbessert:** Maximale Theme-Integration - alle Farben erben von PeerTube-Theme - 🔧 **Verbessert:** Optimierte API-Endpunkte und URL-Struktur - 🔧 **Verbessert:** Vereinfachte Plugin-Einstellungen (nur Admin-Modus und Benutzerliste) - 🔧 **Verbessert:** Dynamischer Multer mit korrekten Dateigrößen-Limits - 🔧 **Verbessert:** Einheitliches Error Handling und bessere Logging - 🔧 **Verbessert:** Nur Datei-basierte Metadaten (entfernt storageManager Dopplung) - 🐛 **Behoben:** Upload-Fehler durch falsche Multer-Konfiguration - 🐛 **Behoben:** 404-Fehler bei API-Aufrufen durch korrekte Plugin-Namen - 🐛 **Behoben:** Menu-Integration und Zugriffsprobleme ### v0.0.3 - 🔧 **Verbessert:** Detaillierte Video-Statistiken mit Zeitfiltern - 🔧 **Verbessert:** Admin-Interface für Dateiverwaltung - 🐛 **Behoben:** Verschiedene UI- und API-Probleme ### v0.0.2 -**NEU:** Statistik-Dashboard für Administratoren - 🔧 **Verbessert:** Benutzerrechte-Verwaltung - 🔧 **Verbessert:** Responsive Design ### v0.0.1 *(Initial)* - ✨ Basis Datei-Upload und -Verwaltung - ✨ Einfache Admin-Statistiken - ✨ Responsive Interface - ✨ Drag & Drop Upload ## 🤝 Beitragen 1. Repository forken 2. Feature-Branch erstellen 3. Änderungen committen 4. Pull Request erstellen **Issues:** https://github.com/yarkolife/peertube-plugin-static-files-light/issues ## 📄 Lizenz AGPL-3.0 - siehe [LICENSE](LICENSE) Datei. ## 🙋‍♂️ Support - **GitHub Issues**: Bug Reports & Features - **GitHub Discussions**: Community Forum - **Autor**: [yarkolife](https://github.com/yarkolife) --- *Ein einfaches, zuverlässiges Plugin für statische Dateien in PeerTube*