config-override.php je Ring statt einmal fuer alle
Die Grundeinstellungen gehoeren zum Stand eines Rings wie die Compose: Eine Aenderung daran soll denselben Freigabeweg nehmen. Die Datei liegt jetzt in allen drei Ringordnern, die gemeinsame Fassung ist entfallen. ESPO-03 holt sie aus dem Ordner des jeweiligen Rings; die Zuordnung Ring zu Ordner steht damit an zwei Stellen und ist in beiden vermerkt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
c0e62788c0
commit
0d8aeccff8
@ -8,7 +8,7 @@ es steht deshalb **kein Passwort, kein Token und keine Kundenangabe** in diesem
|
||||
| `autoinstall/` | NoCloud-Seed für die Basis-VM (`user-data`, `meta-data`) |
|
||||
| `rmm-tasks/` | Skripte, die als Task im ConnectWise RMM hinterlegt sind (Quelle für Änderungen) |
|
||||
| `bin/` | Skripte, die auf der VM unter `/srv/espo/bin/` liegen und von Tasks aufgerufen werden |
|
||||
| `docker/` | je Ring ein Ordner mit der `docker-compose.yml` dieses Standes, dazu die EspoCRM-Grundeinstellungen (`config-override.php`) |
|
||||
| `docker/` | je Ring ein Ordner mit dem Stand dieses Rings: `docker-compose.yml` und `config-override.php` |
|
||||
|
||||
Konzept, Entscheidungen und Runbooks liegen im internen Repository `espoCRM/espo-fleet-ops`.
|
||||
|
||||
@ -28,7 +28,8 @@ Das Semikolon muss maskiert werden – in GRUB trennt ein unmaskiertes `;` zwei
|
||||
| `docker/1 - Pilotkunde/` | 1 | freigegebener Stand für Pilotkunden |
|
||||
| `docker/2 - Produktivkunde/` | 2 | freigegebener Stand für den Regelbetrieb |
|
||||
|
||||
Jeder Ordner enthält eine vollständige `docker-compose.yml` mit genau einem Platzhalter: `__FQDN__`.
|
||||
Jeder Ordner enthält den vollständigen Stand dieses Rings: eine `docker-compose.yml` mit genau einem
|
||||
Platzhalter (`__FQDN__`) und die `config-override.php` mit den EspoCRM-Grundeinstellungen.
|
||||
**Eine Freigabe ist das Kopieren dieser Datei in den nächsten Ordner** – damit steht in jedem `git diff`, welche
|
||||
Instanzen den neuen Stand bekommen.
|
||||
|
||||
|
||||
67
docker/1 - Pilotkunde/config-override.php
Normal file
67
docker/1 - Pilotkunde/config-override.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?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)
|
||||
|
||||
// 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',
|
||||
];
|
||||
67
docker/2 - Produktivkunde/config-override.php
Normal file
67
docker/2 - Produktivkunde/config-override.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?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)
|
||||
|
||||
// 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',
|
||||
];
|
||||
@ -38,7 +38,16 @@ done
|
||||
umask 022
|
||||
|
||||
# 4. Grundeinstellungen bereitlegen, bevor EspoCRM zum ersten Mal startet.
|
||||
curl -fsSL "$BASIS_URL/docker/config-override.php" -o /srv/espo/data/config-override.php || fehler "config-override.php nicht abrufbar"
|
||||
# Sie gehoeren zum Stand des Rings, liegen also im selben Ordner wie die Compose.
|
||||
# Dieselbe Zuordnung steht in bin/espo-compose-rendern - beide zusammen halten.
|
||||
case "$RING" in
|
||||
0) RINGORDNER="0%20-%20intern" ;;
|
||||
1) RINGORDNER="1%20-%20Pilotkunde" ;;
|
||||
2) RINGORDNER="2%20-%20Produktivkunde" ;;
|
||||
*) fehler "unbekannter Ring '$RING' (erwartet 0, 1 oder 2)" ;;
|
||||
esac
|
||||
curl -fsSL "$BASIS_URL/docker/$RINGORDNER/config-override.php" -o /srv/espo/data/config-override.php \
|
||||
|| fehler "config-override.php fuer Ring '$RING' nicht abrufbar"
|
||||
|
||||
# 5. Compose aus dem Stand des Rings schreiben.
|
||||
curl -fsSL "$BASIS_URL/bin/espo-compose-rendern" -o /srv/espo/bin/espo-compose-rendern || fehler "Render-Skript nicht abrufbar"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user