Alle Konstanten stehen in config.php, kopiert aus config.sample.php. Jede hat
einen Standardwert in includes/bootstrap.php; eine minimale config.php braucht
nur MANAGE_PUBLIC_URL und MANAGE_ADMIN_PASSWORD_HASH.
Die Konstanten des Clients stehen in ../client-package/docs/03_CONFIG_REFERENCE.md.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_PRODUCT_NAME |
"Managed Application" |
Anzeigename in der Oberfläche |
MANAGE_PACKAGE_PREFIX |
"release" |
Dateinamenspräfix gespeicherter Pakete: <prefix>-vX.Y.Z.zip |
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_PUBLIC_URL |
"" |
Absolute Basis-URL dieser Installation, ohne Schrägstrich am Ende |
Aus diesem Wert wird die Download-URL gebildet, die Clients im Manifest erhalten.
Er wird bewusst nicht aus dem Host-Header abgeleitet: Ein gefälschter Header
könnte einen Client sonst auf einen fremden Server umlenken.
Ist der Wert leer, meldet die Übersicht eine Warnung und manifest.php antwortet
mit einem Fehler.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_ADMIN_PASSWORD_HASH |
– | bcrypt-Hash, mit password_verify() geprüft |
MANAGE_ADMIN_PASSWORD |
– | Klartext-Alternative, mit hash_equals() geprüft |
Der Hash hat Vorrang. Er wird ignoriert, solange er noch den Platzhalter aus
config.sample.php enthält – so scheitert eine unfertige Konfiguration sichtbar,
statt eine offene Anmeldung zu erlauben.
php -r 'echo password_hash("ein-langes-passwort", PASSWORD_DEFAULT), PHP_EOL;'
In einfache Anführungszeichen setzen, ein bcrypt-Hash enthält $.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_STORAGE_DIR |
__DIR__ . "/storage/" |
Wurzel für Instanzen, Releases, Backups, Protokolle |
Alle weiteren Pfade leiten sich davon ab und müssen nicht einzeln gesetzt werden:
storage/instances.json, storage/settings.json, storage/releases/manifest.json,
storage/releases/packages/, storage/backups/, storage/logs/.
Das Verzeichnis darf nicht über das Web erreichbar sein.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_BACKUP_RETENTION |
30 |
Lokale Backups pro Instanz. Minimum 1 |
MANAGE_BACKUP_MAX_UPLOAD_BYTES |
0 |
Zusätzliches Größenlimit; 0 deaktiviert |
Der in der Oberfläche gespeicherte Wert (storage/settings.json) hat Vorrang vor
MANAGE_BACKUP_RETENTION, sobald er einmal gespeichert wurde.
MANAGE_BACKUP_MAX_UPLOAD_BYTES liegt über den PHP-Grenzen: upload_max_filesize
und post_max_size greifen ohnehin und sind meist niedriger.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_S3_ENABLED |
false |
Archivierung einschalten |
MANAGE_S3_ENDPOINT |
"" |
z. B. https://fsn1.your-objectstorage.com |
MANAGE_S3_REGION |
"" |
Region für die Signatur |
MANAGE_S3_BUCKET |
"" |
Bucket-Name |
MANAGE_S3_PREFIX |
"" |
Schlüsselpräfix im Bucket, darf leer sein |
MANAGE_S3_ACCESS_KEY |
"" |
Access Key |
MANAGE_S3_SECRET_KEY |
"" |
Secret Key |
MANAGE_S3_PATH_STYLE |
false |
false = virtual-hosted, true = path-style |
MANAGE_S3_TIMEOUT |
120 |
Sekunden je HTTP-Anfrage |
MANAGE_S3_RETENTION |
365 |
S3-Backups pro Instanz |
Das Archiv gilt nur als aktiv, wenn MANAGE_S3_ENABLED gesetzt und Endpunkt,
Region, Bucket, Access Key und Secret Key gefüllt sind. Eine halbe Konfiguration
bleibt wirkungslos statt bei jedem Upload zu scheitern.
Verhalten und Fehlersuche: SERVER_SETUP.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_LOGIN_RATE_LIMIT_MAX |
10 |
Fehlversuche an der Oberfläche je Zeitfenster und IP |
MANAGE_LOGIN_RATE_LIMIT_WINDOW |
900 |
Zeitfenster in Sekunden |
MANAGE_API_RATE_LIMIT_MAX |
240 |
Fehlgeschlagene API-Authentifizierungen je Fenster und IP |
MANAGE_API_RATE_LIMIT_WINDOW |
300 |
Zeitfenster in Sekunden |
Der Zustand liegt in storage/ratelimit/. Eine erfolgreiche Authentifizierung
setzt den Zähler der IP zurück. Ist der Zustand nicht schreibbar, lässt die
Begrenzung bewusst durch, statt alle auszusperren.
| Konstante | Standard | Bedeutung |
|---|---|---|
MANAGE_LOG_MAX_BYTES |
1048576 |
Rotation ab dieser Größe |
MANAGE_LOG_KEEP_FILES |
5 |
Anzahl rotierter Dateien |
MANAGE_LOG_MAX_AGE_SECONDS |
2592000 |
Rotierte Dateien danach löschen (30 Tage) |
Gilt für access.log und error.log. s3.log wächst unbegrenzt und wird bei
Bedarf von Hand gekürzt.
<?php
define("MANAGE_PRODUCT_NAME", "Example Orderform");
define("MANAGE_PACKAGE_PREFIX", "example-orderform");
define("MANAGE_PUBLIC_URL", "https://manage.example.org");
define("MANAGE_ADMIN_PASSWORD_HASH", '$2y$12$…');
Alles Weitere übernimmt die Standardwerte.