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