Gå til indholdet

Serverkonfiguration

Ved at bruge det standard Docker-billede kan al nødvendig konfiguration foretages fra browseren. Afhængigt af implementeringen kan det dog være nødvendigt at tilpasse serverkonfigurationen.

Denne side lister alle metoder til at ændre konfigurationen og alle eksisterende konfigurationsmuligheder.

Konfigurationsfil vs. miljøvariabler

For indstillingerne kan du enten bruge en konfigurationsfil eller miljøvariabler.

Når du bruger Docker Compose-baseret opsætning, kan du inkludere en konfigurationsfil ved at tilføje følgende listeelement under volumes:-nøglen i grampsweb:-blokken:

      - /path/to/config.cfg:/app/config/config.cfg
hvor /path/to/config.cfg er stien til konfigurationsfilen i din servers filsystem (den højre side refererer til stien i containeren og må ikke ændres).

Når du bruger miljøvariabler,

  • præfiks hvert indstillingsnavn med GRAMPSWEB_ for at opnå navnet på miljøvariablen
  • Brug dobbelte understregninger for indstillinger i indlejrede ordbøger, f.eks. GRAMPSWEB_THUMBNAIL_CACHE_CONFIG__CACHE_DEFAULT_TIMEOUT vil sætte værdien af konfigurationsmuligheden THUMBNAIL_CACHE_CONFIG['CACHE_DEFAULT_TIMEOUT']

Bemærk, at konfigurationsmuligheder, der er indstillet via miljøet, har forrang over dem i konfigurationsfilen. Hvis begge er til stede, "vinder" miljøvariablen.

Uden præfiks miljøvariabler er forældede

Af historiske grunde kan en håndfuld indstillinger – 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, og STATIC_PATH – stadig indstilles via en miljøvariabel uden GRAMPSWEB_ præfikset. Dette er forældet, logger en advarsel ved opstart, og vil stoppe med at fungere i en fremtidig udgivelse. Brug altid den præfikserede form, f.eks. GRAMPSWEB_TREE i stedet for TREE.

Bemærk, at dette kun vedrører miljøvariabler. I en konfigurationsfil bruges indstillingsnavnene altid uden præfiks.

Kontrol af forældede muligheder

Forældede konfigurationsmuligheder, som din server stadig er afhængig af – såsom uden præfiks miljøvariabler, SEARCH_INDEX_DIR, eller EMAIL_USE_TLS – logges som advarsler ved opstart. Siden Gramps Web API 3.22, er de også listet, sammen med deres erstatning og den version, hvor supporten vil blive fjernet, øverst på Systeminformation siden (tilgængelig via brugerikonet i den øverste app-bar), når du er logget ind som administrator.

Eksisterende konfigurationsindstillinger

Følgende konfigurationsmuligheder eksisterer.

Nødvendige indstillinger

Nøgle Beskrivelse
TREE Navnet på familiens trædatabase, der skal bruges. Vis tilgængelige træer med gramps -l. Hvis et træ med dette navn ikke eksisterer, vil et nyt tomt træ blive oprettet.
SECRET_KEY Den hemmelige nøgle til flask. Den hemmelige nøgle må ikke deles offentligt. Ændring af den vil ugyldiggøre alle adgangstokens.
USER_DB_URI Database-URL'en til brugerdatabasen. Enhver URL, der er kompatibel med SQLAlchemy, er tilladt.

Info

Du kan generere en sikker hemmelig nøgle f.eks. med kommandoen

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

Valgfri indstillinger

Nøgle Beskrivelse
MEDIA_BASE_DIR Sti, der skal bruges som basisbibliotek for mediefiler, som overskriver det mediebibliotek, der er indstillet i Gramps. Når du bruger S3, skal den have formen s3://<bucket_name>
TREE_ID Mappenavnet på familiens trædatabase, der skal bruges i enkelt-træ tilstand (når TREE ikke er indstillet til *). Når den er indstillet, identificerer serveren træet ved sit mappenavn i stedet for sit visningsnavn, hvilket er mere robust over for omdøbninger. Nødvendig, hvis du vil omdøbe træet via API'en. Mappenavnet kan findes via GET /api/trees/- (feltet id).
SEARCH_INDEX_DB_URI Database-URL til søgeindekset. Kun sqlite eller postgresql er tilladt som backends. Standard til sqlite:///indexdir/search_index.db, hvilket opretter en SQLite-fil i mappen indexdir i forhold til den sti, hvor scriptet køres.
SEARCH_INDEX_DIR Forældet (brug SEARCH_INDEX_DB_URI i stedet). Mappe, der indeholder søgeindekset. Hvis den er indstillet, mens SEARCH_INDEX_DB_URI ikke er indstillet, afledes søgeindeks-URL'en som sqlite:///<SEARCH_INDEX_DIR>/search_index.db.
STATIC_PATH Sti til at servere statiske filer fra (f.eks. et statisk webfrontend)
BASE_URL Basis-URL, hvor API'en kan nås (f.eks. https://mygramps.mydomain.com/). Dette er nødvendigt f.eks. for at bygge korrekte links til nulstilling af adgangskoder
CORS_ORIGINS Oprindelser, hvor CORS-anmodninger er tilladt fra. Som standard er alle forbudt. Brug "*" for at tillade anmodninger fra ethvert domæne.
EMAIL_HOST SMTP-servervært (f.eks. til at sende e-mails til nulstilling af adgangskoder)
EMAIL_PORT SMTP-serverport. standard til 465
EMAIL_HOST_USER SMTP-serverbrugernavn
EMAIL_HOST_PASSWORD SMTP-serveradgangskode
EMAIL_USE_TLS Forældet (brug EMAIL_USE_SSL eller EMAIL_USE_STARTTLS i stedet). Boolean, om der skal bruges TLS til at sende e-mails. Standard til True. Når du bruger STARTTLS, skal du indstille dette til False og bruge en port, der er forskellig fra 25.
EMAIL_USE_SSL Boolean, om der skal bruges implicit SSL/TLS til SMTP (v3.6.0+). Standard til True, hvis EMAIL_USE_TLS ikke er eksplicit indstillet. Typisk brugt med port 465.
EMAIL_USE_STARTTLS Boolean, om der skal bruges eksplicit STARTTLS til SMTP (v3.6.0+). Standard til False. Typisk brugt med port 587 eller 25.
DEFAULT_FROM_EMAIL "Fra" adresse til automatiserede e-mails
THUMBNAIL_CACHE_CONFIG Ordbog med indstillinger for miniaturecache. Se Flask-Caching for mulige indstillinger.
REQUEST_CACHE_CONFIG Ordbog med indstillinger for anmodningscachen. Se Flask-Caching for mulige indstillinger.
PERSISTENT_CACHE_CONFIG Ordbog med indstillinger for den vedvarende cache, der bruges f.eks. til telemetri. Se Flask-Caching for mulige indstillinger.
CELERY_CONFIG Indstillinger for Celery-baggrundsopgavekøen. Se Celery for mulige indstillinger.
REPORT_DIR Midlertidig mappe, hvor output fra kørsel af Gramps-rapporter vil blive gemt
EXPORT_DIR Midlertidig mappe, hvor output fra eksport af Gramps-databasen vil blive gemt
REGISTRATION_DISABLED Hvis True, forbyder ny brugerregistrering (standard False)
DISABLE_TELEMETRY Hvis True, deaktiverer statistiktelemetri (standard False). Se telemetri for detaljer.
PILLOW_MAX_IMAGE_PIXELS Sætter parameteren PIL.Image.MAX_IMAGE_PIXELS, som angiver antallet af pixels, som det behandlede billede kan indeholde. Se docs for detaljer.
MAX_THUMBNAIL_FILE_BYTES Sætter en hård maksimal filstørrelse for miniaturebilleder. Standard til 50 * 1024 * 1024 (50 MB). At hæve den kan i høj grad øge hukommelsesforbruget og kan føre til hukommelsesfejl eller datatab, hvis store filer dekomprimeres i hukommelsen.

Info

Når du bruger miljøvariabler til konfiguration, skal booleske indstillinger som EMAIL_USE_SSL være enten strengen true eller false (store og små bogstaver er vigtige!).

Indstillinger for PostgreSQL-databaser

Disse indstillinger er nødvendige, hvis dine familietræer er hostet i en PostgreSQL-database ved hjælp af SharedPostgreSQL-tilføjelsen.

Nøgle Beskrivelse
POSTGRES_USER Brugernavnet til databaseforbindelsen
POSTGRES_PASSWORD Adgangskoden til databasebrugeren

Indstillinger relevante for hosting af flere træer

Følgende indstillinger er relevante, når du hoster flere træer.

Nøgle Beskrivelse
MEDIA_PREFIX_TREE Boolean, om der skal bruges en separat undermappe til mediefilerne for hvert træ. Standard til False, men det anbefales stærkt at bruge True i en multi-træ opsætning
NEW_DB_BACKEND Den databasebackend, der skal bruges til nyoprettede familietræer. Skal være en af sqlite eller sharedpostgresql. Standard til sqlite. Værdien postgresql accepteres stadig, men er forældet, da PostgreSQL-backenden vil blive fjernet i en fremtidig version.
POSTGRES_HOST Værtsnavnet på PostgreSQL-serveren, der bruges til at oprette nye træer, når der bruges en multi-træ opsætning med SharedPostgreSQL-backenden
POSTGRES_PORT Porten til PostgreSQL-serveren, der bruges til at oprette nye træer, når der bruges en multi-træ opsætning med SharedPostgreSQL-backenden

Indstillinger for OIDC-godkendelse

Disse indstillinger er nødvendige, hvis du vil bruge OpenID Connect (OIDC) godkendelse med eksterne udbydere. For detaljerede opsætningsinstruktioner og eksempler, se OIDC-godkendelse.

Nøgle Beskrivelse
OIDC_ENABLED Boolean, om OIDC-godkendelse skal aktiveres. Standard til False.
OIDC_ISSUER OIDC-udbyderens udsteder-URL (til brugerdefinerede OIDC-udbydere)
OIDC_CLIENT_ID OAuth-klient-ID (til brugerdefinerede OIDC-udbydere)
OIDC_CLIENT_SECRET OAuth-klienthemmelighed (til brugerdefinerede OIDC-udbydere)
OIDC_NAME Brugerdefineret visningsnavn for udbyderen. Standard til "OIDC"
OIDC_SCOPES OAuth-scopes. Standard til "openid email profile"
OIDC_USERNAME_CLAIM Den påstand, der skal bruges til brugernavnet. Standard til "preferred_username"
OIDC_OPENID_CONFIG_URL Valgfri: URL til OpenID Connect-konfigurationsendepunktet (hvis ikke bruger standard /.well-known/openid-configuration)
OIDC_PKCE Boolean, om PKCE skal bruges. Hvis ikke indstillet, bruges PKCE, når udbyderens opdagelsesdokument angiver S256. Se PKCE
OIDC_DISABLE_LOCAL_AUTH Boolean, om lokal brugernavn/adgangskode-godkendelse skal deaktiveres. Standard til False
OIDC_AUTO_REDIRECT Boolean, om der automatisk skal omdirigeres til OIDC, når kun én udbyder er konfigureret. Standard til False

Indbyggede OIDC-udbydere

For indbyggede udbydere (Google, Microsoft), brug disse indstillinger:

Nøgle Beskrivelse
OIDC_GOOGLE_CLIENT_ID Klient-ID til Google OAuth
OIDC_GOOGLE_CLIENT_SECRET Klienthemmelighed til Google OAuth
OIDC_MICROSOFT_CLIENT_ID Klient-ID til Microsoft OAuth
OIDC_MICROSOFT_CLIENT_SECRET Klienthemmelighed til Microsoft OAuth
OIDC_GOOGLE_PKCE Boolean, PKCE-indstilling for Google, se PKCE
OIDC_MICROSOFT_PKCE Boolean, PKCE-indstilling for Microsoft, se PKCE

OIDC Rollekortlægning

Disse indstillinger giver dig mulighed for at kortlægge OIDC-grupper/roller fra din identitetsudbyder til Gramps Web-brugerroller:

Nøgle Beskrivelse
OIDC_ROLE_CLAIM Navnet på påstanden i OIDC-tokenet, der indeholder brugerens grupper/roller. Standard til "groups"
OIDC_GROUP_ADMIN Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Admin" rolle
OIDC_GROUP_OWNER Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Owner" rolle
OIDC_GROUP_EDITOR Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Editor" rolle
OIDC_GROUP_CONTRIBUTOR Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Contributor" rolle
OIDC_GROUP_MEMBER Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Member" rolle
OIDC_GROUP_GUEST Gruppen/rollenavnet fra din OIDC-udbyder, der kortlægges til Gramps "Guest" rolle

Indstillinger kun til AI-funktioner

Disse indstillinger er nødvendige, hvis du vil bruge AI-drevne funktioner som chat eller semantisk søgning.

Nøgle Beskrivelse
LLM_BASE_URL Basis-URL for OpenAI-kompatibel chat API. Standard til None, som bruger OpenAI API.
LLM_MODEL Modellen, der skal bruges til OpenAI-kompatibel chat API. Hvis ikke indstillet (standard), er chat deaktiveret. Fra v3.6.0 bruger AI-assistenten Pydantic AI med værktøjsopkaldsfunktioner.
VECTOR_EMBEDDING_MODEL Modellen, der skal bruges til semantisk søgning vektorembedninger. Når du bruger en lokal model, skal dette være et Sentence Transformers modellenavn. Når du bruger en fjern API (se VECTOR_EMBEDDING_BASE_URL), er dette modellenavnet, der sendes til den fjerntliggende udbyder. Hvis ikke indstillet (standard), er semantisk søgning og chat deaktiveret.
VECTOR_EMBEDDING_BASE_URL Basis-URL for en fjern OpenAI-kompatibel embedding API (f.eks. Ollama, OpenAI, LiteLLM). Hvis ikke indstillet (standard), bruges en lokal Sentence Transformers-model. Se Brug af en fjern embedding API for detaljer.
VECTOR_EMBEDDING_API_KEY API-nøgle til autentificerede fjerntliggende embedding-udbydere. Kun nødvendig, når VECTOR_EMBEDDING_BASE_URL er indstillet, og udbyderen kræver autentificering.
LLM_MAX_CONTEXT_LENGTH Tegngrænse for familiens trækontext, der gives til LLM. Standard til 50000.
LLM_SYSTEM_PROMPT Brugerdefineret systemprompt til LLM chatassistent (v3.6.0+). Hvis ikke indstillet, bruges den standard genealogisk optimerede prompt.

Eksempel på konfigurationsfil

En minimal konfigurationsfil til produktion kunne se sådan ud: ```python TREE="Mit Familietræ" BASE_URL="https://mitræ.example.com" SECRET_KEY="..." # din hemmelige nøgle USER_DB_URI="sqlite:////path/to/users.sqlite" EMAIL_HOST="mail.example.com" EMAIL_PORT=465 EMAIL_USE_SSL=True # Brug implicit SSL til port 465 EMAIL_HOST_USER="gramps@example.com" EMAIL_HOST_PASSWORD="..." # din SMTP-adgangskode DEFAULT_FROM_EMAIL="gramps@example.com"