espo-deploy/docker/0 - intern/config-override.php
Gordon Zimm f75c62224f ESPO-13-Secrets-setzen, ESPO-30-Extension-Installieren, espo_extensions
ESPO-13 legt Secrets unter /srv/espo/secrets ab (vorerst
gitea_package_token). Je Secret ein Parameter; leer oder woertlicher
Platzhalter laesst den Bestand. Erst Format und Funktion aller Werte
pruefen (Probeabruf der Registry), dann atomar schreiben - ein falscher
Token ersetzt keinen funktionierenden. Getestet: gesetzt, unveraendert,
falsches Format, abgelehnter Token.

ESPO-30 holt <extension> <version> aus der Package Registry
EspoCRM_Packages: SHA-256 gegen die Registry, Name und Version gegen das
Manifest, kein Rueckschritt, Snapshot srv-vor-update vor dem Download,
Installation per command.php als www-data, Neustart und Warten auf
healthy, Nachweis ueber --list. Danach liegt keine ZIP mehr auf der VM -
auch EspoCRMs eigene Archive in data/upload/extensions werden entfernt;
Update und Deinstallation brauchen sie nicht (Quelle 10.0.8).

ESPO-20 misst espo_extensions ("Name Version; ...", "none" wenn leer) und
beschreibt den Leseweg der Version wieder richtig. Ring 0 sperrt den
Extension-Upload in der Oberflaeche. README: Nummernkreise nachgezogen,
verrutschte Zeilen der Verzeichnistabelle zurueckgeholt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:58:35 +02:00

72 lines
3.4 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* subcura – Grundeinstellungen für EspoCRM-Instanzen (deutscher Markt), unabhängig von Extensions.
*
* Mechanismus: EspoCRMs eigene data/config-override.php (ab v8.2) – wird nach config.php und config-internal.php geladen,
* überschreibt nur die hier gesetzten Schlüssel und wird von der Anwendung nie geschrieben (Änderungen an diesen
* Parametern über die Admin-UI bleiben wirkungslos). getenv() ist erlaubt.
* Anwendung: Kunden-VM: ESPO-10 legt die Datei vor dem ersten Start nach /srv/espo/data/config-override.php
* (Bind-Mount des EspoCRM-data-Verzeichnisses); danach Cache leeren.
* Entwicklungs- und Integrationsinstanzen: siehe espo-dev-env, Abschnitt 10.
* Nicht hier: instanzspezifische Werte (siteUrl, Datenbank, Mail-/SMTP-Daten, LDAP-Server, version).
* Geprüft gegen EspoCRM 10.0.8 (Settings.json / defaults/config.php).
*/
return [
// Sprache, Zeit, Zahlen
'language' => 'de_DE',
'timeZone' => 'Europe/Berlin',
'dateFormat' => 'DD.MM.YYYY',
'timeFormat' => 'HH:mm',
'weekStart' => 1, // Montag
'fiscalYearShift' => 0, // Geschäftsjahr = Kalenderjahr
'thousandSeparator' => '.',
'decimalMark' => ',',
// Währung
'currencyList' => ['EUR'],
'defaultCurrency' => 'EUR',
'baseCurrency' => 'EUR',
'currencyFormat' => 3, // "1.000,00 €" (Symbol nach dem Betrag)
'currencyDecimalPlaces' => 2,
// Adressen und Telefon
'addressFormat' => 2, // Straße / PLZ Ort / Land
'addressStateList' => [
'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen', 'Hamburg', 'Hessen',
'Mecklenburg-Vorpommern', 'Niedersachsen', 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland',
'Sachsen', 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen',
],
'addressCityList' => [],
'phoneNumberPreferredCountryList' => ['de'],
'phoneNumberInternational' => true, // E.164-Speicherung/-Validierung
// Listen
'recordsPerPage' => 50,
'recordsPerPageSmall' => 10,
'recordsPerPageSelect' => 20,
'recordsPerPageKanban' => 10,
// E-Mail und Export
'emailMessageMaxSize' => 25, // MB
'exportDelimiter' => ';', // CSV-Export für deutsches Excel
// Sicherheit (betrifft Espo-Passwörter: Admins, API-Benutzer; bei LDAP-Kunden die Nicht-LDAP-Konten)
'passwordStrengthLength' => 12,
'passwordStrengthBothCases' => true,
'passwordStrengthNumberCount' => 1,
'passwordStrengthSpecialCharacterCount' => 1,
'passwordGenerateLength' => 16,
'passwordRecoveryNoExposure' => true, // Passwort-Reset verrät nicht, ob eine Adresse existiert
'auth2FA' => true, // 2FA anbieten (nicht erzwingen: auth2FAForced)
// Extensions nur über ESPO-30 aus der Package Registry. Der Upload in der Oberfläche ist gesperrt,
// damit keine Extension an diesem Weg vorbei auf eine Instanz kommt (ADR 0013).
'adminExtensionUpload' => false,
// Authentifizierung: 'LDAP' nur zusammen mit den ldap*-Parametern der Kundeninstanz setzen
// (ldapHost, ldapPort, ldapSecurity, ldapUsername, ldapPassword, ldapBaseDn, ldapUserLoginFilter, ...).
// Ohne erreichbaren LDAP-Server können sich nur noch Admins anmelden. Dev-/Integrationsinstanz: 'Espo'.
// 'authenticationMethod' => 'LDAP',
];