feat(services): add architecture warning (#8390)
This commit is contained in:
commit
b20729d47f
9 changed files with 87 additions and 15 deletions
|
|
@ -88,6 +88,14 @@ private function processFile(string $file): false|array
|
|||
$payload['envs'] = base64_encode($envFileContent);
|
||||
}
|
||||
|
||||
if (str($data->get('amd_only'))->toBoolean()) {
|
||||
$payload['amd_only'] = true;
|
||||
}
|
||||
|
||||
if (str($data->get('arm_only'))->toBoolean()) {
|
||||
$payload['arm_only'] = true;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
|
|
@ -160,6 +168,14 @@ private function processFileWithFqdn(string $file): false|array
|
|||
$payload['envs'] = base64_encode($modifiedEnvContent);
|
||||
}
|
||||
|
||||
if (str($data->get('amd_only'))->toBoolean()) {
|
||||
$payload['amd_only'] = true;
|
||||
}
|
||||
|
||||
if (str($data->get('arm_only'))->toBoolean()) {
|
||||
$payload['arm_only'] = true;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
|
|
@ -229,6 +245,14 @@ private function processFileWithFqdnRaw(string $file): false|array
|
|||
$payload['envs'] = $modifiedEnvContent;
|
||||
}
|
||||
|
||||
if (str($data->get('amd_only'))->toBoolean()) {
|
||||
$payload['amd_only'] = true;
|
||||
}
|
||||
|
||||
if (str($data->get('arm_only'))->toBoolean()) {
|
||||
$payload['arm_only'] = true;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1496,7 +1496,10 @@ public function getServicesProperty()
|
|||
'category' => 'Services',
|
||||
'resourceType' => 'service',
|
||||
'logo' => data_get($service, 'logo'),
|
||||
]);
|
||||
] + array_filter([
|
||||
'amd_only' => data_get($service, 'amd_only') ? true : null,
|
||||
'arm_only' => data_get($service, 'arm_only') ? true : null,
|
||||
]));
|
||||
}
|
||||
|
||||
$cachedServices = $items->toArray();
|
||||
|
|
|
|||
12
openapi.json
12
openapi.json
|
|
@ -361,7 +361,7 @@
|
|||
},
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
@ -811,7 +811,7 @@
|
|||
},
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
@ -1261,7 +1261,7 @@
|
|||
},
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
@ -2692,7 +2692,7 @@
|
|||
},
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
@ -10811,7 +10811,7 @@
|
|||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
@ -11142,7 +11142,7 @@
|
|||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
|
||||
"description": "Comma-separated list of URLs (e.g. \"https:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
|
|
|||
12
openapi.yaml
12
openapi.yaml
|
|
@ -258,7 +258,7 @@ paths:
|
|||
docker_compose_domains:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a dockercompose application.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
watch_paths:
|
||||
type: string
|
||||
description: 'The watch paths.'
|
||||
|
|
@ -546,7 +546,7 @@ paths:
|
|||
docker_compose_domains:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a dockercompose application.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
watch_paths:
|
||||
type: string
|
||||
description: 'The watch paths.'
|
||||
|
|
@ -834,7 +834,7 @@ paths:
|
|||
docker_compose_domains:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a dockercompose application.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
watch_paths:
|
||||
type: string
|
||||
description: 'The watch paths.'
|
||||
|
|
@ -1735,7 +1735,7 @@ paths:
|
|||
docker_compose_domains:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a dockercompose application.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, domain: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")' } }, type: object }
|
||||
watch_paths:
|
||||
type: string
|
||||
description: 'The watch paths.'
|
||||
|
|
@ -6886,7 +6886,7 @@ paths:
|
|||
urls:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a service.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, url: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io").' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, url: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io").' } }, type: object }
|
||||
force_domain_override:
|
||||
type: boolean
|
||||
default: false
|
||||
|
|
@ -7075,7 +7075,7 @@ paths:
|
|||
urls:
|
||||
type: array
|
||||
description: 'Array of URLs to be applied to containers of a service.'
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, url: { type: string, description: 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io").' } }, type: object }
|
||||
items: { properties: { name: { type: string, description: 'The service name as defined in docker-compose.' }, url: { type: string, description: 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io").' } }, type: object }
|
||||
force_domain_override:
|
||||
type: boolean
|
||||
default: false
|
||||
|
|
|
|||
|
|
@ -835,6 +835,20 @@ class="h-5 w-5 text-warning-600 dark:text-warning-400"
|
|||
<div class="font-medium text-neutral-900 dark:text-white truncate"
|
||||
x-text="item.name">
|
||||
</div>
|
||||
<template x-if="item.amd_only">
|
||||
<span
|
||||
class="px-2 py-0.5 text-xs rounded-full bg-amber-100 text-amber-800 dark:bg-amber-900/50 dark:text-amber-200 shrink-0"
|
||||
title="This service only supports AMD64/x86_64 architecture">
|
||||
AMD only
|
||||
</span>
|
||||
</template>
|
||||
<template x-if="item.arm_only">
|
||||
<span
|
||||
class="px-2 py-0.5 text-xs rounded-full bg-amber-100 text-amber-800 dark:bg-amber-900/50 dark:text-amber-200 shrink-0"
|
||||
title="This service only supports ARM64/aarch64 architecture">
|
||||
ARM only
|
||||
</span>
|
||||
</template>
|
||||
<span
|
||||
class="text-xs text-neutral-500 dark:text-neutral-400 shrink-0"
|
||||
x-text="item.quickcommand"
|
||||
|
|
|
|||
|
|
@ -173,6 +173,34 @@ class="w-full h-full p-2 transition-all duration-200 dark:bg-white/10 bg-black/1
|
|||
</template>
|
||||
</x-slot:logo>
|
||||
</x-resource-view>
|
||||
<template x-if="service.amd_only">
|
||||
<div class="absolute top-2 right-10 group">
|
||||
<span
|
||||
class="px-2 py-0.5 text-xs rounded bg-amber-100 text-amber-800 dark:bg-amber-900/50 dark:text-amber-200 cursor-pointer">
|
||||
AMD only
|
||||
</span>
|
||||
<div class="info-helper-popup right-0 w-sm">
|
||||
<div class="p-4">
|
||||
This service only supports AMD64/x86_64 architecture. It will not work
|
||||
on ARM-based servers (e.g., Apple Silicon, Raspberry Pi, AWS Graviton).
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template x-if="service.arm_only">
|
||||
<div class="absolute top-2 right-10 group">
|
||||
<span
|
||||
class="px-2 py-0.5 text-xs rounded-full bg-amber-100 text-amber-800 dark:bg-amber-900/50 dark:text-amber-200 cursor-pointer">
|
||||
ARM only
|
||||
</span>
|
||||
<div class="info-helper-popup right-0 w-sm">
|
||||
<div class="p-4">
|
||||
This service only supports ARM64/aarch64 architecture. It will not work
|
||||
on AMD64/x86_64-based servers.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template x-if="shouldShowDocIcon(service)">
|
||||
<a :href="getDocLink(service) || coolifyDocsUrl(service.name)" target="_blank"
|
||||
@click.stop @mouseenter="resolveDocLink(service)"
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
# tags: calcom,calendso,scheduling,open,source
|
||||
# logo: svgs/calcom.svg
|
||||
# port: 3000
|
||||
# amd_only: true
|
||||
|
||||
services:
|
||||
calcom:
|
||||
|
|
|
|||
|
|
@ -408,7 +408,8 @@
|
|||
"category": "productivity",
|
||||
"logo": "svgs/calcom.svg",
|
||||
"minversion": "0.0.0",
|
||||
"port": "3000"
|
||||
"port": "3000",
|
||||
"amd_only": true
|
||||
},
|
||||
"calibre-web-automated-book-downloader": {
|
||||
"documentation": "https://github.com/calibrain/calibre-web-automated-book-downloader?utm_source=coolify.io",
|
||||
|
|
|
|||
|
|
@ -408,7 +408,8 @@
|
|||
"category": "productivity",
|
||||
"logo": "svgs/calcom.svg",
|
||||
"minversion": "0.0.0",
|
||||
"port": "3000"
|
||||
"port": "3000",
|
||||
"amd_only": true
|
||||
},
|
||||
"calibre-web-automated-book-downloader": {
|
||||
"documentation": "https://github.com/calibrain/calibre-web-automated-book-downloader?utm_source=coolify.io",
|
||||
|
|
|
|||
Loading…
Reference in a new issue