Bildergalerie

Ein Bild sagt mehr als tausend Worte.

Als Verein möchten wir gerne zeigen was wir schönes machen. Einerseit können sich unsere Mitglieder so an Anlässe zurückerinnern, aber wir können so auch gegen aussen zeigen, was wir so machen.

Fotos eigenen sich dazu besonders gut. Sie fangen einen Moment ein und verewigen ihn. Der Verein möchte also gerne eine gute Möglichkeit diese Fotos zu publizieren und zugänglich zu machen.

Anforderungen

Das digitale Fotoalbum, oder eine Bildergalerie, für den Verein soll folgende Anforderungen erfüllen:

  • Fotos sollen einfach hinzugefügt werden können.
  • Der Speicherort soll zentral sein (d.h. alle Bilder sollen am gleichen Ort abgelegt werden).
  • Es soll genug Speicherplatz zur Verfügung stehen, damit hochauflösende Fotos hochgeladen werden können.
    Bestenfalls von mehr als einem Anlass gleichzeitig.
  • Fotos sollen in Galerien zusammengefasst werden können.
    Optionale Erweiterung: Galerien sollen in Alben zusammengefasst werden können.
  • Die Bilder sollen online veröffentlicht werden können.
  • Es darf nichts kosten (naja, nicht ganz, aber möglichst günstig und möglichst kein Abonement).

Mögliche Produkte und Lösungen

Eine online Bildergalerie ist nichts Neues und es gibt schon diverse Dienstleister, die Bilderhosting anbieten. Häufig werden solche Dienste von Fotografen genutzt, damit sie Portfolios mit diversen Kunden teilen können.

Zur Auswahl stehen Dienste wie Flickr, 500px, SmugMug, usw. wo Bilder hochgeladen, zusammengefasst und geteilt werden können. Alle Dienste haben eine Gratisversion, aber um den vollen Funktionsumfang nutzen zu können oder mehr Speicher zur Verfügung zu haben, muss normalerweise ein Abonement gelöst werden. Zudem sind die Dienste in der Regel amerikanisch und wir wissen nicht wo die Daten liegen. Also erstmal nichts für uns.

Dann gibt es noch die Möglichkeit so einen Dienst selbst zu betreiben. Piwigo ist eine Open-Source (Quellcode einsehbar) Fotogalerie. Wir könnten die Software also, wie unsere Webseite auch, selbst betreiben. Das verlangt aber wieder Infrastruktur und kostet dementsprechend (Webserver, Datenbank, Speicherplatz).

Eine weitere Variante sind sogenannte Static Site Generators. Ein Static Site Generator nutzt Textdateien, um eine Internetseite zu generieren. Das spart Rechenressourcen, weil die Seite nicht bei jeder Anfrage generiert werden muss. Ein Nachteil ist aber, dass die Bilder dort verfügbar sein müssen, wo die Internetseite generiert wird.

Umsetzung

Die dritte Variante wirkt am einfachsten und günstigsten. Ein schneller und flexibler Static Site Generator ist Hugo und wie es der Zufall möchte, gibt es auch bereits ein Theme für Bildergalerien: Gallery.

Mit ein paar Anpassungen kann das Theme so verwendet werden, dass die Bilder von einer externen Quelle geladen werden. In unserem Fall wird das ein Blob Storage sein. Ich bin noch unentschlossen diese Änderungen in das ursprüngliche Repository zurückzumelden. Es gibt zwar das Bedürfnis, dass die Bilder von externen Quellen geladen werden, jedoch ist diese Implementierung nicht so flexibel und wahrscheinlich auch nicht robust genug.

Als nächstes sollte es möglich sein, dass auch andere Personen Bildergalerien und Bilder hinzufügen können. Aktuell braucht es noch Programmierkenntnisse, aber es ist immerhin möglich mit wenig Aufwand neue Bilder hochzuladen. Eine aktualisierte Version der Internetseite wird dann automatisch erstellt und veröffentlicht.

Der gesamte Code ist, für alle die reinschauen wollen, öffentlich verfügbar in unserem GitHub Repository: https://github.com/Sportclub-Schneisingen/image-gallery