CONFIG_REFERENCE.md 4.9 KB

Konfigurationsreferenz (Server)

Überblick

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.

Produkt

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

Öffentliche URL

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.

Anmeldung

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 $.

Speicher

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.

Backups

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.

S3-Archiv

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.

Ratenbegrenzung

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.

Protokolle

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.

Beispiel für eine minimale config.php

<?php

define("MANAGE_PRODUCT_NAME", "PSA Orderform");
define("MANAGE_PACKAGE_PREFIX", "psa-orderform");
define("MANAGE_PUBLIC_URL", "https://manage.example.org");
define("MANAGE_ADMIN_PASSWORD_HASH", '$2y$12$…');

Alles Weitere übernimmt die Standardwerte.