Upload via GUI (28 Dateien)
This commit is contained in:
@@ -15,6 +15,7 @@ $storage = getenv('BAKE_STORAGE_DIR') ?: '/data';
|
||||
$hash = trim((string) @file_get_contents($secrets . '/admin_hash'));
|
||||
$key = (string) @file_get_contents($secrets . '/signing_key');
|
||||
$access = trim((string) @file_get_contents($secrets . '/catalog_key'));
|
||||
$fcm = (string) @file_get_contents($secrets . '/fcm_service_account'); // optional: Firebase-Dienstkonto für den Push-Dienst
|
||||
$base = rtrim((string) getenv('BASE_URL'), '/');
|
||||
$user = (string) getenv('ADMIN_USER');
|
||||
|
||||
@@ -28,7 +29,15 @@ if (!$private) $fail('signing_key ist kein gültiger privater Schlüssel (PEM).'
|
||||
$details = openssl_pkey_get_details($private);
|
||||
if (($details['type'] ?? null) !== OPENSSL_KEYTYPE_RSA || ($details['bits'] ?? 0) < 2048) $fail('Der Signierschlüssel muss RSA mit mindestens 2048 Bit sein.');
|
||||
|
||||
$fcmFile = '';
|
||||
if (trim($fcm) !== '') {
|
||||
$sa = json_decode($fcm, true);
|
||||
if (!is_array($sa) || ($sa['type'] ?? '') !== 'service_account' || empty($sa['client_email']) || empty($sa['project_id']) || !@openssl_pkey_get_private((string) ($sa['private_key'] ?? ''))) $fail('fcm_service_account ist keine gültige Firebase-Dienstkonto-Datei (JSON).');
|
||||
$fcmFile = $keyDir . '/fcm-dienstkonto.json';
|
||||
}
|
||||
|
||||
@mkdir($keyDir, 0750, true);
|
||||
if ($fcmFile !== '') file_put_contents($fcmFile, $fcm);
|
||||
file_put_contents($keyDir . '/herausgeber-privat.pem', $key);
|
||||
$cfg = [
|
||||
'site_name' => (string) (getenv('SITE_NAME') ?: 'DeskHub Plugins und Themes'),
|
||||
@@ -38,7 +47,9 @@ $cfg = [
|
||||
'signing_key_file' => $keyDir . '/herausgeber-privat.pem',
|
||||
'storage_dir' => $storage,
|
||||
'access_key' => $access,
|
||||
'fcm_service_account_file' => $fcmFile,
|
||||
'locked' => true,
|
||||
];
|
||||
file_put_contents($configPath, "<?php\nreturn " . var_export($cfg, true) . ";\n");
|
||||
echo $fcmFile !== '' ? "Push-Dienst: Firebase-Dienstkonto fest eingebaut.\n" : "Push-Dienst: KEIN Firebase-Dienstkonto eingebaut (schluessel/firebase-dienstkonto.json fehlt).\n";
|
||||
echo "Zugang für \"{$user}\" und Signierschlüssel fest eingebaut. Öffentlicher Schlüssel:\n" . $details['key'];
|
||||
|
||||
Reference in New Issue
Block a user