Zum Hauptinhalt springen

Konfigurationsreferenz

Die gesamte Konfiguration steht in der Datei .env im Ordner des Pakets. setup.sh erstellt sie aus .env.example, wo jede Einstellung mit Kommentaren beschrieben ist. Diese Seite listet die Einstellungen in denselben Gruppen auf.

  • Von setup.sh gesetzt bedeutet, dass setup.sh den Wert einträgt: Geheimnisse werden einmal erzeugt, wenn sie leer sind, und abgeleitete Werte werden bei jedem Lauf aus der öffentlichen URL und dem TLS-Modus neu geschrieben. Bearbeiten Sie abgeleitete Werte nicht von Hand, sondern führen Sie setup.sh aus.
  • Eine Einstellung mit dem Vermerk (auskommentiert) steht in .env.example, ist aber inaktiv, bis Sie das # entfernen.

Übernehmen Sie Änderungen mit docker compose up -d.

Release​

EinstellungVorgabeBedeutung
GOAT_VERSIONdas Release des PaketsDie GOAT-Version, die alle Images verwenden. Siehe Updates.
GOAT_REGISTRYghcr.io/plan4better/goatWoher die GOAT-Images geladen werden, z. B. ein interner Mirror

Öffentliche Adresse und TLS​

EinstellungVorgabeBedeutung
GOAT_PUBLIC_URLvon setup.sh abgefragtDie URL, die Benutzer in den Browser eingeben, ohne abschließenden Schrägstrich
GOAT_TLSautoauto, custom, internal oder off; siehe HTTPS und Adressen
GOAT_ACME_EMAILleerOptionaler Kontakt für Ablaufhinweise von Let's Encrypt (nur auto)
GOAT_TRUSTED_PROXIESprivate_rangesAdressen, die X-Forwarded-*-Header setzen dürfen (Ihr Load Balancer), als CIDRs durch Leerzeichen getrennt
GOAT_ADMIN_ALLOW_CIDRS0.0.0.0/0 ::/0Netze, die die Keycloak-Admin-Konsole unter /keycloak/admin öffnen dürfen
GOAT_CA_BUNDLEleerPfad innerhalb der Container zu zusätzlichen CA-Zertifikaten (PEM) in ./certs, etwa Ihrer Firmen-CA für Load Balancer, Keycloak oder SMTP-Relay; im Modus internal von setup.sh gesetzt. Siehe Firmen-CA.
GOAT_HTTP_PORT80Port für HTTP; von setup.sh aus der URL oder --http-port gesetzt
GOAT_HTTPS_PORT443Port für HTTPS; von setup.sh aus der URL gesetzt
GOAT_HOSTNAME, GOAT_NETWORK_ALIAS, GOAT_SITE_ADDRESS, GOAT_HTTPS_PUBLISH, GOAT_KEYCLOAK_SSL_REQUIREDAbgeleitet; von setup.sh gesetzt

Profile​

EinstellungVorgabeBedeutung
COMPOSE_PROFILESgarage,keycloakDie mitgelieferten Komponenten, die laufen sollen: garage (Objektspeicher), keycloak (Anmeldeserver), backup (nächtliche Backups)

Authentifizierung​

EinstellungVorgabeBedeutung
AUTHTrueTrue: Benutzer melden sich über Keycloak an. False: keine Anmeldung, alle handeln als ein eingebauter Administrator (nur für lokale und Demo-Installationen).
GOAT_ADMIN_EMAILvon setup.sh abgefragtDer erste GOAT-Benutzer, der beim ersten Start im mitgelieferten Keycloak angelegt wird
GOAT_ADMIN_PASSWORDvon setup.sh gesetztPasswort des ersten Benutzers
REALM_NAMEgoatKeycloak-Realm, den GOAT verwendet
KEYCLOAK_CLIENT_IDgoatKeycloak-Client, den GOAT verwendet
KEYCLOAK_CLIENT_SECRETvon setup.sh gesetztSecret dieses Clients
KEYCLOAK_ADMIN_PASSWORDvon setup.sh gesetztPasswort des Benutzers admin in der Keycloak-Admin-Konsole
KEYCLOAK_PROVISION_INVITED_USERStrueLegt das Anmeldekonto in Keycloak an, wenn jemand eingeladen wird, dessen E-Mail-Adresse noch keines hat
ALLOW_ORGANIZATION_CREATIONtruetrue: Wer sich ohne Organisation anmeldet, kann eine einrichten. false: Das können nur Konten mit der Keycloak-Realm-Rolle superuser; alle anderen warten auf eine Einladung. Siehe Wer Organisationen einrichtet.
KEYCLOAK_DB_PASSWORDvon setup.sh gesetztDatenbank-Passwort des mitgelieferten Keycloak
KEYCLOAK_PUBLIC_URL, KEYCLOAK_INTERNAL_URL(auskommentiert)Ihr eigenes Keycloak; siehe Eigenes Keycloak
AUTH_ALLOWED_CLIENTS(auskommentiert)Keycloak-Clients, deren Tokens die GOAT-APIs annehmen, durch Kommas getrennt; leer nimmt Tokens aller Clients des Realms an. Eine Liste muss KEYCLOAK_CLIENT_ID enthalten. Siehe Ein Realm, den sich GOAT mit anderen Anwendungen teilt

Objektspeicher (S3)​

EinstellungVorgabeBedeutung
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEYvon setup.sh gesetztZugangsschlüssel für das mitgelieferte Garage oder Ihr eigener S3-Schlüssel
GARAGE_RPC_SECRET, GARAGE_ADMIN_TOKENvon setup.sh gesetztInterne Geheimnisse des mitgelieferten Garage
S3_ENDPOINT_URL, S3_PUBLIC_ENDPOINT_URL, S3_REGION, S3_BUCKET_NAME, S3_FORCE_PATH_STYLE(auskommentiert)Ihr eigener S3-Speicher; siehe Eigener S3-Speicher
ASSETS_S3_ENDPOINT_URL, ASSETS_BUCKET_NAME, ASSETS_URL(auskommentiert)Der öffentlich lesbare Bucket für Profilbilder und Bilder in Ihrem eigenen S3-Speicher
ASSETS_SERVED_BY_COREfalsetrue: Bilder im Upload-Bucket, von GOAT ausgeliefert, für S3 ohne öffentlichen Bucket

Datenbank​

Die Speichervorgaben passen zu einer Maschine mit 16 GB. Als Faustregel setzen Sie POSTGRES_SHARED_BUFFERS auf etwa 1/4 und POSTGRES_EFFECTIVE_CACHE_SIZE auf etwa 3/4 des Arbeitsspeichers, den Sie PostgreSQL geben.

EinstellungVorgabeBedeutung
POSTGRES_PASSWORDvon setup.sh gesetztPasswort der GOAT-Datenbank
WINDMILL_DB_PASSWORDvon setup.sh gesetztPasswort der Windmill-Datenbank
POSTGRES_SHARED_BUFFERS1GBPostgreSQL shared_buffers
POSTGRES_EFFECTIVE_CACHE_SIZE3GBPostgreSQL effective_cache_size
POSTGRES_MAX_CONNECTIONS200PostgreSQL max_connections
POSTGRES_POOL_SIZE5Größe des Verbindungspools der Core API
POSTGRES_MAX_OVERFLOW10Zusätzliche Verbindungen, die die Core API über den Pool hinaus öffnen darf

Die Dienste von GOAT benennen ihre Datenbanksitzungen nach sich selbst (goat-core, goat-geoapi, goat-processes, goat-tools, …), sodass pg_stat_activity zeigt, welcher Dienst eine Verbindung hält. Auf der Windmill-Datenbank gehören die Sitzungen ohne goat--Namen Windmill selbst. Windmill hält höchstens 10 Verbindungen zu seiner Datenbank für den Server und 3 für jeden Worker (DATABASE_CONNECTIONS in compose.yaml).

Jobs (Windmill)​

EinstellungVorgabeBedeutung
WINDMILL_ADMIN_PASSWORDvon setup.sh gesetztPasswort von admin@windmill.dev in der Windmill-Oberfläche
GOAT_TOOLS_WORKERS2Anzahl der Analyse-Jobs, die parallel laufen; jeder Tools-Worker darf bis zu 4 GB Arbeitsspeicher nutzen
WINDMILL_LOCAL_PORT8110Port der Windmill-Oberfläche, nur an 127.0.0.1 gebunden; siehe Windmill
GOAT_BASE_DATA_URLhttps://goat-base-data.plan4better.de/Quelle der Routing- und ÖV-Basisdaten; siehe Routing-Basisdaten

Geheimnisse der Web-App​

EinstellungVorgabeBedeutung
NEXTAUTH_SECRETvon setup.sh gesetztSignaturschlüssel für die Anmeldesitzungen der Web-App

Optionale Integrationen​

EinstellungVorgabeBedeutung
NEXT_PUBLIC_MAPTILER_KEYleerMapTiler-Schlüssel für die Satelliten-/Hybrid-Grundkarte (ausgeblendet, wenn leer)
NEXT_PUBLIC_MAPBOX_TOKENleerMapbox-Token für die Ortssuche
CATALOG_S3_BUCKET, CATALOG_S3_ENDPOINT_URL, CATALOG_S3_ACCESS_KEY_ID, CATALOG_S3_SECRET_ACCESS_KEY, CATALOG_S3_REGIONleerDer GOAT-Datenkatalog (schreibgeschützter Bucket mit den harmonisierten Datensätzen)
GEOCODING_URL, GEOCODING_AUTHORIZATIONleerGeocoding-Dienst, den Analyse-Werkzeuge verwenden
NEXT_PUBLIC_WEBSITE_URLleerEine Website, die GOATs Blog- und Changelog-Feeds veröffentlicht. Sie füllt die Neuigkeiten auf der Startseite und liefert das Willkommensvideo sowie den Link zum Datenschutz im Menü; solange leer, erscheint nichts davon.
NEXT_PUBLIC_SUPPORT_EMAILleerE-Mail-Adresse hinter Problem melden, solange Support-Tickets aus sind, und in der Meldung, wenn der Support vorübergehend nicht erreichbar ist. Standard ist support@plan4better.de; tragen Sie für eine White-Label-Installation Ihre eigene Adresse ein. Eine ungültige Adresse wird ignoriert und der Standard verwendet.
NEXT_PUBLIC_STATUS_FEED_URLleerStatus-Feed in der App
NEXT_PUBLIC_DOCS_URLhttps://goat.plan4better.de/docsLink zur Dokumentation in der App
STATIC_ASSETS_URL(auskommentiert)Ein Mirror oder CDN für die Produktgrafiken (Icons, Standard-Vorschaubilder, Bilder in E-Mails). Solange nicht gesetzt, liefert GOAT die Grafiken selbst unter /assets aus.
ODOO_URL, ODOO_DB(auskommentiert)Das Odoo von Plan4Better, gemeinsam für GOATs Odoo-Anbindungen. Nur mit einem Zugang, den Plan4Better ausstellt.
ODOO_SUPPORT_API_KEY, ODOO_SUPPORT_TEAM_ID(auskommentiert)Optionale Support-Tickets in einem Odoo-Helpdesk; nur eingeschaltet, wenn diese und ODOO_URL, ODOO_DB gesetzt sind. Der Schlüssel ist ein Geheimnis, das Plan4Better ausstellt. Siehe Support-Tickets.
ODOO_SUPPORT_POST_ACTIONGOAT: post message as ticket participantOdoo-Serveraktion, die eine Nachricht als Teilnehmer des Tickets veröffentlicht
OTEL_ENABLEDfalseTraces, Metriken und Logs über OpenTelemetry exportieren
OTEL_EXPORTER_OTLP_ENDPOINTleerIhr OpenTelemetry-Endpunkt (OTLP)

E-Mail​

Wie diese Einstellungen zusammenwirken, lesen Sie unter E-Mail.

EinstellungVorgabeBedeutung
SMTP_HOSTleerMailserver; E-Mail ist ausgeschaltet, solange leer
SMTP_PORT587Port des Mailservers
SMTP_SECURITYstarttlsstarttls, ssl oder none
SMTP_USER, SMTP_PASSWORDleerAnmeldedaten; lassen Sie beide leer für ein Relay ohne Anmeldung
SMTP_FROMleerAbsenderadresse; SMTP_USER, wenn leer
EMAILS_FROM_NAMEGOATAbsendername
SMTP_STARTTLS, SMTP_SSLtrue, falseAus SMTP_SECURITY abgeleitet; von setup.sh gesetzt
EMAIL_BRAND_NAME, EMAIL_LOGO_URL, EMAIL_CONTACT_URL, EMAIL_PRIVACY_URL(auskommentiert)Optionales Branding der E-Mails von GOAT und Keycloak: Name, Logo statt des Namens, Links in der Fußzeile. Siehe E-Mail-Branding.

Backups​

Diese Einstellungen gelten, wenn das Profil backup eingeschaltet ist; siehe Backups.

EinstellungVorgabeBedeutung
BACKUP_TIME02:30Uhrzeit des nächtlichen Backups (UTC)
BACKUP_RETENTION_DAYS7Backups, die älter als diese Anzahl Tage sind, werden gelöscht