Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| piwigo:piwigo-auf-unraid:start [2026/08/29 12:33] – angelegt jf | piwigo:piwigo-auf-unraid:start [2026/08/30 19:31] (aktuell) – jf | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | # Piwigo | + | ====== |
| - | Schritt für Schritt zu einer eigenen Foto- und Video-Galerie: MariaDB | + | Piwigo https:// |
| - | `Docker` · `LinuxServer.io Image` · `MariaDB` · `Unraid 6.12+` · `Fotos + Videos` | + | ===== Zu den wichtigsten Merkmalen gehören: ===== |
| - | ## Inhalt | + | Piwigo läuft auf PHP/MySQL und lässt sich per Plugin- und Theme-System erweitern. Es unterstützt mehrere Benutzerkonten mit unterschiedlichen Zugriffsrechten, |
| - | - [00 · Überblick](# | + | Es wird oft als selbst gehostete Alternative zu Diensten wie Google Photos oder Flickr genutzt, etwa von Fotografen, Vereinen oder Familien, die ihre Bilder unter eigener Kontrolle behalten wollen. Es gibt sowohl eine kostenlose Version zum Selbsthosten als auch einen bezahlten Hosting-Service |
| - | - [01 · Voraussetzungen](# | + | |
| - | - [02 · Datenbank (MariaDB)](# | + | |
| - | - [03 · Piwigo-Container](# | + | |
| - | - [04 · Ersteinrichtung](# | + | |
| - | - [05 · Video-Wiedergabe aktivieren](# | + | |
| - | - [06 · Upload-Limits erhöhen](# | + | |
| - | - [07 · Alben & Präsentation](# | + | |
| - | - [08 · Von unterwegs erreichen](# | + | |
| - | - [09 · Fehlerbehebung](# | + | |
| - | - [10 · Backup](# | + | |
| - | ## 00 · Überblick | + | ===== Piwigo für ===== |
| + | |||
| + | ++++ Antiquare | | ||
| + | Piwigo ist tatsächlich eine gute und günstige Lösung für Antiquare, die ihre Bestände digital verwalten und Kunden ansprechend präsentieren wollen, egal ob es um alte Postkarten, Buchcover, Grafiken oder sonstige historische Dokumente geht. | ||
| + | |||
| + | Der größte Vorteil liegt in der Bildverwaltung selbst: Piwigo ist im Kern ein Digital Asset Management System, das auch mit großen Mengen an Scans zurechtkommt. Man legt Alben und Unteralben an und bekommt so eine Struktur, in der sich tausende Aufnahmen, Buchrücken, | ||
| + | |||
| + | Gerade bei antiquarischen Beständen zählt ja der Kontext oft mehr als das Bild allein. Hier hilft, dass Piwigo Tags, Beschreibungstexte und automatisch ausgelesene EXIF/IPTC Daten unterstützt. So kann man zu jedem Stück Zustand, Erscheinungsjahr, | ||
| + | |||
| + | Auch bei der Rechteverwaltung ist man flexibel: Alben lassen sich ganz normal öffentlich als Katalog freigeben, oder man macht sie privat und gibt sie nur ausgewählten Sammlern nach Login frei, praktisch etwa für Erstausgaben oder Neuzugänge, | ||
| + | |||
| + | Wer Piwigo selbst hostet, behält zudem die volle Kontrolle über die eigenen Bild und Kundendaten und macht sich nicht von den Konditionen irgendeiner Drittplattform abhängig. | ||
| + | |||
| + | Und falls man hochauflösende Scans seltener Stiche, Landkarten oder Grafiken vor unbefugtem Kopieren schützen möchte, bringt Piwigo eine automatische Wasserzeichen Funktion gleich mit. | ||
| + | ++++ | ||
| + | |||
| + | ++++ Handwerker | | ||
| + | Piwigo ist eine hervorragende Open-Source-Bilddatenbank, | ||
| + | |||
| + | Da Handwerker täglich unzählige Fotos von Baufortschritten, | ||
| + | |||
| + | === Vorteile für Handwerker === | ||
| + | * **Strukturierte Baustellendokumentation: | ||
| + | * **Rechtssicherheit & Nachweis:** Fotos sicherst du gegen unberechtigte Mängelansprüche ab. Über den Datumsfilter findest du exakt das Foto vom Zustand an Tag X. | ||
| + | * **Referenzmappen für Kunden:** Du kannst ausgewählte Alben für potenzielle Kunden freigeben, um eure Arbeit digital zu präsentieren (z. B. auf einem Tablet direkt beim Beratungsgespräch). | ||
| + | * **Volle Datenkontrolle & DSGVO:** Im Gegensatz zu US-Cloud-Diensten kannst du Piwigo auf deinem eigenen Webserver oder Firmen-NAS installieren (Self-Hosting). Deine Kundendaten und Baustellenfotos bleiben komplett in deiner Hand. | ||
| + | * **Mobiles Hochladen per App:** Mitarbeiter können Fotos direkt von der Baustelle per Smartphone-App in die Datenbank hochladen. | ||
| + | * **Rechteverwaltung: | ||
| + | |||
| + | ^ Einsatzbereich ^ Funktion / Nutzen ^ Praxisbeispiel ^ | ||
| + | |||
| + | | **Baudokumentation** | Visuelle Festhaltung von Baufortschritten und Mängeln zur rechtlichen Absicherung. | Hochladen von Fotos direkt von der Baustelle per Smartphone-App. | | ||
| + | | **Referenzmappe & Marketing** | Präsentation von fertigen Projekten für potenzielle Neukunden. | Einbindung einer öffentlichen Galerie auf der eigenen Handwerker-Webseite. | | ||
| + | | **Kunden-Updates** | Transparente Kommunikation des aktuellen Arbeitsstandes mit dem Auftraggeber. | Freigabe eines passwortgeschützten Albums exklusiv für den jeweiligen Kunden. | | ||
| + | | **Zentrales Bildarchiv** | Strukturierte und durchsuchbare Lagerung aller Firmenfotos über Jahre hinweg. | Schnelles Wiederfinden von Vorher-Nachher-Bildern durch Schlagworte (Tags). | | ||
| + | | **Interne Schulung** | Visuelles Material zur Einarbeitung von Azubis und neuen Mitarbeitern. | Alben mit Best-Practice-Beispielen für fachgerechte Ausführungen (z. B. Abdichtungen). | | ||
| + | |||
| + | ++++ | ||
| + | |||
| + | |||
| + | |||
| + | ====== Piwigo auf Unraid ====== | ||
| + | |||
| + | Schritt für Schritt zu einer eigenen Foto- und Video-Galerie: | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===== 00 · Überblick | ||
| + | |||
| + | Piwigo ist eine quelloffene Software für eine eigene, selbst gehostete Foto- und Video-Galerie. Damit organisierst du Bilder und Videos in Alben, versiehst sie mit Tags und Beschreibungen und gibst sie gezielt frei: öffentlich, | ||
| Piwigo braucht zwei Bausteine: einen **Piwigo-Container** (Webserver + PHP, Bild von LinuxServer.io) und eine **MariaDB-Datenbank**, | Piwigo braucht zwei Bausteine: einen **Piwigo-Container** (Webserver + PHP, Bild von LinuxServer.io) und eine **MariaDB-Datenbank**, | ||
| - | ``` | + | < |
| [ Browser / Mobile-App ] | [ Browser / Mobile-App ] | ||
| | | | | ||
| Zeile 33: | Zeile 72: | ||
| | | | | ||
| +---> [ Share /gallery ] | +---> [ Share /gallery ] | ||
| - | ``` | + | </ |
| - | Das Ergebnis: eine Galerie mit Alben, feiner Rechteverwaltung (z. B. passwortgeschützte Familienalben) und – nach ein paar Zusatzschritten | + | Das Ergebnis: eine Galerie mit Alben, feiner Rechteverwaltung (z. B. passwortgeschützte Familienalben) und, nach ein paar Zusatzschritten, sauber abspielbaren Videos. |
| - | ## 01 · Voraussetzungen | + | ===== 01 · Voraussetzungen |
| - | - Unraid mit installiertem **Community Applications**-Plugin. | + | * Unraid mit installiertem **Community Applications**-Plugin. |
| - | - Zwei Shares bzw. Ordner planen: einen für die App-Konfiguration (z. B. `appdata/ | + | |
| - | - PUID/PGID: Unraid nutzt standardmäßig den Benutzer | + | |
| - | > **Tipp:** Vergib der Unraid-Weboberfläche und den Containern eine feste IP oder nutze durchgehend Container-*Namen* statt IP-Adressen. Das erspart dir Nacharbeit, falls sich die DHCP-Adresse später ändert (siehe | + | > **Tipp:** Vergib der Unraid-Weboberfläche und den Containern eine feste IP oder nutze durchgehend Container-//Namen// statt IP-Adressen. Das erspart dir Nacharbeit, falls sich die DHCP-Adresse später ändert (siehe |
| - | ## 02 · Datenbank (MariaDB) | + | ===== 02 · Datenbank (MariaDB) |
| - | Läuft auf deinem Unraid bereits ein Datenbank-Container und Port `3306` ist schon belegt, gibt es zwei sinnvolle Wege – beide sind hier beschrieben. | + | Läuft auf deinem Unraid bereits ein Datenbank-Container und Port '' |
| - | ### Option A · vorhandenen Container mitbenutzen (empfohlen) | + | ==== Option A · vorhandenen Container mitbenutzen (empfohlen) |
| Piwigo braucht keinen eigenen Datenbankserver, | Piwigo braucht keinen eigenen Datenbankserver, | ||
| - | ```bash | + | < |
| docker exec -it < | docker exec -it < | ||
| - | ``` | + | </ |
| + | |||
| + | > **Alternative: | ||
| Danach in der MySQL-Shell (Container- und Nutzernamen anpassen): | Danach in der MySQL-Shell (Container- und Nutzernamen anpassen): | ||
| - | ```sql | + | < |
| CREATE DATABASE piwigo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | CREATE DATABASE piwigo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
| CREATE USER ' | CREATE USER ' | ||
| Zeile 65: | Zeile 106: | ||
| FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
| EXIT; | EXIT; | ||
| - | ``` | + | </ |
| + | |||
| + | > **Per Adminer statt Kommandozeile? | ||
| + | |||
| + | ==== Alternative per Weboberfläche: | ||
| + | |||
| + | Wer die drei SQL-Zeilen lieber klickt statt tippt: Läuft noch kein Verwaltungstool für die Datenbank, lohnt sich die Installation von **Adminer**, | ||
| + | |||
| + | <file yaml docker-compose.yml> | ||
| + | services: | ||
| + | adminer: | ||
| + | image: adminer: | ||
| + | container_name: | ||
| + | restart: unless-stopped | ||
| + | environment: | ||
| + | - ADMINER_DEFAULT_SERVER=< | ||
| + | ports: | ||
| + | - 8087:8080 | ||
| + | </ | ||
| + | |||
| + | Alternativ genauso einfach über Community Applications: | ||
| + | |||
| + | > **Wichtig beim Login:** Das Feld „Datenbank" | ||
| + | |||
| + | * **Datenbank anlegen:** Auf Server-Ebene unten auf //„Create database"// | ||
| + | * **Benutzer anlegen:** Auf Server-Ebene (oder in der neuen Datenbank) den Menüpunkt // | ||
| + | |||
| + | Das entspricht genau den drei SQL-Zeilen von oben, nur per Klick statt getippt. | ||
| + | |||
| + | > **Adminer oder phpMyAdmin? | ||
| - | Läuft daneben bereits Adminer oder phpMyAdmin für diesen Container, geht das Anlegen genauso bequem über die Weboberfläche. | + | Als Datenbank-Host trägst du im Piwigo-Assistenten die IP des Unraid-Servers (oder den Container-Namen, |
| - | > **Geteilter Container: | + | > **Geteilter Container: |
| - | ### Option B · eigener, zweiter Datenbank-Container | + | ==== Option B · eigener, zweiter Datenbank-Container |
| - | Spricht etwas dagegen, den vorhandenen Server mitzubenutzen (andere App, andere Backup-Routine, | + | Spricht etwas dagegen, den vorhandenen Server mitzubenutzen (andere App, andere Backup-Routine, |
| - | ```yaml | + | < |
| services: | services: | ||
| piwigo-db: | piwigo-db: | ||
| Zeile 93: | Zeile 163: | ||
| - 3307:3306 | - 3307:3306 | ||
| restart: unless-stopped | restart: unless-stopped | ||
| - | ``` | + | </ |
| - | Im Piwigo-Setup-Assistenten dann als Datenbank-Host | + | Im Piwigo-Setup-Assistenten dann als Datenbank-Host |
| - | > **Hinweis zur Adresse:** Egal für welche Option: Wer beide Container in ein gemeinsames Docker-Netzwerk hängt, kann durchgehend mit **Container-Namen** statt IP-Adressen arbeiten | + | > **Hinweis zur Adresse:** Egal für welche Option: Wer beide Container in ein gemeinsames Docker-Netzwerk hängt, kann durchgehend mit **Container-Namen** statt IP-Adressen arbeiten. Das übersteht spätere IP-Änderungen des Unraid-Servers. |
| - | ## 03 · Piwigo-Container | + | ===== 03 · Piwigo-Container |
| - | In Community Applications nach `Piwigo` suchen. Ist kein Template gelistet, lässt sich der Container auch manuell über „Docker → Add Container" | + | In Community Applications nach '' |
| - | ```yaml | + | < |
| services: | services: | ||
| piwigo: | piwigo: | ||
| Zeile 118: | Zeile 188: | ||
| - 8181:80 | - 8181:80 | ||
| restart: unless-stopped | restart: unless-stopped | ||
| - | ``` | + | </ |
| - | Wichtig sind die beiden Volumes: | + | Wichtig sind die beiden Volumes: |
| - | ## 04 · Ersteinrichtung | + | ===== 04 · Ersteinrichtung |
| - | Container starten und im Browser | + | Container starten und im Browser |
| - | - **Datenbank-Host: | + | * **Datenbank-Host: |
| - | - **Datenbank-Name / Benutzer / Passwort:** die Werte aus Schritt 02 | + | |
| - | - **Admin-Konto: | + | |
| - | - **Galerie-Name: | + | |
| - | Nach dem Assistenten landest du direkt im Admin-Bereich | + | Nach dem Assistenten landest du direkt im Admin-Bereich. Von hier aus geht es an Videos und Uploads. |
| - | ## 05 · Video-Wiedergabe aktivieren | + | ===== 05 · Video-Wiedergabe aktivieren |
| Piwigo nimmt Videos zwar entgegen, spielt sie aber ohne Zusatz-Plugin nicht im Browser ab. | Piwigo nimmt Videos zwar entgegen, spielt sie aber ohne Zusatz-Plugin nicht im Browser ab. | ||
| - | **VideoJS-Plugin installieren: | + | **Video-Plugin installieren: |
| **Erlaubte Dateiformate: | **Erlaubte Dateiformate: | ||
| - | | | | | + | ^ Empfohlen | '' |
| - | |---|---| | + | ^ Vermeiden | '' |
| - | | Empfohlen | `mp4`, `m4v`, `webm`, `ogv` | | + | |
| - | | Vermeiden | `mov` – iPhone-Videos vorher nach MP4 (H.264 + AAC) konvertieren, | + | |
| - | > **Achtung: | + | > **Achtung: |
| - | ## 06 · Upload-Limits erhöhen | + | ===== 06 · Upload-Limits erhöhen |
| - | PHP begrenzt Uploads standardmäßig auf wenige MB – für Fotos meist ausreichend, | + | PHP begrenzt Uploads standardmäßig auf wenige MB: für Fotos meist ausreichend, |
| Zuerst prüfen, welche Konfigurationsdatei im Container existiert: | Zuerst prüfen, welche Konfigurationsdatei im Container existiert: | ||
| - | ```bash | + | < |
| docker exec -it piwigo find / -maxdepth 4 -iname " | docker exec -it piwigo find / -maxdepth 4 -iname " | ||
| - | ``` | + | </ |
| - | Bei LinuxServer-PHP-Images liegt eine überschreibbare | + | Bei LinuxServer-PHP-Images liegt eine überschreibbare |
| - | ```ini | + | < |
| upload_max_filesize = 2048M | upload_max_filesize = 2048M | ||
| post_max_size = 2048M | post_max_size = 2048M | ||
| memory_limit = 512M | memory_limit = 512M | ||
| max_execution_time = 600 | max_execution_time = 600 | ||
| - | ``` | + | </ |
| - | Anschließend den Container neu starten. Läuft davor ein **Reverse Proxy** (SWAG, Nginx Proxy Manager), muss dessen Body-Size-Limit (z. B. `client_max_body_size`) ebenfalls angehoben werden | + | Anschließend den Container neu starten. Läuft davor ein **Reverse Proxy** (SWAG, Nginx Proxy Manager), muss dessen Body-Size-Limit (z. B. '' |
| > **Praxiswert: | > **Praxiswert: | ||
| - | ## 07 · Alben & Präsentation | + | ===== 07 · Alben & Präsentation |
| - | - **Struktur zuerst:** Alben und Unteralben anlegen, bevor der große Upload beginnt | + | * **Struktur zuerst:** Alben und Unteralben anlegen, bevor der große Upload beginnt, denn Piwigo sortiert nachträglich verschobene Fotos nicht automatisch neu ein. |
| - | - **Upload:** per Weboberfläche (Mehrfachauswahl) oder über die offizielle Mobile-App direkt vom Smartphone in ein bestehendes Album. | + | |
| - | - **Diashow: | + | |
| - | - **Freigabe ohne Benutzerkonto: | + | |
| - | ## 08 · Von unterwegs erreichen (optional) | + | ===== 08 · Von unterwegs erreichen (optional) |
| Für Zugriff außerhalb des Heimnetzes nicht den Port direkt am Router freigeben, sondern einen **Reverse Proxy mit HTTPS** davorschalten (z. B. SWAG oder Nginx Proxy Manager, jeweils ebenfalls als Unraid-Container). Piwigo bekommt dann eine eigene Subdomain, der Proxy übernimmt Zertifikat und Verschlüsselung. | Für Zugriff außerhalb des Heimnetzes nicht den Port direkt am Router freigeben, sondern einen **Reverse Proxy mit HTTPS** davorschalten (z. B. SWAG oder Nginx Proxy Manager, jeweils ebenfalls als Unraid-Container). Piwigo bekommt dann eine eigene Subdomain, der Proxy übernimmt Zertifikat und Verschlüsselung. | ||
| - | > **Sicherheit: | + | > **Sicherheit: |
| - | ## 09 · Fehlerbehebung | + | ===== 09 · Fehlerbehebung |
| - | | Symptom | + | ^ Symptom |
| - | |---|---| | + | | Access denied for user "piwigo"@"…" |
| - | | `Access denied for user 'piwigo'@'…' | + | |
| | Piwigo erreicht die Datenbank nach Unraid-Neustart nicht mehr | Meist eine geänderte Container-IP. Feste IP vergeben oder auf ein benutzerdefiniertes Docker-Netzwerk mit Container-Namen umstellen. | | | Piwigo erreicht die Datenbank nach Unraid-Neustart nicht mehr | Meist eine geänderte Container-IP. Feste IP vergeben oder auf ein benutzerdefiniertes Docker-Netzwerk mit Container-Namen umstellen. | | ||
| - | | Video wird als Download angeboten statt abgespielt | VideoJS-Plugin fehlt oder ist deaktiviert (Schritt 05). | | + | | Video wird als Download angeboten statt abgespielt | Video-Plugin |
| - | | Video wird gar nicht erst akzeptiert | Dateiendung nicht freigegeben, | + | | Video wird gar nicht erst akzeptiert | Dateiendung nicht freigegeben, |
| - | | Upload großer Dateien bricht ab | `upload_max_filesize`/`post_max_size` in der php-local.ini zu niedrig (Schritt 06) – oder Limit im vorgeschalteten Reverse Proxy. | | + | | Upload großer Dateien bricht ab | '' |
| - | | Rechte-/ | + | | Rechte-/ |
| - | | Host-Port | + | | Host-Port |
| - | ## 10 · Backup | + | ===== 10 · Backup |
| Drei Dinge gehören gesichert, damit im Notfall alles wiederherstellbar ist: | Drei Dinge gehören gesichert, damit im Notfall alles wiederherstellbar ist: | ||
| - | - `/ | + | * '' |
| - | - `/ | + | * '' |
| - | - ein regelmäßiger **MariaDB-Dump** der `piwigo`-Datenbank (Alben, Nutzer, Metadaten stecken hier, nicht in den Dateien) | + | |
| - | ```bash | + | < |
| docker exec mariadb mysqldump -u piwigo -p piwigo > piwigo-backup-$(date +%F).sql | docker exec mariadb mysqldump -u piwigo -p piwigo > piwigo-backup-$(date +%F).sql | ||
| - | ``` | + | </ |
| Das CA-Plugin „Appdata Backup / Restore" | Das CA-Plugin „Appdata Backup / Restore" | ||
| - | --- | + | ---- |
| - | *Getestet | + | //Produktiv eingerichtet und getestet |