Zum Inhalt

Serverkonfiguration

Mit dem Standard-Docker-Image kann die gesamte erforderliche Konfiguration über den Browser vorgenommen werden. Je nach Bereitstellung kann es jedoch notwendig sein, die Serverkonfiguration anzupassen.

Diese Seite listet alle Methoden zur Änderung der Konfiguration und alle vorhandenen Konfigurationsoptionen auf.

Konfigurationsdatei vs. Umgebungsvariablen

Für die Einstellungen können Sie entweder eine Konfigurationsdatei oder Umgebungsvariablen verwenden.

Wenn Sie das Docker Compose-basierte Setup verwenden, können Sie eine Konfigurationsdatei einfügen, indem Sie den folgenden Listeneintrag unter dem Schlüssel volumes: im Block grampsweb: hinzufügen:

      - /path/to/config.cfg:/app/config/config.cfg
wobei /path/to/config.cfg der Pfad zur Konfigurationsdatei im Dateisystem Ihres Servers ist (die rechte Seite bezieht sich auf den Pfad im Container und darf nicht geändert werden).

Bei der Verwendung von Umgebungsvariablen,

  • prefixen Sie jeden Einstellungsnamen mit GRAMPSWEB_, um den Namen der Umgebungsvariablen zu erhalten
  • Verwenden Sie doppelte Unterstriche für geschachtelte Dictionary-Einstellungen, z.B. GRAMPSWEB_THUMBNAIL_CACHE_CONFIG__CACHE_DEFAULT_TIMEOUT setzt den Wert der Konfigurationsoption THUMBNAIL_CACHE_CONFIG['CACHE_DEFAULT_TIMEOUT']

Beachten Sie, dass Konfigurationsoptionen, die über die Umgebung festgelegt werden, Vorrang vor denen in der Konfigurationsdatei haben. Wenn beide vorhanden sind, "gewinnt" die Umgebungsvariable.

Nicht präfixierte Umgebungsvariablen sind veraltet

Aus historischen Gründen können einige Einstellungen – TREE, SECRET_KEY, USER_DB_URI, POSTGRES_USER, POSTGRES_PASSWORD, MEDIA_BASE_DIR, SEARCH_INDEX_DIR, EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, DEFAULT_FROM_EMAIL, BASE_URL und STATIC_PATH – weiterhin über eine Umgebungsvariable ohne das Präfix GRAMPSWEB_ festgelegt werden. Dies ist veraltet, protokolliert eine Warnung beim Start und wird in einer zukünftigen Version nicht mehr funktionieren. Verwenden Sie immer die präfixierte Form, z.B. GRAMPSWEB_TREE anstelle von TREE.

Beachten Sie, dass dies nur Umgebungsvariablen betrifft. In einer Konfigurationsdatei werden die Einstellungsnamen immer unpräfixiert verwendet.

Überprüfung auf veraltete Optionen

Veraltete Konfigurationsoptionen, von denen Ihr Server weiterhin abhängt – wie nicht präfixierte Umgebungsvariablen, SEARCH_INDEX_DIR oder EMAIL_USE_TLS – werden beim Start als Warnungen protokolliert. Seit Gramps Web API 3.22 werden sie auch zusammen mit ihrem Ersatz und der Version, in der die Unterstützung entfernt wird, oben auf der Systeminformationen-Seite (erreichbar über das Benutzersymbol in der oberen App-Leiste), angezeigt, wenn Sie als Administrator angemeldet sind.

Vorhandene Konfigurationseinstellungen

Die folgenden Konfigurationsoptionen existieren.

Erforderliche Einstellungen

Schlüssel Beschreibung
TREE Der Name der zu verwendenden Familienstamm-Datenbank. Zeigen Sie verfügbare Bäume mit gramps -l an. Wenn ein Baum mit diesem Namen nicht existiert, wird ein neuer leerer Baum erstellt.
SECRET_KEY Der geheime Schlüssel für Flask. Der Schlüssel darf nicht öffentlich geteilt werden. Eine Änderung macht alle Zugriffstoken ungültig.
USER_DB_URI Die Datenbank-URL der Benutzerdatenbank. Jede URL, die mit SQLAlchemy kompatibel ist, ist zulässig.

Info

Sie können einen sicheren geheimen Schlüssel z.B. mit dem Befehl generieren

python3 -c "import secrets;print(secrets.token_urlsafe(32))"

Optionale Einstellungen

Schlüssel Beschreibung
MEDIA_BASE_DIR Pfad, der als Basisverzeichnis für Mediendateien verwendet wird und das in Gramps festgelegte Medienbasisverzeichnis überschreibt. Bei Verwendung von S3 muss es die Form s3://<bucket_name> haben.
TREE_ID Der Verzeichnisname der zu verwendenden Familienstamm-Datenbank im Einzelbaum-Modus (wenn TREE nicht auf * gesetzt ist). Wenn gesetzt, identifiziert der Server den Baum anhand seines Verzeichnisnamens anstelle seines Anzeigenamens, was robuster gegenüber Umbenennungen ist. Erforderlich, wenn Sie den Baum über die API umbenennen möchten. Der Verzeichnisname kann über GET /api/trees/- (das Feld id) gefunden werden.
SEARCH_INDEX_DB_URI Datenbank-URL für den Suchindex. Nur sqlite oder postgresql sind als Backends erlaubt. Standardmäßig sqlite:///indexdir/search_index.db, wodurch eine SQLite-Datei im Ordner indexdir relativ zu dem Pfad, von dem das Skript ausgeführt wird, erstellt wird.
SEARCH_INDEX_DIR Veraltet (verwenden Sie stattdessen SEARCH_INDEX_DB_URI). Verzeichnis, das den Suchindex enthält. Wenn gesetzt, während SEARCH_INDEX_DB_URI nicht gesetzt ist, wird die Suchindex-URL als sqlite:///<SEARCH_INDEX_DIR>/search_index.db abgeleitet.
STATIC_PATH Pfad, von dem statische Dateien bereitgestellt werden (z.B. ein statisches Web-Frontend)
BASE_URL Basis-URL, unter der die API erreichbar ist (z.B. https://mygramps.mydomain.com/). Dies ist notwendig, um z.B. korrekte Links zum Zurücksetzen des Passworts zu erstellen.
CORS_ORIGINS Ursprünge, von denen CORS-Anfragen erlaubt sind. Standardmäßig sind alle nicht erlaubt. Verwenden Sie "*", um Anfragen von jeder Domain zuzulassen.
EMAIL_HOST SMTP-Server-Host (z.B. zum Versenden von E-Mails zum Zurücksetzen des Passworts)
EMAIL_PORT SMTP-Server-Port. Standardmäßig 465
EMAIL_HOST_USER SMTP-Server-Benutzername
EMAIL_HOST_PASSWORD SMTP-Server-Passwort
EMAIL_USE_TLS Veraltet (verwenden Sie stattdessen EMAIL_USE_SSL oder EMAIL_USE_STARTTLS). Boolean, ob TLS zum Versenden von E-Mails verwendet werden soll. Standardmäßig True. Bei Verwendung von STARTTLS setzen Sie dies auf False und verwenden einen anderen Port als 25.
EMAIL_USE_SSL Boolean, ob implizites SSL/TLS für SMTP verwendet werden soll (v3.6.0+). Standardmäßig True, wenn EMAIL_USE_TLS nicht ausdrücklich gesetzt ist. Typischerweise mit Port 465 verwendet.
EMAIL_USE_STARTTLS Boolean, ob explizites STARTTLS für SMTP verwendet werden soll (v3.6.0+). Standardmäßig False. Typischerweise mit Port 587 oder 25 verwendet.
DEFAULT_FROM_EMAIL "Von"-Adresse für automatisierte E-Mails
THUMBNAIL_CACHE_CONFIG Dictionary mit Einstellungen für den Thumbnail-Cache. Siehe Flask-Caching für mögliche Einstellungen.
REQUEST_CACHE_CONFIG Dictionary mit Einstellungen für den Anfrage-Cache. Siehe Flask-Caching für mögliche Einstellungen.
PERSISTENT_CACHE_CONFIG Dictionary mit Einstellungen für den persistenten Cache, der z.B. für Telemetrie verwendet wird. Siehe Flask-Caching für mögliche Einstellungen.
CELERY_CONFIG Einstellungen für die Celery-Hintergrundaufgabenwarteschlange. Siehe Celery für mögliche Einstellungen.
REPORT_DIR Temporäres Verzeichnis, in dem die Ausgabe von ausgeführten Gramps-Berichten gespeichert wird
EXPORT_DIR Temporäres Verzeichnis, in dem die Ausgabe des Exports der Gramps-Datenbank gespeichert wird
REGISTRATION_DISABLED Wenn True, wird die Registrierung neuer Benutzer nicht erlaubt (Standard False)
DISABLE_TELEMETRY Wenn True, wird die Telemetrie für Statistiken deaktiviert (Standard False). Siehe Telemetrie für Details.
PILLOW_MAX_IMAGE_PIXELS Setzt den Parameter PIL.Image.MAX_IMAGE_PIXELS, der die Anzahl der Pixel angibt, die das verarbeitete Bild enthalten kann. Siehe Docs für Details.
MAX_THUMBNAIL_FILE_BYTES Setzt eine harte maximale Dateigröße für Thumbnails. Standardmäßig 50 * 1024 * 1024 (50 MB). Eine Erhöhung kann den Speicherverbrauch erheblich steigern und zu Speicherüberläufen oder Datenverlust führen, wenn große Dateien im Speicher dekomprimiert werden.

Info

Bei der Verwendung von Umgebungsvariablen für die Konfiguration müssen boolesche Optionen wie EMAIL_USE_SSL entweder der String true oder false (groß-/kleinschreibungssensitiv!) sein.

Einstellungen für PostgreSQL-Datenbanken

Diese Einstellungen sind erforderlich, wenn Ihre Familienstämme in einer PostgreSQL-Datenbank mit dem SharedPostgreSQL-Addon gehostet werden.

Schlüssel Beschreibung
POSTGRES_USER Der Benutzername für die Datenbankverbindung
POSTGRES_PASSWORD Das Passwort für den Datenbankbenutzer

Einstellungen, die für das Hosting mehrerer Bäume relevant sind

Die folgenden Einstellungen sind relevant, wenn Sie mehrere Bäume hosten.

Schlüssel Beschreibung
MEDIA_PREFIX_TREE Boolean, ob ein separates Unterverzeichnis für die Mediendateien jedes Baumes verwendet werden soll. Standardmäßig False, wird jedoch dringend empfohlen, True in einer Multi-Baum-Konfiguration zu verwenden.
NEW_DB_BACKEND Das Datenbank-Backend, das für neu erstellte Familienstämme verwendet werden soll. Muss eines von sqlite oder sharedpostgresql sein. Standardmäßig sqlite. Der Wert postgresql wird weiterhin akzeptiert, ist jedoch veraltet, da das PostgreSQL-Backend in einer zukünftigen Version entfernt wird.
POSTGRES_HOST Der Hostname des PostgreSQL-Servers, der zum Erstellen neuer Bäume verwendet wird, wenn ein Multi-Baum-Setup mit dem SharedPostgreSQL-Backend verwendet wird.
POSTGRES_PORT Der Port des PostgreSQL-Servers, der zum Erstellen neuer Bäume verwendet wird, wenn ein Multi-Baum-Setup mit dem SharedPostgreSQL-Backend verwendet wird.

Einstellungen für OIDC-Authentifizierung

Diese Einstellungen sind erforderlich, wenn Sie die OpenID Connect (OIDC) Authentifizierung mit externen Anbietern verwenden möchten. Für detaillierte Einrichtungsanleitungen und Beispiele siehe OIDC-Authentifizierung.

Schlüssel Beschreibung
OIDC_ENABLED Boolean, ob die OIDC-Authentifizierung aktiviert werden soll. Standardmäßig False.
OIDC_ISSUER OIDC-Anbieter-Issuer-URL (für benutzerdefinierte OIDC-Anbieter)
OIDC_CLIENT_ID OAuth-Client-ID (für benutzerdefinierte OIDC-Anbieter)
OIDC_CLIENT_SECRET OAuth-Client-Geheimnis (für benutzerdefinierte OIDC-Anbieter)
OIDC_NAME Benutzerdefinierter Anzeigename für den Anbieter. Standardmäßig "OIDC"
OIDC_SCOPES OAuth-Scopes. Standardmäßig "openid email profile"
OIDC_USERNAME_CLAIM Der Anspruch, der für den Benutzernamen verwendet werden soll. Standardmäßig "preferred_username"
OIDC_OPENID_CONFIG_URL Optional: URL zum OpenID Connect-Konfigurationsendpunkt (wenn nicht der Standard /.well-known/openid-configuration verwendet wird)
OIDC_PKCE Boolean, ob PKCE verwendet werden soll. Wenn nicht gesetzt, wird PKCE verwendet, wenn das Entdeckungsdokument des Anbieters S256 auflistet. Siehe PKCE
OIDC_DISABLE_LOCAL_AUTH Boolean, ob die lokale Benutzername/Passwort-Authentifizierung deaktiviert werden soll. Standardmäßig False
OIDC_AUTO_REDIRECT Boolean, ob automatisch zu OIDC umgeleitet werden soll, wenn nur ein Anbieter konfiguriert ist. Standardmäßig False

Eingebaute OIDC-Anbieter

Für eingebaute Anbieter (Google, Microsoft) verwenden Sie diese Einstellungen:

Schlüssel Beschreibung
OIDC_GOOGLE_CLIENT_ID Client-ID für Google OAuth
OIDC_GOOGLE_CLIENT_SECRET Client-Geheimnis für Google OAuth
OIDC_MICROSOFT_CLIENT_ID Client-ID für Microsoft OAuth
OIDC_MICROSOFT_CLIENT_SECRET Client-Geheimnis für Microsoft OAuth
OIDC_GOOGLE_PKCE Boolean, PKCE-Einstellung für Google, siehe PKCE
OIDC_MICROSOFT_PKCE Boolean, PKCE-Einstellung für Microsoft, siehe PKCE

OIDC-Rollen-Zuordnung

Diese Einstellungen ermöglichen es Ihnen, OIDC-Gruppen/Rollen von Ihrem Identitätsanbieter auf Gramps Web-Benutzerrollen abzubilden:

Schlüssel Beschreibung
OIDC_ROLE_CLAIM Der Anspruchsname im OIDC-Token, der die Gruppen/Rollen des Benutzers enthält. Standardmäßig "groups"
OIDC_GROUP_ADMIN Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Admin"-Rolle zugeordnet ist
OIDC_GROUP_OWNER Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Owner"-Rolle zugeordnet ist
OIDC_GROUP_EDITOR Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Editor"-Rolle zugeordnet ist
OIDC_GROUP_CONTRIBUTOR Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Contributor"-Rolle zugeordnet ist
OIDC_GROUP_MEMBER Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Member"-Rolle zugeordnet ist
OIDC_GROUP_GUEST Der Gruppen-/Rollename von Ihrem OIDC-Anbieter, der der Gramps "Guest"-Rolle zugeordnet ist

Einstellungen nur für KI-Funktionen

Diese Einstellungen sind erforderlich, wenn Sie KI-gestützte Funktionen wie Chat oder semantische Suche verwenden möchten.

Schlüssel Beschreibung
LLM_BASE_URL Basis-URL für die OpenAI-kompatible Chat-API. Standardmäßig None, was die OpenAI-API verwendet.
LLM_MODEL Das Modell, das für die OpenAI-kompatible Chat-API verwendet werden soll. Wenn nicht gesetzt (Standard), ist der Chat deaktiviert. Ab v3.6.0 verwendet der KI-Assistent Pydantic AI mit Tool-Calling-Fähigkeiten.
VECTOR_EMBEDDING_MODEL Das Modell, das für semantische Suchvektor-Einbettungen verwendet werden soll. Bei Verwendung eines lokalen Modells muss dies ein Sentence Transformers Modellname sein. Bei Verwendung einer Remote-API (siehe VECTOR_EMBEDDING_BASE_URL) ist dies der Modellname, der dem Remote-Anbieter übergeben wird. Wenn nicht gesetzt (Standard), sind semantische Suche und Chat deaktiviert.
VECTOR_EMBEDDING_BASE_URL Basis-URL für eine Remote-OpenAI-kompatible Einbettungs-API (z.B. Ollama, OpenAI, LiteLLM). Wenn nicht gesetzt (Standard), wird ein lokales Sentence Transformers-Modell verwendet. Siehe Verwendung einer Remote-Einbettungs-API für Details.
VECTOR_EMBEDDING_API_KEY API-Schlüssel für authentifizierte Remote-Einbettungsanbieter. Nur erforderlich, wenn VECTOR_EMBEDDING_BASE_URL gesetzt ist und der Anbieter eine Authentifizierung erfordert.
LLM_MAX_CONTEXT_LENGTH Zeichenlimit für den Familienstammkontext, der dem LLM bereitgestellt wird. Standardmäßig 50000.
LLM_SYSTEM_PROMPT Benutzerdefinierte Systemaufforderung für den LLM-Chat-Assistenten (v3.6.0+). Wenn nicht gesetzt, wird die standardmäßige genealogie-optimierte Aufforderung verwendet.

Beispielkonfigurationsdatei

Eine minimale Konfigurationsdatei für die Produktion könnte so aussehen: ```python TREE="Mein Familienstamm" BASE_URL="https://meinstamm.beispiel.com" SECRET_KEY="..." # Ihr geheimer Schlüssel USER_DB_URI="sqlite:////path/to/users.sqlite" EMAIL_HOST="mail.beispiel.com" EMAIL_PORT=465 EMAIL_USE_SSL=True # Verwenden Sie implizites SSL für Port 465 EMAIL_HOST_USER="gramps@beispiel.com" EMAIL_HOST_PASSWORD="..." # Ihr SMTP-Passwort DEFAULT_FROM_EMAIL="gramps@beispiel.com"