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
| Einstellung | Vorgabe | Bedeutung |
|---|
GOAT_VERSION | das Release des Pakets | Die GOAT-Version, die alle Images verwenden. Siehe Updates. |
GOAT_REGISTRY | ghcr.io/plan4better/goat | Woher die GOAT-Images geladen werden, z. B. ein interner Mirror |
Öffentliche Adresse und TLS
| Einstellung | Vorgabe | Bedeutung |
|---|
GOAT_PUBLIC_URL | von setup.sh abgefragt | Die URL, die Benutzer in den Browser eingeben, ohne abschließenden Schrägstrich |
GOAT_TLS | auto | auto, custom, internal oder off; siehe HTTPS und Adressen |
GOAT_ACME_EMAIL | leer | Optionaler Kontakt für Ablaufhinweise von Let's Encrypt (nur auto) |
GOAT_TRUSTED_PROXIES | private_ranges | Adressen, die X-Forwarded-*-Header setzen dürfen (Ihr Load Balancer), als CIDRs durch Leerzeichen getrennt |
GOAT_ADMIN_ALLOW_CIDRS | 0.0.0.0/0 ::/0 | Netze, die die Keycloak-Admin-Konsole unter /keycloak/admin öffnen dürfen |
GOAT_CA_BUNDLE | leer | Pfad innerhalb der Container zu einem zusätzlichen CA-Zertifikat (PEM) in ./certs; im Modus internal von setup.sh gesetzt. Siehe Firmen-CA. |
GOAT_HTTP_PORT | 80 | Port für HTTP; von setup.sh aus der URL oder --http-port gesetzt |
GOAT_HTTPS_PORT | 443 | Port für HTTPS; von setup.sh aus der URL gesetzt |
GOAT_HOSTNAME, GOAT_NETWORK_ALIAS, GOAT_SITE_ADDRESS, GOAT_HTTPS_PUBLISH, GOAT_KEYCLOAK_SSL_REQUIRED | | Abgeleitet; von setup.sh gesetzt |
Profile
| Einstellung | Vorgabe | Bedeutung |
|---|
COMPOSE_PROFILES | garage,keycloak | Die mitgelieferten Komponenten, die laufen sollen: garage (Objektspeicher), keycloak (Anmeldeserver), backup (nächtliche Backups) |
Authentifizierung
| Einstellung | Vorgabe | Bedeutung |
|---|
AUTH | True | True: Benutzer melden sich über Keycloak an. False: keine Anmeldung, alle handeln als ein eingebauter Administrator (nur für lokale und Demo-Installationen). |
GOAT_ADMIN_EMAIL | von setup.sh abgefragt | Der erste GOAT-Benutzer, der beim ersten Start im mitgelieferten Keycloak angelegt wird |
GOAT_ADMIN_PASSWORD | von setup.sh gesetzt | Passwort des ersten Benutzers |
REALM_NAME | goat | Keycloak-Realm, den GOAT verwendet |
KEYCLOAK_CLIENT_ID | goat | Keycloak-Client, den GOAT verwendet |
KEYCLOAK_CLIENT_SECRET | von setup.sh gesetzt | Secret dieses Clients |
KEYCLOAK_ADMIN_PASSWORD | von setup.sh gesetzt | Passwort des Benutzers admin in der Keycloak-Admin-Konsole |
KEYCLOAK_PROVISION_INVITED_USERS | true | Legt das Anmeldekonto in Keycloak an, wenn jemand eingeladen wird, dessen E-Mail-Adresse noch keines hat |
KEYCLOAK_DB_PASSWORD | von setup.sh gesetzt | Datenbank-Passwort des mitgelieferten Keycloak |
KEYCLOAK_PUBLIC_URL, KEYCLOAK_INTERNAL_URL | (auskommentiert) | Ihr eigenes Keycloak; siehe Eigenes Keycloak |
Objektspeicher (S3)
| Einstellung | Vorgabe | Bedeutung |
|---|
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY | von setup.sh gesetzt | Zugangsschlüssel für das mitgelieferte Garage oder Ihr eigener S3-Schlüssel |
GARAGE_RPC_SECRET, GARAGE_ADMIN_TOKEN | von setup.sh gesetzt | Interne 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 |
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.
| Einstellung | Vorgabe | Bedeutung |
|---|
POSTGRES_PASSWORD | von setup.sh gesetzt | Passwort der GOAT-Datenbank |
WINDMILL_DB_PASSWORD | von setup.sh gesetzt | Passwort der Windmill-Datenbank |
POSTGRES_SHARED_BUFFERS | 1GB | PostgreSQL shared_buffers |
POSTGRES_EFFECTIVE_CACHE_SIZE | 3GB | PostgreSQL effective_cache_size |
POSTGRES_MAX_CONNECTIONS | 200 | PostgreSQL max_connections |
POSTGRES_POOL_SIZE | 5 | Größe des Verbindungspools der Core API |
POSTGRES_MAX_OVERFLOW | 10 | Zusätzliche Verbindungen, die die Core API über den Pool hinaus öffnen darf |
Jobs (Windmill)
| Einstellung | Vorgabe | Bedeutung |
|---|
WINDMILL_ADMIN_PASSWORD | von setup.sh gesetzt | Passwort von admin@windmill.dev in der Windmill-Oberfläche |
GOAT_TOOLS_WORKERS | 2 | Anzahl der Analyse-Jobs, die parallel laufen; jeder Tools-Worker darf bis zu 4 GB Arbeitsspeicher nutzen |
WINDMILL_LOCAL_PORT | 8110 | Port der Windmill-Oberfläche, nur an 127.0.0.1 gebunden; siehe Windmill |
GOAT_BASE_DATA_URL | https://goat-base-data.plan4better.de/ | Quelle der Routing- und ÖV-Basisdaten; siehe Routing-Basisdaten |
Geheimnisse der Web-App
| Einstellung | Vorgabe | Bedeutung |
|---|
NEXTAUTH_SECRET | von setup.sh gesetzt | Signaturschlüssel für die Anmeldesitzungen der Web-App |
Optionale Integrationen
| Einstellung | Vorgabe | Bedeutung |
|---|
NEXT_PUBLIC_MAPTILER_KEY | leer | MapTiler-Schlüssel für die Satelliten-/Hybrid-Grundkarte (ausgeblendet, wenn leer) |
NEXT_PUBLIC_MAPBOX_TOKEN | leer | Mapbox-Token für die Ortssuche |
CATALOG_S3_BUCKET, CATALOG_S3_ENDPOINT_URL, CATALOG_S3_ACCESS_KEY_ID, CATALOG_S3_SECRET_ACCESS_KEY, CATALOG_S3_REGION | leer | Der GOAT-Datenkatalog (schreibgeschützter Bucket mit den harmonisierten Datensätzen) |
GEOCODING_URL, GEOCODING_AUTHORIZATION | leer | Geocoding-Dienst, den Analyse-Werkzeuge verwenden |
NEXT_PUBLIC_WEBSITE_URL | https://www.plan4better.de | Website-Link und Feeds in der App |
NEXT_PUBLIC_STATUS_FEED_URL | leer | Status-Feed in der App |
NEXT_PUBLIC_DOCS_URL | https://goat.plan4better.de/docs | Link zur Dokumentation in der App |
STATIC_ASSETS_URL | https://assets.plan4better.de | Produktgrafiken: Icons, Standard-Vorschaubilder, Bilder in E-Mails |
OTEL_ENABLED | false | Traces, Metriken und Logs über OpenTelemetry exportieren |
OTEL_EXPORTER_OTLP_ENDPOINT | leer | Ihr OpenTelemetry-Endpunkt (OTLP) |
E-Mail
Wie diese Einstellungen zusammenwirken, lesen Sie unter E-Mail.
| Einstellung | Vorgabe | Bedeutung |
|---|
SMTP_HOST | leer | Mailserver; E-Mail ist ausgeschaltet, solange leer |
SMTP_PORT | 587 | Port des Mailservers |
SMTP_SECURITY | starttls | starttls, ssl oder none |
SMTP_USER, SMTP_PASSWORD | leer | Anmeldedaten; lassen Sie beide leer für ein Relay ohne Anmeldung |
SMTP_FROM | leer | Absenderadresse; SMTP_USER, wenn leer |
EMAILS_FROM_NAME | GOAT | Absendername |
SMTP_STARTTLS, SMTP_SSL | true, false | Aus SMTP_SECURITY abgeleitet; von setup.sh gesetzt |
EMAIL_BRAND_NAME, EMAIL_LOGO_URL, EMAIL_CONTACT_URL, EMAIL_PRIVACY_URL | (auskommentiert) | Optionales Branding: Name, Logo statt des Namens, Links in der Fußzeile |
Backups
Diese Einstellungen gelten, wenn das Profil backup eingeschaltet ist; siehe Backups.
| Einstellung | Vorgabe | Bedeutung |
|---|
BACKUP_TIME | 02:30 | Uhrzeit des nächtlichen Backups (UTC) |
BACKUP_RETENTION_DAYS | 7 | Backups, die älter als diese Anzahl Tage sind, werden gelöscht |