Zum Inhalt springen
Q
QuoteNode

Betrieb

Referenz der Umgebungsvariablen

Vollständige Referenz der QuoteNode-Umgebungsvariablen für Produktion, Development, Docker Compose, Backup-Worker und Vite-Frontend.

Referenz der Umgebungsvariablen

Diese Seite bündelt die Umgebungsvariablen, die aktuell im QuoteNode-Projekt verwendet werden.

Die wichtigsten Quellen der Wahrheit im Anwendungs-Repository sind:

  • infra/.env.prod.example
  • infra/.env.dev.example
  • infra/.env.dev-sid
  • infra/docker-compose.*.yml

Verwenden Sie diese Seite als operatororientierten Katalog. Für ein minimales Setup siehe den Installationsleitfaden. Für Deployment-Topologie siehe Bereitstellungsoptionen.

Wie diese Referenz zu lesen ist

  • Prod bedeutet: Variable gehört in eine Produktions-.env
  • Dev bedeutet: lokale Entwicklung oder Demo-Stack
  • Compose bedeutet: hostseitige Docker-Compose-Verkabelung statt direktem Anwendungscode
  • Leere Standardwerte bedeuten meist: nur dann explizit setzen, wenn das Feature wirklich benötigt wird

Compose- und lokaler Stack

Diese Variablen beeinflussen das lokale Docker-Compose-Setup und die Proxy-/API-Verdrahtung des Frontends.

VariableBereichZweckTypischer Wert
COMPOSE_PROJECT_NAMEDev / ComposeVerhindert Namenskollisionen zwischen mehreren lokalen Stacks.quotenode-dev, quotenode-dev-sid
POSTGRES_PORTDev / ComposeHost-Port für PostgreSQL.5433, 5434
MAILPIT_PORTDev / ComposeHost-Port für die Mailpit-Oberfläche.8025, 8026
BACKEND_PORTDev / ComposeHost-Port für das Backend-API.8091, 8092
FRONTEND_PORTDev / ComposeHost-Port für das Frontend.5174, 5175
VITE_PUBLIC_API_BASEDev / FrontendIm Browser sichtbare API-Basis für lokale Vite-Stacks.http://localhost:8091, http://localhost:8092
APP_VERSIONProd / Dev / ComposeDocker-Image-Tag, das Compose auswählt.latest, 1.0.0
PROXY_MODEProd / Dev / ComposeSteuert, ob Caddy im Stack (internal) oder extern (external) läuft.internal, external
DOMAINProd / ComposeÖffentliche Domain für Caddy und öffentliche URLs im internal-Modus.quotenode.example.com

Datenbank und Kernlaufzeit

VariableBereichZweckTypischer Wert
DB_URLProd / DevJDBC-Connection-String für PostgreSQL.jdbc:postgresql://postgres:5432/quotenode
DB_USERNAMEProd / DevDatenbank-Benutzer.quotenode, app
DB_PASSWORDProd / DevDatenbank-Passwort.32+ Zufallszeichen in Produktion
DB_NAMEProd / Dev / ComposeDatenbankname für App und Compose.quotenode, app
SPRING_PROFILES_ACTIVEProd / DevAktiver Spring-Profile-Name.prod, dev
CORS_ALLOWED_ORIGINSProd / DevErlaubte Browser-Origins für das API. In Produktion kein *.https://ihredomain.de
LOG_LEVELProd / DevBasis-Log-Level der Anwendung.ERROR, INFO, DEBUG

Docker-Logs und Support-Diagnostik

VariableBereichZweckTypischer Wert
DOCKER_LOG_MAX_SIZEProd / ComposeMaximale Größe einer Container-Logdatei vor Rotation.10m
DOCKER_LOG_MAX_FILEProd / ComposeAnzahl aufbewahrter rotierter Logdateien.5
SUPPORT_LOGS_BUFFER_SIZEProdGröße des Support-Log-Vorschau-Puffers.4000
SUPPORT_LOGS_PREVIEW_RATE_LIMIT_PER_MINUTEProdRate Limit für Support-Logvorschau.30
SUPPORT_LOGS_LOG_LEVEL_DEFAULT_TTL_MINUTESProdAuto-Revert-Zeit für temporär erhöhte Log-Level.15
SUPPORT_LOGS_LOG_LEVEL_MAX_TTL_MINUTESProdMaximales Zeitfenster für temporäre Log-Level-Erhöhungen.30
SUPPORT_LOGS_LOG_LEVEL_ALLOWED_SCOPESProdPaketbereiche, für die temporäres Hochsetzen erlaubt ist.dev.quotenode,...

Authentifizierung und Session-Sicherheit

VariableBereichZweckTypischer Wert
DB_ENCRYPTION_KEYProd / DevHauptschlüssel für Anwendungsverschlüsselung.64 Hex-Zeichen in Produktion
TIMING_TOKEN_SECRETProd / DevHMAC-Secret für Timing-Schutz.32+ Zufallszeichen
PUBLIC_LINK_PASSWORD_SESSION_SECRETProd / DevSession-Secret für geschützte öffentliche Links.32+ Zufallszeichen
AUTH_PASSWORD_MIN_LENGTHProd / DevMindestlänge für Passwörter.12 in Prod, 8 in Dev
AUTH_PASSWORD_COMPLEXITY_LEVELProd / DevPasswort-Komplexitätslevel.2 in Prod, 1 in Dev
AUTH_SESSION_IDLE_TIMEOUT_MINProd / DevSession-Idle-Timeout.30, 480
SECURITY_SESSION_ABSOLUTE_TIMEOUT_HProd / DevMaximale Sessiondauer unabhängig von Aktivität.12, 24
SECURITY_MAX_FAILED_LOGINS_SOFTProd / DevSchwelle für weiche Reaktion auf fehlgeschlagene Logins.5, 10
SECURITY_MAX_FAILED_LOGINS_TEMP_LOCKProd / DevSchwelle für temporäre Sperre.10, 20
SECURITY_MAX_FAILED_LOGINS_HARD_LOCKProd / DevSchwelle für harte Sperre.20, 50
SECURITY_TEMP_LOCK_MINUTESProd / DevDauer der temporären Sperre.30, 5
FEATURE_2FA_ENABLEDProd / Devglobaler 2FA-Schalter.true, false
SECURITY_REQUIRE_2FA_ROLESProd / DevRollen, die 2FA erzwingen.ADMIN
SECURITY_BOT_DETECTION_ENABLEDProd / Devaktiviert Bot-Detection.true, false
SECURITY_BOT_SCORE_WARN_THRESHOLDProd / DevWarnschwelle für Bot-Score.30
SECURITY_BOT_SCORE_BLOCK_THRESHOLDProd / DevBlockschwelle für Bot-Score.70
SECURITY_IP_WHITELIST_FORCE_DISABLERuntime overrideNotfall-Override zum Deaktivieren einer gespeicherten IP-Allowlist.false

CRM, Dateien, Import und Produktmedien

VariableBereichZweckTypischer Wert
CRM_DEDUP_NAME_SIMILARITY_THRESHOLDProd / Devpg_trgm-Schwelle für Firmen-Duplikatswarnungen.0.8
CRM_DEDUP_EMAIL_DOMAIN_WARNProd / DevWarnung bei passender E-Mail-Domain zu bestehenden Datensätzen.true
CRM_ATTACHMENT_MAX_SIZE_MBProd / DevMaximale Größe eines CRM-Anhangs.25, 10
CRM_ATTACHMENT_ALLOWED_TYPESProd / DevZulässige CRM-Anhangs-Endungen.pdf,doc,docx,...
CSV_IMPORT_MAX_ROWSProd / DevZeilenlimit für CSV-Importe.5000
STORAGE_PATHProd / DevHauptpfad für Uploads./data/uploads, ./data/uploads
PIM_MEDIA_MAX_SIZE_MBProd / DevMaximale Größe eines einzelnen Produktbilds.5, 10
PIM_MEDIA_MAX_PER_PRODUCTProd / DevMaximale Anzahl Medien pro Produkt.5, 10
PIM_MEDIA_THUMBNAIL_WIDTHProd / DevBreite der Thumbnails in Pixeln.300
PIM_MEDIA_ALLOWED_TYPESProd / DevErlaubte Produktmedien-Endungen.jpg,jpeg,png,webp,svg
IMPORT_ZIP_MAX_SIZE_MBProd / DevMaximale ZIP-Größe für Bildimport.100
IMPORT_ZIP_MAX_IMAGESProd / DevMaximale Bildanzahl pro ZIP.1000
IMPORT_IMAGE_MAX_SIZE_MBProd / DevMaximale Größe eines Einzelbilds im ZIP-Import.5
IMPORT_IMAGE_FUZZY_THRESHOLDProd / DevSchwelle für Fuzzy-Matching von Dateinamen.0.82

Versand, FX und Angebotsdefaults

VariableBereichZweckTypischer Wert
SHIPPING_DEFAULT_VOLUMETRIC_DIVISORProd / DevDivisor für volumetrisches Versandgewicht.4000
SHIPPING_OVERRIDE_REQUIRES_REASONProd / DevBegründungspflicht bei manuellem Versandkosten-Override.true
FX_PROVIDERProd / DevQuelle für Wechselkurse.NBP, MOCK, ECB, CUSTOM
FX_PROVIDER_URLProd / DevOverride-URL für einen eigenen FX-Provider.leer außer bei CUSTOM
FX_REFRESH_INTERVAL_MINProd / DevIntervall für automatischen FX-Refresh.60, 0
FX_DEFAULT_MARGIN_PERCENTProd / DevStandardaufschlag auf Provider-Kurse.0
FX_DEVIATION_WARN_PERCENTProd / DevWarnschwelle für manuelle Kursabweichungen.3
FX_DEVIATION_BLOCK_PERCENTProd / DevBlockschwelle für manuelle Kursabweichungen.8
OFFER_NUMBER_PREFIXProd / DevPräfix der Angebotsnummern.OF
VariableBereichZweckTypischer Wert
SMTP_HOSTProd / DevSMTP-Host für Versand.Provider-Host, localhost
SMTP_PORTProd / DevSMTP-Port.587, 1025, 1026
SMTP_USERNAMEProd / DevSMTP-Benutzername.Provider-Konto
SMTP_PASSWORDProd / DevSMTP-Passwort.Provider-Secret
SMTP_AUTHProd / Devaktiviert SMTP-Authentifizierung.true, false
SMTP_STARTTLSProd / Devaktiviert STARTTLS.true, false
PUBLIC_LINK_TOKEN_BYTESProd / DevEntropiegröße für öffentliche Link-Tokens.32
PUBLIC_LINK_DEFAULT_EXPIRY_DAYSProd / DevStandardgültigkeit für öffentliche Links.0 = unbegrenzt
PUBLIC_RATE_LIMIT_OPEN_PER_HOURProd / DevStundenlimit für öffentliche Angebotsaufrufe.60, 999
PUBLIC_RATE_LIMIT_ACTION_PER_HOURProd / DevStundenlimit für öffentliche Aktionen wie Annahme/Ablehnung.5, 999
TRACKING_IP_ANONYMIZEProd / Devaktiviert IP-Anonymisierung in Tracking-Daten.false
TRACKING_IP_ANONYMIZE_AFTER_DAYSProd / Devverzögerte IP-Anonymisierung nach N Tagen.0
TRACKING_RETENTION_DAYSProd / DevAufbewahrung für Tracking-Daten öffentlicher Links.365
CLIENT_CONFIRM_EMAIL_ENABLEDProd / Devversendet Bestätigung an den Kunden nach Annahme.false
NOTIFICATIONS_ENABLEDProd / Devaktiviert das Benachrichtigungssystem.true
NOTIFICATIONS_EMAIL_ENABLEDProd / Devaktiviert E-Mail-Zustellung für Benachrichtigungen.true, false
NOTIFICATIONS_PUBLIC_PREFERENCES_URLProdöffentliche URL für Benachrichtigungseinstellungen.https://ihredomain.de/notifications/preferences
NOTIFICATIONS_PREFERENCE_TOKEN_TTL_DAYSProdGültigkeit des Einstellungs-Tokens.30
NOTIFICATIONS_OFFER_EXPIRY_WARN_DAYSProd / DevErinnerungszeitplan vor Angebotsablauf.7,2
NOTIFICATIONS_LICENSE_EXPIRY_WARN_DAYSProd / DevErinnerungen vor Lizenzablauf.30,14,7,1
REMINDERS_JOB_INTERVAL_MINUTESProd / DevIntervall des Reminder-Jobs.5

PDF-Erzeugung

VariableBereichZweckTypischer Wert
PDF_ENABLEDProd / Devaktiviert PDF-Erzeugung.true, false
PDF_GOTENBERG_URLProd / Devinterne URL des Gotenberg-Dienstes.http://gotenberg:3000
PDF_SYNC_TIMEOUT_MSProd / DevTimeout für synchrone PDF-Erzeugung.10000, 5000
PDF_SYNC_MAX_ITEMSProd / Devmaximale Positionszahl für synchrone Erzeugung.50
PDF_STORAGE_PATHProd / DevPfad für gespeicherte PDFs./data/pdfs, ./data/pdfs
PDF_RETENTION_DAYSProd / DevAufbewahrungsdauer erzeugter PDFs.365
PDF_RETRY_BACKOFF_SECONDSProd / DevRetry-Backoff für asynchrone PDF-Jobs.30,120,600
PDF_WORKER_CONCURRENCYProd / DevParallelität des PDF-Workers.2
PDF_WORKER_POLL_INTERVAL_MSProd / DevPolling-Intervall des PDF-Workers.2000

Lizenzierung, Reports und Wartung

VariableBereichZweckTypischer Wert
LICENSE_SKIP_SIGNATURE_CHECKProd / Devumgeht die Lizenzsignaturprüfung. Nie in Produktion.false, true
LICENSE_EXPIRY_CHECK_INTERVAL_HProd / DevIntervall zur Prüfung des Lizenzablaufs.24
REPORTS_DEFAULT_PERIOD_DAYSProd / DevStandard-Datumsbereich für Reports.30
REPORTS_EXPORT_MAX_ROWSProd / DevZeilenlimit für Report-Exporte.10000

Backups, GeoIP und Privacy-Ops

VariableBereichZweckTypischer Wert
BACKUP_ENABLEDProd / Devaktiviert geplante Backups.true, false
BACKUP_CRONProd / DevCron-Zeitplan für automatische Backups.0 0 2 * * *
BACKUP_RETENTION_DAILYProd / DevAnzahl täglicher Backups, die gehalten werden.7
BACKUP_RETENTION_WEEKLYProd / DevAnzahl wöchentlicher Backups.4
BACKUP_RETENTION_MONTHLYProd / DevAnzahl monatlicher Backups.12
BACKUP_LOCAL_DIRRuntime / Composelokaler Pfad für Backups und Worker./app/data/backups
BACKUP_GPG_RECIPIENTProd / DevGPG-Empfänger für Backup-Verschlüsselung.Fingerprint oder E-Mail
BACKUP_RCLONE_REMOTEProd / Devrclone-Ziel für Offsite-Backups.s3:bucket/path
BACKUP_ENCRYPTION_ENABLEDRuntime overrideinterner oder testbezogener Override für Backup-Verschlüsselung.false
GEOIP_ENABLEDProd / Devaktiviert GeoIP-Zugriffskontrolle.false
GEOIP_DB_PATHProd / DevPfad zur MaxMind-GeoIP-Datenbank./app/data/geoip/...
SECURITY_GEOIP_ALLOWED_COUNTRIESProd / DevISO-Allowlist für GeoIP.leer oder PL,DE,CZ
MAXMIND_ACCOUNT_IDProdMaxMind-Konto für GeoLite-Download.Account-ID
MAXMIND_LICENSE_KEYProdMaxMind-Lizenzschlüssel.Secret
GEOIP_EDITION_IDProdMaxMind-Editions-ID.GeoLite2-Country
GDPR_ANONYMIZE_AUTO_AFTER_DAYSProd / DevZeitraum bis zur automatischen Anonymisierung.0

Praktische Hinweise

  • Für echte Deployments sollten Sie mit der Produktionsvorlage starten, für lokale Arbeit mit der Dev-Vorlage.
  • DB_ENCRYPTION_KEY, TIMING_TOKEN_SECRET, PUBLIC_LINK_PASSWORD_SESSION_SECRET und SMTP-Zugangsdaten sind Secrets und müssen sicher gesichert werden.
  • Compose-only-Ports und Frontend-Variablen gehören nicht in produktive .env-Dateien, außer Ihr Deployment benötigt sie explizit.
  • Wenn Sie nur den kleinsten sinnvollen Einstieg brauchen, ist der Installationsleitfaden bewusst kürzer als diese Referenz.

Last reviewed: Recently