Files
Deploymentcenter/config/config.example.php
T

94 lines
4.2 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', ''),
// Proaktive Kontosperren & Brute-Force-Schutz
'max_account_attempts' => (int)dc_env('DC_MAX_ACCOUNT_ATTEMPTS', 5),
'account_lockout_minutes' => (int)dc_env('DC_ACCOUNT_LOCKOUT_MINUTES', 15),
'max_ip_attempts' => (int)dc_env('DC_MAX_IP_ATTEMPTS', 10),
'use_syslog' => (bool)dc_env('DC_USE_SYSLOG', false),
],
'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),
],
];