ÜBERBLICKSo hängt alles zusammen
Momente - App ist dein selbst gehostetes Foto-Logbuch: Auf dem FreeBSD-Server
läuft eine schlanke Flask-Anwendung hinter nginx und Gunicorn, alle Daten —
die SQLite-Datenbank und sämtliche Fotos — liegen unter
/var/db/momente und verlassen deinen Server nie. Zwei Wege führen
hinein: die Web-Oberfläche im Browser (voller Funktionsumfang
inklusive Mitglieder, Adminbereich und Druckpaket) und die native
Android-App (Kotlin, Jetpack Compose), die über eine JSON-API
mit Bearer-Token spricht. Beide arbeiten auf denselben Daten; du kannst also
am Handy einen Moment festhalten und ihn am Rechner weiterbearbeiten.
Inhaltlich ist alles in Alben organisiert. Jedes Album gehört genau einem Konto, und die Besitzerin oder der Besitzer entscheidet pro Album, wer mitarbeitet — per Benutzername oder über einen einmaligen Einladungslink, der sogar die Registrierung ganz ohne bestehendes Konto erlaubt. Beim Anmelden tauscht die App dein Passwort gegen ein Geräte-Token; das Passwort selbst wird nie auf dem Handy gespeichert, und jedes Gerät lässt sich serverseitig einzeln wieder aussperren.
ROLLENWer darf was
Innerhalb eines Albums gibt es drei Rollen — Besitzer:in, Mitarbeit und nur Lesen — dazu den Admin der Installation. Admin-Rechte wirken bewusst nur auf Konten — in fremde Alben schauen Admins nicht hinein, sie sehen in der Übersicht nur Metadaten wie Name, Besitzer:in und Anzahl der Einträge. Die Rolle nur Lesen eignet sich z. B. für Großeltern: ansehen, reagieren und kommentieren ja, eigene Momente anlegen nein.
| Aktion | nur Lesen | Mitarbeit | Besitzer:in | Admin |
|---|---|---|---|---|
| Album ansehen, suchen, Fotobuch/Druckpaket erzeugen | ✓ | ✓ | ✓ | nur eigene |
| Reagieren und kommentieren | ✓ | ✓ | ✓ | — |
| Momente festhalten, eigene bearbeiten und löschen | — | ✓ | ✓ | nur eigene |
| Fremde Einträge im Album bearbeiten oder löschen | — | — | ✓ | — |
| Mitglieder/Rollen verwalten, Einladungen, Papierkorb | — | — | ✓ | — |
| Album umbenennen oder mitsamt Fotos löschen | — | — | ✓ | — |
| Konten anlegen, deaktivieren, Passwörter zurücksetzen | — | — | — | ✓ |
NEU IN v5Mehr Fotos, Reaktionen, Suche & mehr
Diese Funktionen sind in der aktuellen Version dazugekommen — auf dem Server, in der Web-Oberfläche und (Anzeige & Interaktion) in der Android-App:
- Mehrere Fotos pro Moment mit Galerie; das erste Foto ist das Deckbild. In der App tippst du beim Erfassen auf „Aus Galerie" und wählst mehrere Bilder; vorhandene Fotos entfernst du in der Web-Ansicht.
- Reaktionen & Kommentare unter jedem Moment — die goldene Münze als Gefällt-mir, Kommentare per Eingabefeld (in der App über „Kommentare (N)").
- Volltextsuche über Titel und Texte (Suchleiste oben).
- „An diesem Tag" zeigt oben Momente vom selben Kalendertag aus früheren Jahren.
- Papierkorb: Löschen verschiebt 30 Tage lang in den Papierkorb (Web: „Papierkorb" beim Album), danach automatische Entfernung.
- Fotobuch-Varianten: eigenes Deckblattfoto, Monats-Kapitelseiten, kompaktes Layout — im Fotobuch-Dialog wählbar.
- Komplett-Export je Album (album.json + alle Fotos als ZIP).
- E-Mail-Benachrichtigungen (optional, SMTP) über neue Momente und Kommentare — Adresse im Konto hinterlegen.
Als App ohne Store: Die Web-Oberfläche ist installierbar. Im Browser „Zum Startbildschirm hinzufügen" (Android: Chrome-Menü; iOS: Teilen → Zum Home-Bildschirm) — Momente startet dann im Vollbild. Für iPhones ist das der einfachste Weg zu einer App-Kachel.
SCHRITT 1Server vorbereiten oder aktualisieren
Frische Installationen folgen einfach dem README. Läuft dein Server schon mit einer älteren Version, sichere zuerst die Daten — eine Zeile genügt, weil alles in einem Verzeichnis liegt — und spiele dann die neuen Dateien ein:
# 1) Sicherung (Datenbank + Fotos in einem Rutsch)
tar -czf /root/momente-backup-$(date +%F).tgz -C /var/db momente
# 2) Neue Version einspielen
cp app.py /usr/local/www/momente/
cp -R templates static /usr/local/www/momente/
# 3) Neu starten und prüfen
service momente restart # erwartete Ausgabe: "Waiting for PIDS: ..."
curl -s https://momente.example.org/api/health
# {"app": "Momente - App", "ok": true}
Beim ersten Start nach dem Update migriert sich die Datenbank von selbst:
Das älteste Konto bekommt Admin-Rechte, und falls es schon Einträge gibt,
wandern sie gesammelt in ein gemeinsames Album namens „Unser
Logbuch“, in dem alle bisherigen Konten Mitglied sind — es geht also
nichts verloren und niemand verliert Zugriff. Startet der Dienst nicht,
steht der Grund in /var/log/momente/error.log; die typischen
rc.d-Stolpersteine sind im README beschrieben.
SCHRITT 2Android-App in Android Studio bauen
Du brauchst nur Android Studio (Koala oder neuer — ein passendes JDK bringt es mit) und beim ersten Mal eine Internetverbindung für Gradle und die Bibliotheken. Ein Google-Konto ist nicht nötig, die App kommt per USB oder als APK-Datei aufs Handy.
- Projekt öffnen: In Android Studio File → Open
und den Ordner
android/aus diesem Paket wählen. - Gradle-Sync abwarten: Studio lädt Gradle 8.7, das
Android-SDK (API 34) und die Abhängigkeiten (Compose, Coil, OkHttp).
Fehlt
gradlew, einmalgradle wrapper --gradle-version 8.7im Projektordner ausführen oder in den Studio-Einstellungen eine lokale Gradle-Version wählen. - Direkt aufs Handy: Am Telefon die Entwickleroptionen und USB-Debugging aktivieren, Gerät anschließen, oben auswählen und auf Run ▶ klicken — die App installiert und startet sich.
- Oder als APK weitergeben: Build → Build App
Bundle(s)/APK(s) → Build APK(s). Die Datei liegt danach unter
app/build/outputs/apk/debug/app-debug.apkund lässt sich z. B. per Dateifreigabe auf weitere Geräte kopieren („Unbekannte Apps installieren“ einmalig erlauben). - Optional, für den Dauerbetrieb: eine signierte Release-APK über Build → Generate Signed App Bundle / APK → APK erstellen; beim ersten Mal legt der Assistent einen Keystore an. Bewahre die Keystore-Datei auf — nur damit lassen sich später Updates über dieselbe App installieren.
DIE APPScreen für Screen durch die Android-App
Die folgenden Abbildungen sind Design-Mockups, die der umgesetzten Oberfläche eins zu eins entsprechen — echte Screenshots entstehen erst auf deinem Gerät. Der Ablauf in der App: anmelden, Album wählen, Momente festhalten, bei Bedarf das Fotobuch exportieren.
Anmelden
Trage die Adresse deines Servers ein (mit https://), dazu
Benutzername und Passwort. Die App ruft /api/login auf und
erhält ein Token, das zusammen mit dem Gerätenamen auf dem Server hinterlegt
wird — so siehst du in der Datenbank jederzeit, welche Geräte Zugriff haben.
Auf dem Handy landet nur das Token (in den App-Einstellungen), nie das
Passwort. Das allererste Konto der Installation entsteht einmalig im Browser
unter /setup; weitere Konten legt der Admin an oder sie
entstehen über Einladungslinks. Schlägt die Anmeldung fehl, unterscheidet die
Meldung nicht zwischen falschem Namen, falschem Passwort und deaktiviertem
Konto — das ist Absicht, damit sich Benutzernamen nicht erraten lassen.
Meine Alben
Nach dem Anmelden landest du auf deiner Albenliste: jedes Album mit goldener Initial-Münze, der Anzahl der Momente und deiner Rolle („dein Album“ oder „von Katja“). Antippen öffnet die Timeline; „Abmelden“ oben rechts entwertet das Token auch auf dem Server, nicht nur lokal. Die Liste lädt bei jedem Öffnen frisch — wirst du also gerade in ein neues Album eingeladen, taucht es beim nächsten Wechsel auf diese Ansicht auf. Neue Alben anlegen sowie Mitglieder und Einladungen verwalten bleibt bewusst der Web-Oberfläche vorbehalten: Diese selteneren Verwaltungsaufgaben sind dort mit Tastatur und großen Formularen besser aufgehoben, und die App bleibt schlank.
Logbuch (Timeline)
Die Timeline zeigt alle Momente des gewählten Albums, neueste zuerst und nach Monaten gruppiert; die goldene Tagesmünze trägt den Kalendertag. Jede Karte zeigt Foto, Überschrift, Text und wer den Moment festgehalten hat. „Bearbeiten“ und „Löschen“ erscheinen nur dort, wo du sie auch benutzen darfst — als Mitglied an deinen eigenen Einträgen, als Besitzer:in an allen. Löschen fragt sicherheitshalber nach und entfernt den Eintrag endgültig, samt Foto und Vorschaubild auf dem Server. Der goldene +-Knopf unten rechts startet einen neuen Moment, „Fotobuch“ oben rechts den PDF-Export, und „Alben“ links führt zurück zur Übersicht.
Moment festhalten
Das Datum steht auf heute, lässt sich über den Knopf aber beliebig zurückdatieren — praktisch, wenn du einen Tag nachträgst; die Timeline sortiert nach diesem Datum, nicht nach dem Zeitpunkt des Eintippens. Überschrift und Text sind optional, schon ein Satz genügt. „Foto aufnehmen“ öffnet direkt die Kamera (die Aufnahme wird nur kurz im App-Cache zwischengelagert), „Aus Galerie“ den Android-Fotopicker — beides ohne zusätzliche Berechtigungen. Beim Speichern lädt die App alles per Multipart hoch; der Server richtet das Bild anhand der EXIF-Drehung korrekt aus, verkleinert es auf maximal 2400 Pixel Kantenlänge, wirft Metadaten weg und erzeugt ein Vorschaubild für die Timeline. Beim Bearbeiten eines Eintrags ersetzt ein neu gewähltes Foto das alte; ohne Auswahl bleibt das vorhandene erhalten.
Fotobuch (PDF)
Wähle Titel sowie Von- und Bis-Datum — vorbelegt mit Albumname, Jahresanfang und heute. Der Server setzt daraus ein A4-PDF: ein Deckblatt mit Titel und Zeitraum, dann pro Moment eine Seite mit groß eingepasstem Foto, goldener Trennlinie, Datum, Autor:in, Überschrift und Text. Nach dem Erzeugen öffnet sich der Android-Speicherdialog, du bestimmst also selbst, ob die Datei in „Downloads“, auf der SD-Karte oder direkt in einem Cloud-Ordner landet. Bei sehr großen Zeiträumen mit hunderten Fotos darf der Export ruhig eine Weile dauern — die App wartet bis zu zwei Minuten, nginx ist im Beispiel auf 120 Sekunden eingestellt.
WEBAlben anlegen, Mitglieder einladen, zusammenarbeiten
Die Web-Oberfläche unter deiner Server-Adresse ist das Zuhause der Verwaltung. Auf der Startseite „Meine Alben“ legst du mit einem Namen ein neues Album an — du wirst automatisch Besitzer:in. In der Timeline eines eigenen Albums findest du unter „Album verwalten“ außerdem Umbenennen und das endgültige Löschen (mit Rückfrage; dabei verschwinden alle Einträge und Fotos des Albums vom Server). Mitglieder, die ein Album nicht mehr begleiten möchten, verlassen es selbst über den Link in der Timeline — ihre bereits festgehaltenen Momente bleiben dem Album erhalten.
„Mitglieder & Einladungen“ in der Timeline (nur als Besitzer:in sichtbar) bündelt die Zusammenarbeit. Hat die Person schon ein Konto auf deinem Server, genügt ihr Benutzername — sie ist sofort Mitglied und sieht das Album beim nächsten Laden ihrer Albenliste. Für alle anderen erzeugst du einen Einladungslink: Er gilt für genau eine Person, wird aus Sicherheitsgründen nur ein einziges Mal direkt nach dem Erstellen angezeigt (auf dem Server liegt nur ein Hash) und lässt sich jederzeit zurückziehen, solange er nicht eingelöst wurde. Verschicke ihn per Messenger oder Mail.
Öffnet die eingeladene Person den Link, sieht sie, wer sie wohin einlädt. Ohne Konto füllt sie Anzeigename, Benutzername und Passwort aus und ist mit einem Klick registriert, angemeldet und Mitglied des Albums; mit bestehendem Konto meldet sie sich erst an und öffnet den Link danach erneut — dann genügt „Beitreten“. In beiden Fällen wird der Link dabei entwertet. Möchtest du jemanden wieder ausladen, entfernst du das Mitglied auf derselben Seite; die Person verliert sofort den Zugriff, ihre bisherigen Einträge bleiben bestehen und tragen weiterhin ihren Namen.
ADMINDer Adminbereich
Das erste Konto aus /setup ist automatisch Admin und sieht
im Kopfbereich den Link „Admin“. Die Kontentabelle zeigt zu jedem Konto die
Zahl eigener Alben, Einträge und angemeldeter App-Geräte. Vier Aktionen
stehen bereit: Anlegen (mit optionalen Admin-Rechten, etwa
für eine zweite Vertrauensperson), Deaktivieren — das Konto
kann sich nicht mehr anmelden, laufende Browser-Sitzungen enden und alle
App-Tokens werden entwertet, die Daten bleiben aber vollständig erhalten und
ein erneutes Aktivieren stellt alles wieder her —, Passwort
setzen (entwertet ebenfalls alle App-Tokens, danach meldet sich die
Person überall neu an) und Löschen.
Drei Schutzregeln verhindern Unfälle: Der letzte aktive Admin kann sich weder deaktivieren noch die Admin-Rechte entziehen noch löschen — so sperrst du dich nie selbst aus. Konten, die Alben besitzen oder Einträge geschrieben haben, lassen sich nicht löschen, sondern nur deaktivieren, damit keine Erinnerungen verschwinden. Und in fremde Alben schauen Admins grundsätzlich nicht hinein: Die Alben-Übersicht zeigt bewusst nur Name, Besitzer:in, Mitglieder- und Eintragszahl.
DRUCKENVom Album zum gedruckten Fotobuch
Weder CEWE noch Pixum bieten eine öffentliche Bestell-Schnittstelle, über die man ein fertiges Buch direkt hochladen könnte — gestaltet und bestellt wird dort in der jeweiligen Fotowelt-Software (Pixum nutzt dieselbe Software-Familie wie CEWE). Genau dafür ist „Drucken lassen“ in der Timeline gebaut: Es erzeugt ein Druckpaket als ZIP, optional auf einen Zeitraum eingegrenzt, mit allem, was die Gestaltungssoftware braucht:
fotos/— alle Fotos in Druckauflösung, chronologisch nummeriert nach dem Muster001_2026-03-01_Erstes_Lachen.jpg. Die Nummerierung sorgt dafür, dass jede Software die richtige Reihenfolge übernimmt.bildunterschriften.csv— Nummer, Datum, Autor:in, Überschrift, Text und Dateiname zu jedem Moment, als Semikolon-Tabelle mit BOM, damit Excel und LibreOffice Umlaute korrekt anzeigen. Daraus kopierst du die Texte in die Textfelder des Buchs.fotobuch.pdf— das fertig gesetzte Buch als Vorlage fürs Layout oder direkt für Druckdienste, die PDFs annehmen.LIESMICH.txt— dieselben Schritte noch einmal zum Nachlesen, direkt im Paket.
Der Weg zum bestellten Buch: Paket entpacken, die CEWE Fotowelt oder
Pixum Fotowelt Software öffnen und ein Fotobuch beginnen, dann unter den
Fotoquellen den entpackten Ordner fotos hinzufügen — in der
CEWE Fotowelt z. B. über Optionen → Einstellungen → Fotoquellen
oder direkt links im Gestaltungsbereich unter „Fotos & Videos“. Der
Gestaltungsassistent verteilt die Bilder automatisch in der vorgegebenen
Reihenfolge; zum Schluss übernimmst du die Texte aus der CSV und bestellst.
Über die Umgebungsvariable MOMENTE_PRINT_URL kannst du auf der
Drucken-Seite zusätzlich einen Link zu deinem bevorzugten Druckdienst
einblenden; im Code ist die Anbieterliste als kleine Adapter-Struktur
angelegt, sodass sich eine echte Bestell-API später ergänzen lässt, sollte
ein Anbieter eine veröffentlichen.
VERZEICHNISAnmeldung über FreeIPA / LDAP
Wenn du zuhause oder im Verein schon ein FreeIPA oder einen anderen
LDAP-Server betreibst, melden sich alle einfach mit ihrem gewohnten Konto an
— ganz ohne zweites Passwort. Sobald MOMENTE_LDAP_URL in der
.env gesetzt ist, prüft der Server unbekannte Anmeldungen gegen
das Verzeichnis: Beim ersten Erfolg entsteht das Konto automatisch (mit dem
Anzeigenamen aus dem Verzeichnis), bei jedem weiteren Login werden Name und
Rechte frisch übernommen. Das gilt für Web und Android-App gleichermaßen,
denn beide nutzen denselben Anmeldeweg. Lokale Konten — etwa dein
Setup-Admin — funktionieren parallel weiter und dienen als Rettungsanker,
falls das Verzeichnis einmal nicht erreichbar ist.
Die Gruppenzuordnung läuft über das
memberOf-Attribut: MOMENTE_LDAP_ALLOW_GROUPS
bestimmt, wer sich überhaupt anmelden darf (z. B. die FreeIPA-Gruppe
momente-users; leer bedeutet: alle authentifizierten Konten),
und Mitglieder der Gruppen aus MOMENTE_LDAP_ADMIN_GROUPS werden
automatisch Admin — nimmst du jemanden aus der Gruppe, verschwinden die
Rechte mit der nächsten Anmeldung. Drei Leitplanken sorgen für Ruhe: Eine
lokale Deaktivierung im Adminbereich sperrt ein Konto immer, auch bei
gültigen Verzeichnis-Zugangsdaten; der Gruppen-Sync degradiert nie den
letzten aktiven Admin; und Passwörter von LDAP-Konten verwaltet allein das
Verzeichnis — der Reset-Knopf im Adminbereich ist für sie gesperrt, solche
Konten tragen dort ein graues LDAP-Abzeichen.
Für FreeIPA genügt der Direkt-Bind über eine DN-Vorlage:
MOMENTE_LDAP_USER_DN="uid={username},cn=users,cn=accounts,dc=familie,dc=lan".
Alternativ gibt es den Suchmodus mit Dienstkonto
(MOMENTE_LDAP_BIND_DN, …_BASE_DN,
…_USER_FILTER), mit dem auch Active Directory funktioniert,
etwa über (sAMAccountName={username}). Verbinde dich per LDAPS
oder StartTLS; bei eigener PKI zeigt MOMENTE_LDAP_CA_CERT auf
das CA-Zertifikat (FreeIPA: /etc/ipa/ca.crt). Verbinde
möglichst über den Hostnamen; bei Verbindung per IP-Adresse trägst du
den Namen aus dem Zertifikat in MOMENTE_LDAP_VALID_NAMES
ein — "*" akzeptiert jeden Namen, prüft die Kette gegen
die CA aber weiterhin. Alle Variablen
stehen kommentiert in deploy/momente.env.example; technisch
braucht der Server nur das reine Python-Paket ldap3.
DIAGRAMMEProzessansichten in Lucidchart importieren
Die Datei momente-prozesse-drawio.xml bildet alle Funktionen
als Flussdiagramme ab — zehn Seiten: Systemarchitektur, Erststart und
Anmeldung, Moment festhalten, Logbuch anzeigen, Bearbeiten/Löschen,
Fotobuch-Export, Mitglieder und Abmelden, Benutzerverwaltung mit Einladungen,
die Druckanbindung an CEWE und Pixum sowie die Anmeldung über FreeIPA/LDAP. Sie liegt im draw.io-Format vor,
das Lucidchart offiziell importiert:
- In Lucidchart ein Dokument öffnen und Datei → Importieren wählen (bzw. auf der Startseite Import → Draw.io).
momente-prozesse-drawio.xmlauswählen — jede der zehn Prozessansichten erscheint als eigene Seite.- Lucidchart priorisiert beim Import Funktion vor Optik; Farben oder Abstände lassen sich danach frei anpassen. Das Bearbeiten importierter Diagramme setzt einen bezahlten Lucid-Tarif voraus.
Dieselbe Datei öffnet auch draw.io/diagrams.net direkt, falls du dort arbeiten möchtest.
SICHERHEITEmpfehlungen für den Betrieb
Nur über HTTPS: Das Zertifikat richtest du wie im README
per certbot ein. Das Android-Manifest erlaubt momentan auch
unverschlüsseltes HTTP (usesCleartextTraffic="true"), damit
Tests im Heimnetz ohne Zertifikat funktionieren — für den Dauerbetrieb
stelle den Wert auf false und baue die App neu.
Geräte im Blick: Jede App-Anmeldung legt ein eigenes Token
mit Gerätenamen an. Geht ein Handy verloren, genügt „Abmelden“ auf einem
anderen Weg nicht — entferne stattdessen die Zeile des Geräts direkt auf dem
Server, danach ist der Zugang sofort tot, ohne dass jemand das Passwort
ändern muss:
sqlite3 /var/db/momente/momente.sqlite3 \
"SELECT id, device, created_at FROM tokens;"
sqlite3 /var/db/momente/momente.sqlite3 "DELETE FROM tokens WHERE id = 3;"
Alternativ erledigt das der Admin bequemer über „Passwort setzen“ oder
„Deaktivieren“ — beides entwertet alle Tokens des Kontos.
Sicherungen: Alles Wichtige liegt in
/var/db/momente; ein nächtliches
tar -czf … -C /var/db momente per Cron auf eine andere Platte
genügt als vollständiges Backup. Geheimnisse: Setze in der
.env einen festen MOMENTE_SECRET_KEY, sonst
verlieren Browser-Sitzungen bei jedem Neustart ihre Gültigkeit.
APIKurzreferenz für Bastler
Die App nutzt eine kleine JSON-API; mit demselben Token kannst du auch
eigene Skripte anbinden. Alle Aufrufe außer Login und Health erwarten den
Header Authorization: Bearer <token>:
| Aufruf | Zweck |
|---|---|
POST /api/login | Token holen — JSON mit
username, password, optional device. |
POST /api/logout | Eigenes Token entwerten. |
GET /api/albums | Eigene Alben mit Rolle und Eintragszahl. |
GET /api/albums/<id>/entries | Alle Momente eines Albums, neueste zuerst — je Moment photos, reaction_count, reacted, comment_count, can_edit. |
POST /api/albums/<id>/entries | Moment anlegen — Multipart mit
entry_date, title, body, mehrfach photos
(Feld mehrfach senden). Nur Mitarbeit/Besitzer:in, sonst HTTP 403. |
POST /api/entries/<id> · DELETE /api/entries/<id> |
Ändern (weitere photos anhängen, remove_photo=ID entfernen) bzw.
in den Papierkorb verschieben (Soft-Delete). |
GET /api/albums/<id>/search?q=… | Volltextsuche; liefert Momente wie /entries. |
GET /api/albums/<id>/onthisday | Momente vom heutigen Kalendertag aus früheren Jahren. |
POST /api/entries/<id>/reaction | Reaktion umschalten; liefert reacted und reaction_count. |
GET · POST /api/entries/<id>/comments | Kommentare lesen bzw. anlegen ({"body": "…"}). |
GET /api/photo/<name> | Foto oder Vorschaubild (…_thumb.jpg) abrufen. |
POST /api/albums/<id>/export | Fotobuch-PDF — JSON mit
start, end, title. |
HILFEWenn etwas hakt
| Symptom | Ursache und Lösung |
|---|---|
| „Verbindung fehlgeschlagen“ beim Anmelden | Server-Adresse prüfen (inkl. https://), dann
/api/health im Handy-Browser öffnen. Kommt dort nichts an, liegt
es an DNS, Firewall oder nginx — nicht an der App. Bei http://
im Heimnetz: Cleartext muss im Manifest erlaubt sein (Standard im
Testbetrieb). |
| „Nicht angemeldet“ mitten in der Nutzung | Das Token wurde serverseitig entwertet — durch Abmelden anderswo, Passwort-Reset oder Deaktivierung. Einfach neu anmelden. |
| „Anmeldung fehlgeschlagen“ trotz richtigem Passwort | Vermutlich wurde das Konto im Adminbereich deaktiviert — ein Admin kann es dort wieder aktivieren. |
| 403 „Du gehörst nicht zu diesem Album“ | Kein Fehler, sondern das Rechtemodell: Du bist (noch) kein Mitglied, oder du wurdest entfernt bzw. hast das Album verlassen. Die Besitzerin oder der Besitzer kann dich erneut einladen. |
| Einladungslink zeigt „nicht gefunden“ | Links gelten für genau eine Person: Er wurde schon eingelöst oder zurückgezogen. Einfach einen neuen Link erzeugen lassen. |
| Foto-Upload schlägt fehl | Meist das Größenlimit: client_max_body_size in nginx und
MOMENTE_MAX_UPLOAD in der .env müssen zur Fotogröße passen
(Vorgabe: 20–25 MB). |
| PDF-Export oder Druckpaket bricht bei großen Alben ab | proxy_read_timeout in nginx erhöhen (Vorgabe hier: 120 s);
die App wartet bis zu zwei Minuten. |
| Dienst startet nach dem Update nicht | service momente restart ausführen und die Ausgabe lesen;
Details stehen in /var/log/momente/error.log. Die typischen
rc.d-Fallstricke sind im README dokumentiert. |
| LDAP-Anmeldung schlägt fehl, Zugangsdaten stimmen aber | Drei Kandidaten: Das Konto ist in keiner Gruppe aus
MOMENTE_LDAP_ALLOW_GROUPS; es wurde im Adminbereich lokal
deaktiviert (Sperre gewinnt immer); oder die TLS-Prüfung scheitert — dann
hilft MOMENTE_LDAP_CA_CERT auf die richtige CA;
verbindest du per IP-Adresse, zusätzlich
MOMENTE_LDAP_VALID_NAMES mit dem Namen aus dem Zertifikat. Den genauen
Grund nennt /var/log/momente/error.log, nach außen bleibt die
Meldung bewusst allgemein. |
| Nach dem Update fehlen Einträge scheinbar | Sie liegen jetzt im automatisch angelegten Album „Unser Logbuch“ auf der Startseite — die Migration verschiebt Bestandsdaten dorthin, gelöscht wird nichts. |