Fotos¶
Das Fotomodul ist optional und nutzt einen directory-first Ansatz: BearStack importiert Fotos nicht in die Dokumentenablage, sondern rendert ein vorhandenes, read-only Fotoverzeichnis als Galerie. Die Mediendateien bleiben unverändert; BearStack legt Index, Tags, Vorschaubilder und Einstellungen getrennt davon ab.
Aktivierung¶
Minimal in .env:
BEARSTACK_PHOTOS_ENABLED=true
BEARSTACK_PHOTOS_DIR=/srv/photos
BEARSTACK_PHOTOS_DATA_DIR=/var/lib/bearstack/photos
BEARSTACK_PHOTOS_DIR ist das vorhandene read-only Fotoverzeichnis. BEARSTACK_PHOTOS_DATA_DIR ist der BearStack-eigene Fotobereich für erzeugte Dateien; standardmäßig liegen darunter thumbnails/ und die separate Foto-Indexdatenbank photos.db. Bei Bedarf können BEARSTACK_PHOTOS_CACHE_DIR und BEARSTACK_PHOTOS_DB_PATH einzeln überschrieben werden.
Nach dem Neustart erscheint Fotos in der Hauptnavigation.
Galerie und Suche¶
Unterstützt werden:
- Ordnernavigation, Bild- und Videowiedergabe
- Medienformate
jpg,jpeg,png,gif,webp,svg,mp4,webm,ogvundogg - On-demand-Thumbnails für JPEG, PNG und GIF
- separate SQLite-Foto-DB für den Metadatenindex
- EXIF-Datum, Kamera und GPS für JPEGs
- Adobe/MWG-XMP-Gesichtsregionen
- BearStack-Tags auf Ordnern und Medien
- Umlaut-tolerante Suche mit Feldfiltern wie
date:2024,directory:Urlaub,file_name:IMG,type:image,gps:true,tag:urlaub,person:"Marie Curie"undface:Marie - Kartenansicht mit konfigurierbarer Foto-Track-Auflösung
- Markdown-Blogdateien, GPX-Hinweise, Zufallslink und Fotoframe
Foto-Zufall und Metadaten¶
Der Zufallsendpunkt /photos/random liefert standardmäßig das Original direkt aus. Mit size=original bleibt es beim Original; mit size=ordner, size=galerie, size=gross, size=groß oder size=hd wird stattdessen die jeweilige konfigurierte Thumbnailgröße ausgeliefert.
Zusätzlich liefert der Endpunkt Metadaten als Response-Header: X-BearStack-Photo-Title, X-BearStack-Photo-Path, X-BearStack-Photo-Folder-Path, X-BearStack-Photo-Folder-URL, X-BearStack-Photo-Folder-Title sowie Link: <https://.../photos?...>; rel="up" als standardisierter Parent-Link.
Gesichter und XMP¶
Gesichtsdaten werden aus eingebettetem JPEG-XMP sowie XMP-Sidecars gelesen: photo.jpg.xmp, photo.jpg.XMP, photo.xmp und photo.XMP. BearStack speichert Namen und normalisierte Gesichtsboxen im Fotoindex und liefert sie in der Foto-JSON-API aus. Sie bleiben eigene Metadaten: Gesichtsnamen werden nicht automatisch zu Foto-Tags, erscheinen nicht in Tag-Listen und sind gezielt über person: oder face: suchbar.
Index und Worker¶
Unter Einstellungen -> Fotos kann die Foto-Track-Auflösung der Karte in sinnvollen Stufen von 500 m bis 10 km eingestellt werden. Sie legt fest, wie nah GPS-Fotos liegen müssen, um im fotobasierten Karten-Track zu einem Trackpunkt zusammengefasst zu werden.
Dort kann auch ein Index-Worker aktiviert werden. Er crawlt den Foto-Root ordnerweise im Hintergrund, überspringt unveränderte Ordner anhand ihres letzten Scan-Zeitpunkts und entfernt nicht mehr vorhandene Foto-, Ordner- und Blogeinträge ordnerlokal aus dem Index. Standardmäßig ist er deaktiviert; bei Aktivierung läuft er alle 60 Minuten mit niedriger I/O-Priorität, falls vom System unterstützt, und 250 ms Pause pro gescanntem Ordner.
Der separate Thumbnail-Worker ist ebenfalls standardmäßig deaktiviert. Bei Aktivierung läuft er alle 15 Minuten, erzeugt standardmäßig bis zu 15 fehlende Thumbnails pro Lauf und nutzt standardmäßig eine Thumbnail-Parallelität von 1.
Foto-Ordner¶
Ordner können nach Ordnerstandard, Name, Datum oder zufällig sortiert werden. Die Datumssortierung von Ordnern nutzt das aus dem Ordnernamen erkannte Anzeigedatum. Die Ordnerstandard-Sortierung wird über eine leere Steuerdatei im Ordner gesetzt:
.order_descending_name.pg2conf.order_ascending_name.pg2conf.order_descending_date.pg2conf.order_ascending_date.pg2conf.order_random.pg2conf
Ein Ordner mit der Datei .adminonly ist nur für Benutzer mit der Rolle admin zugänglich. Admin-only-Inhalte sind auch für Admins standardmäßig in Galerie, Suche, Zufall, Fotoframe, Kartenansicht und Foto-Tag-Listen ausgeblendet. Admins können sie im Sortieren-Menü der Galerie per Schalter einblenden; die Auswahl bleibt in der aktuellen Session gespeichert. Direkte Medien- und Thumbnail-URLs bleiben weiterhin nur Admins vorbehalten.
Berechtigungen¶
Fotorechte sind capability-basiert und werden über Rollen oder einzelne Permissions vergeben:
| Rolle oder Recht | Wirkung |
|---|---|
photos_read |
Galerie, Suche, Medien, Thumbnails, Zufallsbild und Fotoframe lesen |
photos_editor |
zusätzlich Foto- und Ordner-Tags bearbeiten |
photos_manager |
zusätzlich Fotoeinstellungen, Foto-Tag-Bibliothek, Index-Worker und Thumbnail-Worker verwalten |
admin |
vollständige Verwaltung und Zugriff auf .adminonly-Ordner |
Einzelrechte heißen photos.read, photos.edit und photos.manage. .adminonly-Ordner bleiben bewusst an die Rolle admin gebunden. Die vollständige Matrix steht unter Benutzer und Rechte.
Externe Werkzeuge wie ffmpeg und optional vipsthumbnail werden nur für Medienfunktionen benötigt, die sie tatsächlich brauchen.