fix: ghost subdir
This commit is contained in:
parent
97e7e473b8
commit
543f983e41
@ -234,7 +234,7 @@ function generateServiceSpecificFqdns(ServiceApplication|Application $resource)
|
|||||||
}
|
}
|
||||||
return $payload;
|
return $payload;
|
||||||
}
|
}
|
||||||
function fqdnLabelsForCaddy(string $network, string $uuid, Collection $domains, bool $is_force_https_enabled = false, $onlyPort = null, ?Collection $serviceLabels = null, ?bool $is_gzip_enabled = true, ?bool $is_stripprefix_enabled = true, ?string $service_name = null)
|
function fqdnLabelsForCaddy(string $network, string $uuid, Collection $domains, bool $is_force_https_enabled = false, $onlyPort = null, ?Collection $serviceLabels = null, ?bool $is_gzip_enabled = true, ?bool $is_stripprefix_enabled = true, ?string $service_name = null, ?string $image = null)
|
||||||
{
|
{
|
||||||
$labels = collect([]);
|
$labels = collect([]);
|
||||||
if ($serviceLabels) {
|
if ($serviceLabels) {
|
||||||
@ -247,7 +247,6 @@ function fqdnLabelsForCaddy(string $network, string $uuid, Collection $domains,
|
|||||||
$url = Url::fromString($domain);
|
$url = Url::fromString($domain);
|
||||||
$host = $url->getHost();
|
$host = $url->getHost();
|
||||||
$path = $url->getPath();
|
$path = $url->getPath();
|
||||||
// $stripped_path = str($path)->replaceEnd('/', '');
|
|
||||||
|
|
||||||
$schema = $url->getScheme();
|
$schema = $url->getScheme();
|
||||||
$port = $url->getPort();
|
$port = $url->getPort();
|
||||||
@ -273,7 +272,7 @@ function fqdnLabelsForCaddy(string $network, string $uuid, Collection $domains,
|
|||||||
}
|
}
|
||||||
return $labels->sort();
|
return $labels->sort();
|
||||||
}
|
}
|
||||||
function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_https_enabled = false, $onlyPort = null, ?Collection $serviceLabels = null, ?bool $is_gzip_enabled = true, ?bool $is_stripprefix_enabled = true, ?string $service_name = null, bool $generate_unique_uuid = false)
|
function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_https_enabled = false, $onlyPort = null, ?Collection $serviceLabels = null, ?bool $is_gzip_enabled = true, ?bool $is_stripprefix_enabled = true, ?string $service_name = null, bool $generate_unique_uuid = false, ?string $image = null)
|
||||||
{
|
{
|
||||||
$labels = collect([]);
|
$labels = collect([]);
|
||||||
$labels->push('traefik.enable=true');
|
$labels->push('traefik.enable=true');
|
||||||
@ -331,7 +330,10 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
$http_label = "http-{$loop}-{$uuid}-{$service_name}";
|
$http_label = "http-{$loop}-{$uuid}-{$service_name}";
|
||||||
$https_label = "https-{$loop}-{$uuid}-{$service_name}";
|
$https_label = "https-{$loop}-{$uuid}-{$service_name}";
|
||||||
}
|
}
|
||||||
|
if (str($image)->contains('ghost')) {
|
||||||
|
$labels->push("traefik.http.middlewares.redir-ghost.redirectregex.regex=^{$path}/(.*)");
|
||||||
|
$labels->push("traefik.http.middlewares.redir-ghost.redirectregex.replacement=/$1");
|
||||||
|
}
|
||||||
if ($schema === 'https') {
|
if ($schema === 'https') {
|
||||||
// Set labels for https
|
// Set labels for https
|
||||||
$labels->push("traefik.http.routers.{$https_label}.rule=Host(`{$host}`) && PathPrefix(`{$path}`)");
|
$labels->push("traefik.http.routers.{$https_label}.rule=Host(`{$host}`) && PathPrefix(`{$path}`)");
|
||||||
@ -341,9 +343,10 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
$labels->push("traefik.http.services.{$https_label}.loadbalancer.server.port=$port");
|
$labels->push("traefik.http.services.{$https_label}.loadbalancer.server.port=$port");
|
||||||
}
|
}
|
||||||
if ($path !== '/') {
|
if ($path !== '/') {
|
||||||
if ($is_stripprefix_enabled) {
|
$middlewares = collect([]);
|
||||||
|
if ($is_stripprefix_enabled && !str($image)->contains('ghost')) {
|
||||||
$labels->push("traefik.http.middlewares.{$https_label}-stripprefix.stripprefix.prefixes={$path}");
|
$labels->push("traefik.http.middlewares.{$https_label}-stripprefix.stripprefix.prefixes={$path}");
|
||||||
$middlewares = collect(["{$https_label}-stripprefix"]);
|
$middlewares->push("{$https_label}-stripprefix");
|
||||||
}
|
}
|
||||||
if ($is_gzip_enabled) {
|
if ($is_gzip_enabled) {
|
||||||
$middlewares->push('gzip');
|
$middlewares->push('gzip');
|
||||||
@ -354,6 +357,9 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
if ($redirect && $redirect_middleware) {
|
if ($redirect && $redirect_middleware) {
|
||||||
$middlewares->push($redirect_middleware);
|
$middlewares->push($redirect_middleware);
|
||||||
}
|
}
|
||||||
|
if (str($image)->contains('ghost')) {
|
||||||
|
$middlewares->push('redir-ghost');
|
||||||
|
}
|
||||||
if ($middlewares->isNotEmpty()) {
|
if ($middlewares->isNotEmpty()) {
|
||||||
$middlewares = $middlewares->join(',');
|
$middlewares = $middlewares->join(',');
|
||||||
$labels->push("traefik.http.routers.{$https_label}.middlewares={$middlewares}");
|
$labels->push("traefik.http.routers.{$https_label}.middlewares={$middlewares}");
|
||||||
@ -369,6 +375,9 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
if ($redirect && $redirect_middleware) {
|
if ($redirect && $redirect_middleware) {
|
||||||
$middlewares->push($redirect_middleware);
|
$middlewares->push($redirect_middleware);
|
||||||
}
|
}
|
||||||
|
if (str($image)->contains('ghost')) {
|
||||||
|
$middlewares->push('redir-ghost');
|
||||||
|
}
|
||||||
if ($middlewares->isNotEmpty()) {
|
if ($middlewares->isNotEmpty()) {
|
||||||
$middlewares = $middlewares->join(',');
|
$middlewares = $middlewares->join(',');
|
||||||
$labels->push("traefik.http.routers.{$https_label}.middlewares={$middlewares}");
|
$labels->push("traefik.http.routers.{$https_label}.middlewares={$middlewares}");
|
||||||
@ -396,9 +405,10 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
$labels->push("traefik.http.routers.{$http_label}.service={$http_label}");
|
$labels->push("traefik.http.routers.{$http_label}.service={$http_label}");
|
||||||
}
|
}
|
||||||
if ($path !== '/') {
|
if ($path !== '/') {
|
||||||
if ($is_stripprefix_enabled) {
|
$middlewares = collect([]);
|
||||||
|
if ($is_stripprefix_enabled && !str($image)->contains('ghost')) {
|
||||||
$labels->push("traefik.http.middlewares.{$http_label}-stripprefix.stripprefix.prefixes={$path}");
|
$labels->push("traefik.http.middlewares.{$http_label}-stripprefix.stripprefix.prefixes={$path}");
|
||||||
$middlewares = collect(["{$http_label}-stripprefix"]);
|
$middlewares->push("{$https_label}-stripprefix");
|
||||||
}
|
}
|
||||||
if ($is_gzip_enabled) {
|
if ($is_gzip_enabled) {
|
||||||
$middlewares->push('gzip');
|
$middlewares->push('gzip');
|
||||||
@ -409,6 +419,9 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
if ($redirect && $redirect_middleware) {
|
if ($redirect && $redirect_middleware) {
|
||||||
$middlewares->push($redirect_middleware);
|
$middlewares->push($redirect_middleware);
|
||||||
}
|
}
|
||||||
|
if (str($image)->contains('ghost')) {
|
||||||
|
$middlewares->push('redir-ghost');
|
||||||
|
}
|
||||||
if ($middlewares->isNotEmpty()) {
|
if ($middlewares->isNotEmpty()) {
|
||||||
$middlewares = $middlewares->join(',');
|
$middlewares = $middlewares->join(',');
|
||||||
$labels->push("traefik.http.routers.{$http_label}.middlewares={$middlewares}");
|
$labels->push("traefik.http.routers.{$http_label}.middlewares={$middlewares}");
|
||||||
@ -424,6 +437,9 @@ function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_
|
|||||||
if ($redirect && $redirect_middleware) {
|
if ($redirect && $redirect_middleware) {
|
||||||
$middlewares->push($redirect_middleware);
|
$middlewares->push($redirect_middleware);
|
||||||
}
|
}
|
||||||
|
if (str($image)->contains('ghost')) {
|
||||||
|
$middlewares->push('redir-ghost');
|
||||||
|
}
|
||||||
if ($middlewares->isNotEmpty()) {
|
if ($middlewares->isNotEmpty()) {
|
||||||
$middlewares = $middlewares->join(',');
|
$middlewares = $middlewares->join(',');
|
||||||
$labels->push("traefik.http.routers.{$http_label}.middlewares={$middlewares}");
|
$labels->push("traefik.http.routers.{$http_label}.middlewares={$middlewares}");
|
||||||
|
@ -1167,7 +1167,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
|
|||||||
serviceLabels: $serviceLabels,
|
serviceLabels: $serviceLabels,
|
||||||
is_gzip_enabled: $savedService->isGzipEnabled(),
|
is_gzip_enabled: $savedService->isGzipEnabled(),
|
||||||
is_stripprefix_enabled: $savedService->isStripprefixEnabled(),
|
is_stripprefix_enabled: $savedService->isStripprefixEnabled(),
|
||||||
service_name: $serviceName
|
service_name: $serviceName,
|
||||||
|
image: data_get($service, 'image')
|
||||||
));
|
));
|
||||||
$serviceLabels = $serviceLabels->merge(fqdnLabelsForCaddy(
|
$serviceLabels = $serviceLabels->merge(fqdnLabelsForCaddy(
|
||||||
network: $resource->destination->network,
|
network: $resource->destination->network,
|
||||||
@ -1177,7 +1178,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
|
|||||||
serviceLabels: $serviceLabels,
|
serviceLabels: $serviceLabels,
|
||||||
is_gzip_enabled: $savedService->isGzipEnabled(),
|
is_gzip_enabled: $savedService->isGzipEnabled(),
|
||||||
is_stripprefix_enabled: $savedService->isStripprefixEnabled(),
|
is_stripprefix_enabled: $savedService->isStripprefixEnabled(),
|
||||||
service_name: $serviceName
|
service_name: $serviceName,
|
||||||
|
image: data_get($service, 'image')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1656,13 +1658,15 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
|
|||||||
uuid: $resource->uuid,
|
uuid: $resource->uuid,
|
||||||
domains: $fqdns,
|
domains: $fqdns,
|
||||||
serviceLabels: $serviceLabels,
|
serviceLabels: $serviceLabels,
|
||||||
generate_unique_uuid: $resource->build_pack === 'dockercompose'
|
generate_unique_uuid: $resource->build_pack === 'dockercompose',
|
||||||
|
image: data_get($service, 'image')
|
||||||
));
|
));
|
||||||
$serviceLabels = $serviceLabels->merge(fqdnLabelsForCaddy(
|
$serviceLabels = $serviceLabels->merge(fqdnLabelsForCaddy(
|
||||||
network: $resource->destination->network,
|
network: $resource->destination->network,
|
||||||
uuid: $resource->uuid,
|
uuid: $resource->uuid,
|
||||||
domains: $fqdns,
|
domains: $fqdns,
|
||||||
serviceLabels: $serviceLabels
|
serviceLabels: $serviceLabels,
|
||||||
|
image: data_get($service, 'image')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user