wip: swarm
This commit is contained in:
@@ -13,9 +13,7 @@ class StartProxy
|
|||||||
public function handle(Server $server, bool $async = true): string|Activity
|
public function handle(Server $server, bool $async = true): string|Activity
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
if ($server->isSwarm()) {
|
|
||||||
throw new \Exception("Server is part of swarm, not implemented yet.");
|
|
||||||
}
|
|
||||||
$proxyType = $server->proxyType();
|
$proxyType = $server->proxyType();
|
||||||
$commands = collect([]);
|
$commands = collect([]);
|
||||||
$proxy_path = get_proxy_path();
|
$proxy_path = get_proxy_path();
|
||||||
@@ -27,18 +25,29 @@ class StartProxy
|
|||||||
$docker_compose_yml_base64 = base64_encode($configuration);
|
$docker_compose_yml_base64 = base64_encode($configuration);
|
||||||
$server->proxy->last_applied_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
|
$server->proxy->last_applied_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
|
||||||
$server->save();
|
$server->save();
|
||||||
$commands = $commands->merge([
|
if ($server->isSwarm()) {
|
||||||
"mkdir -p $proxy_path && cd $proxy_path",
|
$commands = $commands->merge([
|
||||||
"echo 'Creating required Docker Compose file.'",
|
"mkdir -p $proxy_path && cd $proxy_path",
|
||||||
"echo 'Pulling docker image.'",
|
"echo 'Creating required Docker Compose file.'",
|
||||||
'docker compose pull',
|
"echo 'Starting coolify-proxy.'",
|
||||||
"echo 'Stopping existing coolify-proxy.'",
|
// "docker stack deploy -c docker-compose.yaml coolify-proxy",
|
||||||
"docker compose down -v --remove-orphans > /dev/null 2>&1",
|
"echo 'Proxy started successfully.'"
|
||||||
"echo 'Starting coolify-proxy.'",
|
]);
|
||||||
'docker compose up -d --remove-orphans',
|
} else {
|
||||||
"echo 'Proxy started successfully.'"
|
$commands = $commands->merge([
|
||||||
]);
|
"mkdir -p $proxy_path && cd $proxy_path",
|
||||||
$commands = $commands->merge(connectProxyToNetworks($server));
|
"echo 'Creating required Docker Compose file.'",
|
||||||
|
"echo 'Pulling docker image.'",
|
||||||
|
'docker compose pull',
|
||||||
|
"echo 'Stopping existing coolify-proxy.'",
|
||||||
|
"docker compose down -v --remove-orphans > /dev/null 2>&1",
|
||||||
|
"echo 'Starting coolify-proxy.'",
|
||||||
|
'docker compose up -d --remove-orphans',
|
||||||
|
"echo 'Proxy started successfully.'"
|
||||||
|
]);
|
||||||
|
$commands = $commands->merge(connectProxyToNetworks($server));
|
||||||
|
}
|
||||||
|
|
||||||
if ($async) {
|
if ($async) {
|
||||||
$activity = remote_process($commands, $server);
|
$activity = remote_process($commands, $server);
|
||||||
return $activity;
|
return $activity;
|
||||||
|
@@ -102,7 +102,6 @@ function generate_default_proxy_configuration(Server $server)
|
|||||||
"--entrypoints.https.address=:443",
|
"--entrypoints.https.address=:443",
|
||||||
"--entrypoints.http.http.encodequerysemicolons=true",
|
"--entrypoints.http.http.encodequerysemicolons=true",
|
||||||
"--entrypoints.https.http.encodequerysemicolons=true",
|
"--entrypoints.https.http.encodequerysemicolons=true",
|
||||||
"--providers.docker=true",
|
|
||||||
"--providers.docker.exposedbydefault=false",
|
"--providers.docker.exposedbydefault=false",
|
||||||
"--providers.file.directory=/traefik/dynamic/",
|
"--providers.file.directory=/traefik/dynamic/",
|
||||||
"--providers.file.watch=true",
|
"--providers.file.watch=true",
|
||||||
@@ -128,6 +127,18 @@ function generate_default_proxy_configuration(Server $server)
|
|||||||
$config['services']['traefik']['command'][] = "--accesslog.filepath=/traefik/access.log";
|
$config['services']['traefik']['command'][] = "--accesslog.filepath=/traefik/access.log";
|
||||||
$config['services']['traefik']['command'][] = "--accesslog.bufferingsize=100";
|
$config['services']['traefik']['command'][] = "--accesslog.bufferingsize=100";
|
||||||
}
|
}
|
||||||
|
if ($server->isSwarm()) {
|
||||||
|
$config['services']['traefik']['command'][] = "--providers.docker.swarmMode=true";
|
||||||
|
$config['services']['traefik']['deploy'] = [
|
||||||
|
"placement" => [
|
||||||
|
"constraints" => [
|
||||||
|
"node.role==manager",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$config['services']['traefik']['command'][] = "--providers.docker=true";
|
||||||
|
}
|
||||||
$config = Yaml::dump($config, 4, 2);
|
$config = Yaml::dump($config, 4, 2);
|
||||||
SaveConfiguration::run($server, $config);
|
SaveConfiguration::run($server, $config);
|
||||||
return $config;
|
return $config;
|
||||||
|
Reference in New Issue
Block a user