Zum Inhalt

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, ogv und ogg
  • 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" und face: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.