Fix: Read keys from host file in sync script to prevent container deadlock

This commit is contained in:
infosave2007
2026-01-24 21:36:13 +03:00
parent 94be6f9b2f
commit 904d725c7b
+7 -5
View File
@@ -51,15 +51,17 @@ try {
// vpn_servers table has server_public_key... but usually NOT private key? // vpn_servers table has server_public_key... but usually NOT private key?
// Start script puts keys in /opt/amnezia/awg/....key // Start script puts keys in /opt/amnezia/awg/....key
// We should READ them from file to be safe. // We should READ them from file to be safe.
// Read directly from HOST file to avoid container dependency (deadlock if stuck in restart loop)
$privKey = trim($server->executeCommand("cat /opt/amnezia/awg/wireguard_server_private_key.key 2>/dev/null", true));
if (empty($privKey)) {
// Fallback: try container exec (only if host file missing)
$privKey = trim($server->executeCommand("docker exec -i $containerName cat /opt/amnezia/awg/server_private.key", true)); $privKey = trim($server->executeCommand("docker exec -i $containerName cat /opt/amnezia/awg/server_private.key", true));
if (!$privKey) {
// Try file mapping
$privKey = trim($server->executeCommand("cat /opt/amnezia/amnezia-awg/server_private.key", true));
} }
if (!$privKey) { if (!$privKey || strpos($privKey, 'Error response') !== false) {
die("Fatal: Could not retrieve Server Private Key from keys files.\n"); // If still missing or error message
die("Fatal: Could not retrieve Server Private Key. Check /opt/amnezia/awg/ directory.\n");
} }
$vpnPort = $data['vpn_port'] ?? 51820; $vpnPort = $data['vpn_port'] ?? 51820;