fix docker ssh issue by downgrading phpseclib

This commit is contained in:
Saeed Vaziry
2025-06-19 21:25:25 +02:00
parent 632a56bf4d
commit 9a3578f3ac
8 changed files with 43 additions and 23 deletions

View File

@ -20,7 +20,8 @@ public function check(Server $server): Server
$server->status = ServerStatus::READY;
$server->save();
}
} catch (Throwable) {
} catch (Throwable $e) {
throw $e;
$server->status = ServerStatus::DISCONNECTED;
$server->save();
Notifier::send($server, new ServerDisconnected($server));

View File

@ -114,8 +114,12 @@ public function import(Request $request): RedirectResponse
}
File::move($extractPath.'/ssh-public.key', storage_path('ssh-public.key'));
File::move($extractPath.'/ssh-private.pem', storage_path('ssh-private.pem'));
File::moveDirectory($extractPath.'/key-pairs', storage_path('app/key-pairs'), true);
File::moveDirectory($extractPath.'/server-logs', storage_path('app/server-logs'), true);
if (File::exists($extractPath.'/key-pairs')) {
move_directory($extractPath.'/key-pairs', storage_path('app/key-pairs'));
}
if (File::exists($extractPath.'/server-logs')) {
move_directory($extractPath.'/server-logs', storage_path('app/server-logs'));
}
return redirect()->route('vito-settings')
->with('success', 'Settings imported successfully.');

View File

@ -277,3 +277,21 @@ function git_path(): ?string
return array_find($paths, fn ($path) => is_executable($path));
}
function move_directory(string $from, string $to): void
{
// Remove any stale destination
if (File::exists($to)) {
File::deleteDirectory($to);
}
// Ensure parent of $to exists
File::ensureDirectoryExists(dirname($to));
// Copy + delete (works across mounts / volumes)
if (! File::copyDirectory($from, $to)) {
throw new RuntimeException("Could not copy [$from] to [$to]");
}
File::deleteDirectory($from);
}