Fotos teilen im Fediverse ist im Aufschwung. Spätestens seit Instagram viele User durch absurde Regeländerungen verschreckt hat, werden Alternativen gesucht, Bilder mit anderen zu teilen. Pixelfed profitierte zu Jahresanfang massiv davon und auch Vernissage erlebt stetigen Zuwachs. Auf pnpde.social betreiben wir einen Vernissage-Server – soweit uns bekannt zurzeit der einzige öffentliche neben der Heimatinstanz.
In diesem Artikel beschreibe ich, wie du Vernissage selbst hosten kannst. Wenn du dich beeilst, könntest du also Beitreiber*in der dritten öffentlichen Instanz werden! 🤯
Vorbereitung
Marcin Czachurski, der Entwickler von Vernissage, empfiehlt Docker für den Produktivbetrieb und stellt dafür fertige Container zur Verfügung. Natürlich kann man Vernissage trotzdem aus den Quellen bauen, schließlich ist es Open Source. Aber obwohl ich kein großer Docker-Fan bin, sehe ich ein, dass es in diesem frühen Stadium der Entwicklung sinnvoll ist, sich nicht mit Problemen herum zu schlagen, die durch unterschiedliche Umgebungen oder dadurch, dass ich absolut keinen Schimmer von Swift habe, entstehen. Also: Docker.
Mindestanforderungen für den Server sind nicht definiert, aber Vernissage verlangt keine Höchstleistung. Ich hatte keine Probleme es auf einem Cloudserver mit 2vCPU und 4GB RAM zu betreiben und aktuell läuft Vernissage auf vernissage.pnpde.social für ca. 40 User neben anderen Diensten auf einer Maschine mit 4vCPU und 8GB RAM (Hetzner CX32). Die Maschine langweilt sich dabei sehr.
Als Datenbanksystem wird PostgreSQL empfohlen. Vernissage kann alternativ auch in einer SQLite-Datenbank betrieben werden, damit habe ich mich aber außer für einen kurzen Test nicht beschäftigt. Wie die Datenbank vorzubereiten ist, habe ich im pnpde.social Wiki unter Vernissage hosten: PostgreSQL vorbereiten beschrieben. Die Anleitung geht davon aus, dass bereits ein laufendes PostgreSQL zur Verfügung steht. Falls das nicht der Fall ist, kann der Datenbankserver in den meisten Distributionen als pflegeleichtes Paket installiert werden. Hier findest du Infos zur PostgreSQL-Installation.
Zur Ablage der Dateien wird S3-Storage benötigt. Vernissage kann alternativ auch in einem lokalen Verzeichnis speichern, davon wird Seitens des Entwicklers aber ausdrücklich abgeraten. Ich habe derzeit eine lokale MinIO Installation in Verwendung. Im pnpde.social Wiki beschreibe ich die Einrichtung unter Vernissage hosten: MinIO aufsetzen. Demnächst werden wir vermutlich auf den S3 kompatiblen Hetzner Object Storage umziehen, dazu dann aber an anderer Stelle mehr (falls es nicht vollkommen unspektakulär wird, wovon ich tbh ausgehe).
Installation mit docker compose
Vernissage besteht aus vier Docker Containern, für die eine standardisierte docker-compose.yml und eine .env-Datei zur Verfügung gestellt werden. Die aktuellsten Versionen der Dateien sind unter Hosting Vernissage in Docker containers zu finden, eine deutschsprachige Erklärung dazu gibt es in Vernissage hosten: Vernissage mit docker compose. Sowohl die englische, als auch die deutschsprachige Anleitung stammen von mir und können als Referenz zur Basisinstallation heran gezogen werden.
Ich habe darauf acht gegeben, dass die docker-compose.yml für die meisten Installationen nicht angepasst werden muss. Sämtliche Konfiguration findet in der .env-Datei statt.
Reverse Proxy mit nginx
Vernissage stellt sowohl WebApp als auch API-Server unter dem gleichen Port zur Verfügung. Dieser Port muss aus dem Internet erreichbar sein. In den meisten Fällen wird dazu eine Reverse Proxy Konfiguration benötigt. Wie man nginx dafür verwendet, habe ich in Vernissage hosten: nginx Reverse Proxy beschrieben. Soviel sei dazu gesagt: Es gibt keine Überraschungen, es ist eine Reverse Proxy-Konfiguration wie viele andere, nur auf den Parameter client_max_body_size
solltest du achten. Er begrenzt die maximale Fotogröße, die hochgeladen werden kann.
WebPush und weitere Einstellungen
Abschließend kannst du WebPush einrichten. Das ermöglicht Push-Benachrichtigungen in der Vernissage WebApp. Die Einrichtung habe ich in Vernissage hosten: WebPush einrichten beschrieben. WebPush ist optional, aber ich würde sehr empfehlen es einzurichten, damit die User deiner Instanz nicht aktiv nachschauen müssen, ob es Kommentare etc. gibt.
Für einige weitere Einstellungen habe ich ein paar Hinweise in Vernissage hosten: Weitere Einstellungen dokumentiert.
Hilfsskript galerist
Für einige wiederkehrende Admin-Tätigkeiten habe ich ein einfaches Bashskript in die Vernissage-Installation gelegt. Es hilft z.B. beim Update und bei Versions- und Statusabfragen. Das Skript ist stark auf unsere Installation zugeschnitten, kann dir aber vielleicht als Idee dienen. Du findest galerist auf Codeberg, es beschreibt sich selbst in einem Kommentarblock.
Vernetzung im Fediverse
Untereinander finden sich Vernissage, Mastodon, Pixelfed etc. schnell, denn Vernissage implementiert ActivityPub und ist Teil des Fediverse – gegenseitiges Folgen funktioniert ohne Einschränkungen. Selbst wenn man nicht vor hat eigene Fotos zu posten, lohnt es sich Vernissage zu nutzen, um Leuten über die Plattformgrenzen hinweg zu folgen und ihre Bildpostings von Vernissage präsentiert zu bekommen, denn hier stehen die Bilder wirklich im Zentrum der Aufmerksamkeit.
Unter pnpde.social/#fotos findest du eine kurze Präsentation, Links zu weiteren Infos und – wichtig – einen Invitecode für unseren Server :–)
Die Originalversion dieses Artikels ist im Blog des Autors erschienen: https://blog.pnpde.social/spielleitung/vernissage-hosten
Zur Fediverse-Artikelserie
Dieser Artikel ist Teil einer Artikelserie zu Fediverse-Diensten: Serie – Fediverse-Dienste: Die Idee
Bisher sind darin erschienen:
Microblogging:
- Calckey/Firefish - Kommunikation im Fediverse auf einem neuen Level
- Pleroma & Akkoma: Einfache Kommunikation im Fediverse
- Misskey: Micro-Blogging Plattform mit Vielfalt an Funktionen
- Foundkey: nicht nur Microblogging
- GoToSocial - ein eigener, schneller Zugang ins Fediverse
Macroblogging:
- Friendica: Funktionsreich und doch verständlich
- Hubzilla - die mächtige ungeschminkte Königin des Fediverse
- (streams) - das geordnete Chaos im Fediverse
Content-Aggregation/ Forum
- Lemmy: Willkommen im Lemmyversum - Communitys im Fediverse
- kbin: Link-Sharing und Microblogging unter einem Dach
Spezialisierte Dienste:
- Pixelfed - Wie Mastodon, aber mit schönen Fotos (Image-Sharing)
- Getestet: TikTok-Alternative Loops (Kurzvideos)
- Vernissage hosten (Bildergalerien)
- PeerTube: Freier Videodienst (Video-Plattform)
- Gancio - ein föderierter Community-Event-Kalender, der Menschen verbindet (Event-Kalender)
- Events organisieren mit Mobilizon (Event-Kalender)
- Funkwhale - Audiostreaming mit Walen im Fediverse (Musik & Podcasts)
- Castopod - Podcast-Hosting mit Fediverse-Anschluss (Podcasts)
- BookWyrm - der Bücherdrache des Fediverse (Buchrezensionen)
Blogging mit Fediverse-Anschluss
Danke für die Vorstellung und die ganzen technischen Details zur Installation. Doch welche Vorteile bringt mir Vernissage? Gibt es bestimmte Dinge die dort anders oder besser gelöst sind als bei Pixelfed?
Die Open Source Welt der Self-Hosting Lösungen zum Teilen von Fotos ist groß:
Hoffentlich wird das eine oder andere Programm demnächst das ActivityPub-Protokoll einbauen um eine Verbindung mit dem Fediverse zu ermöglichen.
Ich möchte eigentlich nicht Pixelfed vs Vernissage aufmachen, denn beide Systeme haben ziemlich unterschiedliche Ansätze. Während sich Pixelfed als Instagram-Ablöse bewirbt, richtet sich Vernissage eher an ambitionierte Fotograf*innen. Aber auch wir standen vor der Frage, ob wir Pixelfed oder Vernissage hosten, von daher gerne ein paar Ansätze dazu.
Für's pnpde.social Projekt habe ich mir im Oktober 24 zuerst Pixelfed angesehen. Die Installation war zu dem Zeitpunkt aufgrund von Ungereimtheiten der Dokumentation ohne direkten Support kaum machbar. Im Test sind uns Fehler, vor allem im Reporting aufgefallen, die für uns (inklusives Projekt, Sicherheit der User geht vor) ein Nogo waren.
Ein für mich wesentlicher Unterschied ist auch, dass Vernissage sich nicht in unfertigen Features verzettelt und sehr konzentriert und planvoll entwickelt wird. Für uns war auch mitentscheidend, dass Marcin (der Vernissage Entwickler) nicht durch öffentliche Beleidigungen gegen andere Entwickler auffällt.
Das meiner Meinung nach wichtigste Plus von Vernissage ist allerdings sehr subjektiv: Es präsentiert Fotos einfach sehr, sehr hübsch.