fix: add proxy to network with periodic check

This commit is contained in:
Andras Bacsai
2023-09-22 08:42:27 +02:00
parent e1a1490911
commit ebfc0bd1e1
4 changed files with 33 additions and 18 deletions

View File

@@ -10,7 +10,23 @@ function get_proxy_path()
$proxy_path = "$base_path/proxy";
return $proxy_path;
}
function connectProxyToNetworks(Server $server) {
$networks = collect($server->standaloneDockers)->map(function ($docker) {
return $docker['network'];
})->unique();
if ($networks->count() === 0) {
$networks = collect(['coolify']);
}
$commands = $networks->map(function ($network) {
return [
"echo '####### Connecting coolify-proxy to $network network...'",
"docker network ls --format '{{.Name}}' | grep '^$network$' >/dev/null 2>&1 || docker network create --attachable $network > /dev/null 2>&1",
"docker network connect $network coolify-proxy >/dev/null 2>&1 || true",
];
});
return $commands->flatten();
}
function generate_default_proxy_configuration(Server $server)
{
$proxy_path = get_proxy_path();

View File

@@ -16,7 +16,7 @@ use Illuminate\Support\Str;
use Spatie\Activitylog\Contracts\Activity;
function remote_process(
array $command,
Collection|array $command,
Server $server,
?string $type = null,
?string $type_uuid = null,
@@ -26,6 +26,9 @@ function remote_process(
if (is_null($type)) {
$type = ActivityTypes::INLINE->value;
}
if ($command instanceof Collection) {
$command = $command->toArray();
}
$command_string = implode("\n", $command);
if (auth()->user()) {
$teams = auth()->user()->teams->pluck('id');
@@ -98,8 +101,11 @@ function generateSshCommand(Server $server, string $command, bool $isMux = true)
// ray($ssh_command);
return $ssh_command;
}
function instant_remote_process(array $command, Server $server, $throwError = true)
function instant_remote_process(Collection|array $command, Server $server, $throwError = true)
{
if ($command instanceof Collection) {
$command = $command->toArray();
}
$command_string = implode("\n", $command);
$ssh_command = generateSshCommand($server, $command_string);
$process = Process::run($ssh_command);