Files
Deploymentcenter/config/config.example.php
T
Deploymentcenter BotandClaude Opus 5 3b56839a1e fix(2.7.1): Auskuenfte, die stimmen - Fassung, Health, doctor, Ansicht
Der erste Durchlauf der Testinstanz hat neun Bugs zutage gefoerdert, und fast
alle waren dieselbe Sorte Fehler: eine Auskunft, die nicht stimmte.

Am folgenreichsten die Fassung. config/config.php fuehrte app.version als feste
Zeichenkette und stand seit 2.0.0 darauf, waehrend 2.7.0 lief - unbemerkt, weil
die Datei gitignored ist und in keinem Diff auftaucht. Zwei gemeldete Bugs sind
daran fehldiagnostiziert worden ("der Server ist zu alt"). src/bootstrap.php
leitet die Fassung jetzt aus "current" in public/docs/changelog.json ab.

Im Einzelnen:

- #346 Fassung aus dem Changelog statt aus der Konfiguration
- #60  /api/health ueberlebt eine leere Datenbank: eigener Check "schema",
       healthy=false mit Begruendung statt HTTP 500
- #54  dc-testkit doctor prueft Mindestfassung (semantisch) und Rechte, statt
       sie nur anzuzeigen - dafuer neu: GET /api/tokens/v1/whoami
- #53  dc-testkit.sh unter /testkit/ erreichbar (Route fehlte, der
       dokumentierte Bezugsweg hat nie funktioniert) und mit LF ausgeliefert
       (deploy.py/deploy_dev.py entfernen CR bei .sh/.bash beim Upload)
- #288 Filter und Formulare werfen nicht mehr aufs Dashboard zurueck: die
       offene Ansicht wandert bei GET als "view" in den Query-String, und die
       Filter loesen ueber requestSubmit() aus - form.submit() erzeugt kein
       submit-Ereignis, weshalb der zentrale Zuhoerer dort nie lief
- #347 /api/bugtracker/v1/roadmap auch ohne .php erreichbar
- #55  Fassungshinweis in TESTUMGEBUNG.md 4.6 (serverseitig war das mit 2.6.0
       bereits behoben)

Nicht geprueft: php -l. Auf dem Arbeitsplatz ist kein PHP installiert; die
Abnahme laeuft ueber die Testinstanz.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 21:06:33 +02:00

89 lines
3.9 KiB
PHP
Raw 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
/**
* Deploymentcenter Configuration – VORLAGE
*
* Diese Datei nach config/config.php kopieren und ausfüllen.
* config/config.php ist per .gitignore vom Repository ausgeschlossen.
*
* Jeder Wert kann alternativ über eine Umgebungsvariable gesetzt werden
* (siehe dc_env() unten). Die Umgebungsvariable hat immer Vorrang.
*/
if (!function_exists('dc_env')) {
/**
* Liest eine Umgebungsvariable, fällt sonst auf den Standardwert zurück.
*/
function dc_env(string $key, $default = null)
{
$val = getenv($key);
if ($val === false || $val === '') {
return $default;
}
return $val;
}
}
return [
'app' => [
'name' => 'Deploymentcenter',
// Rueckfallebene. Massgeblich ist "current" aus
// public/docs/changelog.json - src/bootstrap.php setzt den Wert von
// dort. Hier wurde der Wert nicht nachgezogen - /api/health meldete
// deshalb bis 2.7.0 unveraendert 2.0.0.
'version' => '2.0.0',
'url' => dc_env('DC_APP_URL', 'https://dc.example.com'),
'timezone' => 'Europe/Berlin',
// Bei true werden Exception-Texte in API-Antworten ausgegeben.
// Auf Produktivsystemen zwingend false lassen.
'debug' => (bool)dc_env('DC_DEBUG', false),
],
'db' => [
'host' => dc_env('DC_DB_HOST', 'localhost'),
'dbname' => dc_env('DC_DB_NAME', 'deploymentcenter'),
'username' => dc_env('DC_DB_USER', 'root'),
'password' => dc_env('DC_DB_PASS', ''),
'charset' => 'utf8mb4',
],
'security' => [
// Master-Key für Server-zu-Server-Aufrufe (Evaluator-Cron, Deactivate, Migration).
// Mit `openssl rand -hex 32` erzeugen.
'shared_key' => dc_env('DC_SHARED_KEY', ''),
'session_name' => 'DC_SESSION_ID',
// Signaturschlüssel für ausgehende Webhooks (HMAC-SHA256).
'webhook_key' => dc_env('DC_WEBHOOK_KEY', ''),
// Signaturschlüssel für Offline-Lizenzdateien (.lic).
'license_key' => dc_env('DC_LICENSE_SIGNING_KEY', ''),
// Privater RSA-Schlüssel, mit dem Releases signiert werden. Entweder
// das PEM selbst oder ein Pfad zur Schlüsseldatei.
// openssl genrsa -out /etc/dc/release-signing.pem 2048
// chmod 600 /etc/dc/release-signing.pem
// Leer lassen schaltet das Signieren ab; Releases bleiben dann
// installierbar, der Agent weist aber bei jedem Update darauf hin.
// Bewusst asymmetrisch: geprüft wird auf fremden Systemen, dort darf
// der Signierschlüssel nicht liegen.
'release_private_key' => dc_env('DC_RELEASE_SIGNING_KEY', ''),
],
'bugtracker' => [
// Projekt-Slug, unter dem das Deploymentcenter eigene Fehler meldet.
'self_project' => 'deploymentcenter',
// Reports pro IP und Minute an /api/bugtracker/v1/report.
'report_rate' => 60,
// Reports pro IP und Minute an /api/errors/v1/report. Bewusst höher:
// Dort meldet ein globaler Exception-Handler, und ein Fehlerschauer
// erzeugt in Sekunden mehr Meldungen als ein Mensch am Tag.
'error_rate' => 300,
// Wie lange ein Agent ein Item exklusiv beansprucht (Minuten).
'lease_minutes' => 30,
],
'rocketchat' => [
'enabled' => (bool)dc_env('DC_RC_ENABLED', true),
'url' => dc_env('DC_RC_URL', 'https://chat.wh1.mhdf.de'),
'username' => dc_env('DC_RC_USER', 'deploymentcenter'),
'password' => dc_env('DC_RC_PASS', 'cNt.m.KcWHrb8_X9Tv8-'),
'status_channel' => dc_env('DC_RC_STATUS_CHANNEL', '#DC-Systemstatus'),
'alert_channel' => dc_env('DC_RC_ALERT_CHANNEL', '#DC-Alerts'),
'verify_ssl' => (bool)dc_env('DC_RC_VERIFY_SSL', false),
'report_interval' => (int)dc_env('DC_RC_REPORT_INTERVAL', 43200),
],
];