Merge remote-tracking branch 'upstream/next' into feature/glitchtip-service
# Conflicts: # README.md # apps/api/src/routes/api/v1/services/handlers.ts # apps/ui/src/lib/components/svg/services/index.ts
This commit is contained in:
		@@ -131,8 +131,8 @@ export const supportedServiceTypesAndVersions = [
 | 
			
		||||
		fancyName: 'Hasura',
 | 
			
		||||
		baseImage: 'hasura/graphql-engine',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['latest', 'v2.5.1'],
 | 
			
		||||
		recommendedVersion: 'v2.5.1',
 | 
			
		||||
		versions: ['latest', 'v2.10.0', 'v2.5.1'],
 | 
			
		||||
		recommendedVersion: 'v2.10.0',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
@@ -240,7 +240,7 @@ export const staticDeployments = [
 | 
			
		||||
	'astro',
 | 
			
		||||
	'eleventy'
 | 
			
		||||
];
 | 
			
		||||
export const notNodeDeployments = ['php', 'docker', 'rust', 'python', 'deno', 'laravel'];
 | 
			
		||||
export const notNodeDeployments = ['php', 'docker', 'rust', 'python', 'deno', 'laravel', 'heroku'];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export function generateRemoteEngine(destination: any) {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,16 +5,17 @@
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div
 | 
			
		||||
	on:click={() => dispatch('click')}
 | 
			
		||||
	on:mouseover={() => dispatch('pause')}
 | 
			
		||||
	on:focus={() => dispatch('pause')}
 | 
			
		||||
	on:mouseout={() => dispatch('resume')}
 | 
			
		||||
	on:blur={() => dispatch('resume')}
 | 
			
		||||
	class="alert shadow-lg text-white rounded"
 | 
			
		||||
	class="alert shadow-lg text-white rounded hover:scale-105 transition-all duration-100 cursor-pointer"
 | 
			
		||||
	class:bg-coollabs={type === 'success'}
 | 
			
		||||
	class:alert-error={type === 'error'}
 | 
			
		||||
	class:alert-info={type === 'info'}
 | 
			
		||||
>
 | 
			
		||||
	<!-- {#if type === 'success'}
 | 
			
		||||
	{#if type === 'success'}
 | 
			
		||||
		<svg
 | 
			
		||||
			xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
			class="stroke-current flex-shrink-0 h-6 w-6"
 | 
			
		||||
@@ -53,6 +54,6 @@
 | 
			
		||||
				d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
 | 
			
		||||
			/></svg
 | 
			
		||||
		>
 | 
			
		||||
	{/if} -->
 | 
			
		||||
	{/if}
 | 
			
		||||
	<slot />
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
	import { fade } from 'svelte/transition';
 | 
			
		||||
	import Toast from './Toast.svelte';
 | 
			
		||||
 | 
			
		||||
	import { pauseToast, resumeToast, toasts } from '$lib/store';
 | 
			
		||||
	import { dismissToast, pauseToast, resumeToast, toasts } from '$lib/store';
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{#if $toasts}
 | 
			
		||||
@@ -12,7 +12,8 @@
 | 
			
		||||
				<Toast
 | 
			
		||||
					type={toast.type}
 | 
			
		||||
					on:resume={() => resumeToast(toast.id)}
 | 
			
		||||
					on:pause={() => pauseToast(toast.id)}>{@html toast.message}</Toast
 | 
			
		||||
					on:pause={() => pauseToast(toast.id)}
 | 
			
		||||
					on:click={() => dismissToast(toast.id)}>{@html toast.message}</Toast
 | 
			
		||||
				>
 | 
			
		||||
			{/each}
 | 
			
		||||
		</article>
 | 
			
		||||
 
 | 
			
		||||
@@ -38,4 +38,6 @@
 | 
			
		||||
	<Icons.Deno {isAbsolute} />
 | 
			
		||||
{:else if application.buildPack?.toLowerCase() === 'laravel'}
 | 
			
		||||
	<Icons.Laravel {isAbsolute} />
 | 
			
		||||
{:else if application.buildPack?.toLowerCase() === 'heroku'}
 | 
			
		||||
	<Icons.Heroku {isAbsolute} />
 | 
			
		||||
{/if}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								apps/ui/src/lib/components/svg/applications/Heroku.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps/ui/src/lib/components/svg/applications/Heroku.svelte
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
	export let isAbsolute = true;
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<svg
 | 
			
		||||
	xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
	class={isAbsolute ? 'absolute top-0 left-0 -m-4 h-10 w-10' : 'mx-auto w-8 h-8 '}
 | 
			
		||||
	viewBox="0 0 72 80"
 | 
			
		||||
>
 | 
			
		||||
	<path
 | 
			
		||||
		xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
		fill="#430098"
 | 
			
		||||
		d="M64.8,0 L7.2,0 C3.224,0 0,3.224 0,7.2 L0,72.8 C0,76.776 3.224,80 7.2,80 L64.8,80 C68.776,80 72,76.776 72,72.8 L72,7.2 C72,3.224 68.776,0 64.8,0 Z M18,68 L18,52 L27,60 L18,68 Z M46,68 L46,44.11 C45.961,42.243 45.062,40 41,40 C32.866,40 23.742,44.091 23.651,44.132 L18,46.692 L18,12 L26,12 L26,34.711 C29.994,33.411 35.577,32 41,32 C45.945,32 48.905,33.944 50.517,35.575 C53.958,39.055 54.005,43.488 54.0002258,44 L54.0002258,68 L46,68 Z M48,25 L40,25 C43.144,20.875 45.118,16.534 46,12 L54,12 C53.46,16.544 51.618,20.9 48,25 Z"
 | 
			
		||||
	/>
 | 
			
		||||
</svg>
 | 
			
		||||
@@ -16,4 +16,4 @@ export { default as Astro } from './Astro.svelte';
 | 
			
		||||
export { default as Eleventy } from './Eleventy.svelte';
 | 
			
		||||
export { default as Deno } from './Deno.svelte';
 | 
			
		||||
export { default as Laravel } from './Laravel.svelte';
 | 
			
		||||
 | 
			
		||||
export { default as Heroku } from './Heroku.svelte';
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								apps/ui/src/lib/components/svg/services/Appwrite.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								apps/ui/src/lib/components/svg/services/Appwrite.svelte
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -32,6 +32,8 @@
 | 
			
		||||
	<Icons.Hasura {isAbsolute} />
 | 
			
		||||
{:else if type === 'fider'}
 | 
			
		||||
	<Icons.Fider {isAbsolute} />
 | 
			
		||||
{:else if type === 'appwrite'}
 | 
			
		||||
	<Icons.Appwrite {isAbsolute} />
 | 
			
		||||
{:else if type === 'moodle'}
 | 
			
		||||
	<Icons.Moodle {isAbsolute} />
 | 
			
		||||
{:else if type === 'glitchTip'}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,18 @@
 | 
			
		||||
//@ts-nocheck
 | 
			
		||||
export { default as PlausibleAnalytics } from './PlausibleAnalytics.svelte';
 | 
			
		||||
export { default as NocoDb }  from './NocoDB.svelte';
 | 
			
		||||
export { default as MinIo }  from './MinIO.svelte';
 | 
			
		||||
export { default as VsCodeServer }  from './VSCodeServer.svelte';
 | 
			
		||||
export { default as Wordpress }  from './Wordpress.svelte';
 | 
			
		||||
export { default as VaultWarden }  from './VaultWarden.svelte';
 | 
			
		||||
export { default as LanguageTool }  from './LanguageTool.svelte';
 | 
			
		||||
export { default as N8n }  from './N8n.svelte';
 | 
			
		||||
export { default as UptimeKuma }  from './UptimeKuma.svelte';
 | 
			
		||||
export { default as Ghost }  from './Ghost.svelte';
 | 
			
		||||
export { default as MeiliSearch }  from './MeiliSearch.svelte';
 | 
			
		||||
export { default as Umami }  from './Umami.svelte';
 | 
			
		||||
export { default as Hasura }  from './Hasura.svelte';
 | 
			
		||||
export { default as Fider }  from './Fider.svelte';
 | 
			
		||||
export { default as Appwrite }  from './Moodle.svelte';
 | 
			
		||||
export { default as Moodle }  from './Moodle.svelte';
 | 
			
		||||
export { default as NocoDb } from './NocoDB.svelte';
 | 
			
		||||
export { default as MinIo } from './MinIO.svelte';
 | 
			
		||||
export { default as VsCodeServer } from './VSCodeServer.svelte';
 | 
			
		||||
export { default as Wordpress } from './Wordpress.svelte';
 | 
			
		||||
export { default as VaultWarden } from './VaultWarden.svelte';
 | 
			
		||||
export { default as LanguageTool } from './LanguageTool.svelte';
 | 
			
		||||
export { default as N8n } from './N8n.svelte';
 | 
			
		||||
export { default as UptimeKuma } from './UptimeKuma.svelte';
 | 
			
		||||
export { default as Ghost } from './Ghost.svelte';
 | 
			
		||||
export { default as MeiliSearch } from './MeiliSearch.svelte';
 | 
			
		||||
export { default as Umami } from './Umami.svelte';
 | 
			
		||||
export { default as Hasura } from './Hasura.svelte';
 | 
			
		||||
export { default as Fider } from './Fider.svelte';
 | 
			
		||||
export { default as Appwrite } from './Appwrite.svelte';
 | 
			
		||||
export { default as Moodle } from './Moodle.svelte';
 | 
			
		||||
export { default as GlitchTip }  from './GlitchTip.svelte';
 | 
			
		||||
 
 | 
			
		||||
@@ -144,8 +144,8 @@
 | 
			
		||||
		},
 | 
			
		||||
		"preview": {
 | 
			
		||||
			"need_during_buildtime": "Need during buildtime?",
 | 
			
		||||
			"setup_secret_app_first": "You can add secrets to PR/MR deployments. Please add secrets to the application first. <br>Useful for creating <span class='text-applications font-bold'>staging</span> environments.",
 | 
			
		||||
			"values_overwriting_app_secrets": "These values overwrite application secrets in PR/MR deployments. Useful for creating <span class='text-applications font-bold'>staging</span> environments.",
 | 
			
		||||
			"setup_secret_app_first": "You can add secrets to PR/MR deployments. Please add secrets to the application first. <br>Useful for creating <span class='text-green-500 font-bold'>staging</span> environments.",
 | 
			
		||||
			"values_overwriting_app_secrets": "These values overwrite application secrets in PR/MR deployments. Useful for creating <span class='text-green-500 font-bold'>staging</span> environments.",
 | 
			
		||||
			"redeploy": "Redeploy",
 | 
			
		||||
			"no_previews_available": "No previews available"
 | 
			
		||||
		},
 | 
			
		||||
@@ -194,14 +194,14 @@
 | 
			
		||||
		"application": "Application",
 | 
			
		||||
		"url_fqdn": "URL (FQDN)",
 | 
			
		||||
		"domain_fqdn": "Domain (FQDN)",
 | 
			
		||||
		"https_explainer": "If you specify <span class='text-applications font-bold'>https</span>, the application will be accessible only over https. SSL certificate will be generated for you.<br>If you specify <span class='text-applications font-bold'>www</span>, the application will be redirected (302) from non-www and vice versa.<br><br>To modify the domain, you must first stop the application.<br><br><span class='text-white font-bold'>You must set your DNS to point to the server IP in advance.</span>",
 | 
			
		||||
		"https_explainer": "If you specify <span class='text-green-500 font-bold'>https</span>, the application will be accessible only over https. SSL certificate will be generated for you.<br>If you specify <span class='text-green-500 font-bold'>www</span>, the application will be redirected (302) from non-www and vice versa.<br><br>To modify the domain, you must first stop the application.<br><br><span class='text-white font-bold'>You must set your DNS to point to the server IP in advance.</span>",
 | 
			
		||||
		"ssl_www_and_non_www": "Generate SSL for www and non-www?",
 | 
			
		||||
		"ssl_explainer": "It will generate certificates for both www and non-www. <br>You need to have <span class='font-bold text-applications'>both DNS entries</span> set in advance.<br><br>Useful if you expect to have visitors on both.",
 | 
			
		||||
		"ssl_explainer": "It will generate certificates for both www and non-www. <br>You need to have <span class='font-bold text-green-500'>both DNS entries</span> set in advance.<br><br>Useful if you expect to have visitors on both.",
 | 
			
		||||
		"install_command": "Install Command",
 | 
			
		||||
		"build_command": "Build Command",
 | 
			
		||||
		"start_command": "Start Command",
 | 
			
		||||
		"directory_to_use_explainer": "Directory to use as the base for all commands.<br>Could be useful with <span class='text-applications font-bold'>monorepos</span>.",
 | 
			
		||||
		"publish_directory_explainer": "Directory containing all the assets for deployment. <br> For example: <span class='text-applications font-bold'>dist</span>,<span class='text-applications font-bold'>_site</span> or <span class='text-applications font-bold'>public</span>.",
 | 
			
		||||
		"directory_to_use_explainer": "Directory to use as the base for all commands.<br>Could be useful with <span class='text-green-500 font-bold'>monorepos</span>.",
 | 
			
		||||
		"publish_directory_explainer": "Directory containing all the assets for deployment. <br> For example: <span class='text-green-500 font-bold'>dist</span>,<span class='text-green-500 font-bold'>_site</span> or <span class='text-green-500 font-bold'>public</span>.",
 | 
			
		||||
		"features": "Features",
 | 
			
		||||
		"enable_automatic_deployment": "Enable Automatic Deployment",
 | 
			
		||||
		"enable_auto_deploy_webhooks": "Enable automatic deployment through webhooks.",
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
		"features": "Caractéristiques",
 | 
			
		||||
		"git_repository": "Dépôt Git",
 | 
			
		||||
		"git_source": "Source Git",
 | 
			
		||||
		"https_explainer": "Si vous spécifiez <span class='text-applications font-bold'>https</span>, l'application sera accessible uniquement via https. \nUn certificat SSL sera généré pour vous.<br>Si vous spécifiez <span class='text-applications font-bold'>www</span>, l'application sera redirigée (302) à partir de non-www et vice versa \n.<br><br>Pour modifier le domaine, vous devez d'abord arrêter l'application.<br><br><span class='text-white font-bold'>Vous devez configurer, en avance, votre DNS pour pointer vers l'IP du serveur.</span>",
 | 
			
		||||
		"https_explainer": "Si vous spécifiez <span class='text-green-500 font-bold'>https</span>, l'application sera accessible uniquement via https. \nUn certificat SSL sera généré pour vous.<br>Si vous spécifiez <span class='text-green-500 font-bold'>www</span>, l'application sera redirigée (302) à partir de non-www et vice versa \n.<br><br>Pour modifier le domaine, vous devez d'abord arrêter l'application.<br><br><span class='text-white font-bold'>Vous devez configurer, en avance, votre DNS pour pointer vers l'IP du serveur.</span>",
 | 
			
		||||
		"install_command": "Commande d'installation",
 | 
			
		||||
		"logs": "Journaux des applications",
 | 
			
		||||
		"no_applications_found": "Aucune application trouvée",
 | 
			
		||||
@@ -78,11 +78,11 @@
 | 
			
		||||
			"need_during_buildtime": "Besoin pendant la build ?",
 | 
			
		||||
			"no_previews_available": "Aucun aperçu disponible",
 | 
			
		||||
			"redeploy": "Redéployer",
 | 
			
		||||
			"setup_secret_app_first": "Vous pouvez ajouter des secrets aux déploiements PR/MR. \nVeuillez d'abord ajouter des secrets à l'application. \n<br>Utile pour créer des environnements <span class='text-applications font-bold'>de mise en scène</span>.",
 | 
			
		||||
			"values_overwriting_app_secrets": "Ces valeurs remplacent les secrets d'application dans les déploiements PR/MR. \nUtile pour créer des environnements <span class='text-applications font-bold'>de mise en scène</span>."
 | 
			
		||||
			"setup_secret_app_first": "Vous pouvez ajouter des secrets aux déploiements PR/MR. \nVeuillez d'abord ajouter des secrets à l'application. \n<br>Utile pour créer des environnements <span class='text-green-500 font-bold'>de mise en scène</span>.",
 | 
			
		||||
			"values_overwriting_app_secrets": "Ces valeurs remplacent les secrets d'application dans les déploiements PR/MR. \nUtile pour créer des environnements <span class='text-green-500 font-bold'>de mise en scène</span>."
 | 
			
		||||
		},
 | 
			
		||||
		"previews": "Aperçus",
 | 
			
		||||
		"publish_directory_explainer": "Répertoire contenant tous les actifs à déployer. \n<br> Par exemple : <span class='text-applications font-bold'>dist</span>,<span class='text-applications font-bold'>_site</span> ou <span \nclass='text-applications font-bold'>public</span>.",
 | 
			
		||||
		"publish_directory_explainer": "Répertoire contenant tous les actifs à déployer. \n<br> Par exemple : <span class='text-green-500 font-bold'>dist</span>,<span class='text-green-500 font-bold'>_site</span> ou <span \nclass='text-green-500 font-bold'>public</span>.",
 | 
			
		||||
		"rebuild_application": "Re-build l'application",
 | 
			
		||||
		"secret": "secrets",
 | 
			
		||||
		"secrets": {
 | 
			
		||||
@@ -91,7 +91,7 @@
 | 
			
		||||
			"use_isbuildsecret": "Utiliser isBuildSecret"
 | 
			
		||||
		},
 | 
			
		||||
		"settings_saved": "Paramètres sauvegardés.",
 | 
			
		||||
		"ssl_explainer": "Il générera des certificats pour www et non-www. \n<br>Vous devez avoir <span class='font-bold text-applications'>les deux entrées DNS</span> définies à l'avance.<br><br>Utile si vous prévoyez d'avoir des visiteurs sur les deux.",
 | 
			
		||||
		"ssl_explainer": "Il générera des certificats pour www et non-www. \n<br>Vous devez avoir <span class='font-bold text-green-500'>les deux entrées DNS</span> définies à l'avance.<br><br>Utile si vous prévoyez d'avoir des visiteurs sur les deux.",
 | 
			
		||||
		"ssl_www_and_non_www": "Générer SSL pour www et non-www ?",
 | 
			
		||||
		"start_command": "Démarrer la commande",
 | 
			
		||||
		"stop_application": "Arrêter l'application",
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,10 @@ export const features = readable({
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export const location: Writable<null | string> = writable(null)
 | 
			
		||||
export const setLocation = (resource: any) => {
 | 
			
		||||
export const setLocation = (resource: any, settings?: any) => {
 | 
			
		||||
    if (resource.settings.isBot) {
 | 
			
		||||
        return location.set(`http://${settings.ipv4}:${resource.exposePort}`)
 | 
			
		||||
    }
 | 
			
		||||
    if (GITPOD_WORKSPACE_URL && resource.exposePort) {
 | 
			
		||||
        const { href } = new URL(GITPOD_WORKSPACE_URL);
 | 
			
		||||
        const newURL = href
 | 
			
		||||
 
 | 
			
		||||
@@ -170,6 +170,16 @@ export function findBuildPack(pack: string, packageManager = 'npm') {
 | 
			
		||||
			port: 80
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
	if (pack === 'heroku') {
 | 
			
		||||
		return {
 | 
			
		||||
			...metaData,
 | 
			
		||||
			installCommand: null,
 | 
			
		||||
			buildCommand: null,
 | 
			
		||||
			startCommand: null,
 | 
			
		||||
			publishDirectory: null,
 | 
			
		||||
			port: 5000
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
	return {
 | 
			
		||||
		name: 'node',
 | 
			
		||||
		fancyName: 'Node.js',
 | 
			
		||||
@@ -187,118 +197,137 @@ export const buildPacks = [
 | 
			
		||||
		name: 'node',
 | 
			
		||||
		fancyName: 'Node.js',
 | 
			
		||||
		hoverColor: 'hover:bg-green-700',
 | 
			
		||||
		color: 'bg-green-700'
 | 
			
		||||
		color: 'bg-green-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'static',
 | 
			
		||||
		fancyName: 'Static',
 | 
			
		||||
		hoverColor: 'hover:bg-orange-700',
 | 
			
		||||
		color: 'bg-orange-700'
 | 
			
		||||
		color: 'bg-orange-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{
 | 
			
		||||
		name: 'php',
 | 
			
		||||
		fancyName: 'PHP',
 | 
			
		||||
		hoverColor: 'hover:bg-indigo-700',
 | 
			
		||||
		color: 'bg-indigo-700'
 | 
			
		||||
		color: 'bg-indigo-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'laravel',
 | 
			
		||||
		fancyName: 'Laravel',
 | 
			
		||||
		hoverColor: 'hover:bg-indigo-700',
 | 
			
		||||
		color: 'bg-indigo-700'
 | 
			
		||||
		color: 'bg-indigo-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'docker',
 | 
			
		||||
		fancyName: 'Docker',
 | 
			
		||||
		hoverColor: 'hover:bg-sky-700',
 | 
			
		||||
		color: 'bg-sky-700'
 | 
			
		||||
		color: 'bg-sky-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'svelte',
 | 
			
		||||
		fancyName: 'Svelte',
 | 
			
		||||
		hoverColor: 'hover:bg-orange-700',
 | 
			
		||||
		color: 'bg-orange-700'
 | 
			
		||||
		color: 'bg-orange-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'vuejs',
 | 
			
		||||
		fancyName: 'VueJS',
 | 
			
		||||
		hoverColor: 'hover:bg-green-700',
 | 
			
		||||
		color: 'bg-green-700'
 | 
			
		||||
		color: 'bg-green-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'nuxtjs',
 | 
			
		||||
		fancyName: 'NuxtJS',
 | 
			
		||||
		hoverColor: 'hover:bg-green-700',
 | 
			
		||||
		color: 'bg-green-700'
 | 
			
		||||
		color: 'bg-green-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'gatsby',
 | 
			
		||||
		fancyName: 'Gatsby',
 | 
			
		||||
		hoverColor: 'hover:bg-blue-700',
 | 
			
		||||
		color: 'bg-blue-700'
 | 
			
		||||
		color: 'bg-blue-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'astro',
 | 
			
		||||
		fancyName: 'Astro',
 | 
			
		||||
		hoverColor: 'hover:bg-pink-700',
 | 
			
		||||
		color: 'bg-pink-700'
 | 
			
		||||
		color: 'bg-pink-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'eleventy',
 | 
			
		||||
		fancyName: 'Eleventy',
 | 
			
		||||
		hoverColor: 'hover:bg-red-700',
 | 
			
		||||
		color: 'bg-red-700'
 | 
			
		||||
		color: 'bg-red-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{
 | 
			
		||||
		name: 'react',
 | 
			
		||||
		fancyName: 'React',
 | 
			
		||||
		hoverColor: 'hover:bg-blue-700',
 | 
			
		||||
		color: 'bg-blue-700'
 | 
			
		||||
		color: 'bg-blue-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'preact',
 | 
			
		||||
		fancyName: 'Preact',
 | 
			
		||||
		hoverColor: 'hover:bg-blue-700',
 | 
			
		||||
		color: 'bg-blue-700'
 | 
			
		||||
		color: 'bg-blue-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'nextjs',
 | 
			
		||||
		fancyName: 'NextJS',
 | 
			
		||||
		hoverColor: 'hover:bg-blue-700',
 | 
			
		||||
		color: 'bg-blue-700'
 | 
			
		||||
		color: 'bg-blue-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'nestjs',
 | 
			
		||||
		fancyName: 'NestJS',
 | 
			
		||||
		hoverColor: 'hover:bg-red-700',
 | 
			
		||||
		color: 'bg-red-700'
 | 
			
		||||
		color: 'bg-red-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'rust',
 | 
			
		||||
		fancyName: 'Rust',
 | 
			
		||||
		hoverColor: 'hover:bg-pink-700',
 | 
			
		||||
		color: 'bg-pink-700'
 | 
			
		||||
		color: 'bg-pink-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'python',
 | 
			
		||||
		fancyName: 'Python',
 | 
			
		||||
		hoverColor: 'hover:bg-green-700',
 | 
			
		||||
		color: 'bg-green-700'
 | 
			
		||||
		color: 'bg-green-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'deno',
 | 
			
		||||
		fancyName: 'Deno',
 | 
			
		||||
		hoverColor: 'hover:bg-green-700',
 | 
			
		||||
		color: 'bg-green-700'
 | 
			
		||||
		color: 'bg-green-700',
 | 
			
		||||
		isCoolifyBuildPack: true,
 | 
			
		||||
	},
 | 
			
		||||
    // {
 | 
			
		||||
    //     name: 'heroku',
 | 
			
		||||
	// 	fancyName: 'Heroku Buildpack',
 | 
			
		||||
	// 	hoverColor: 'hover:bg-indigo-700',
 | 
			
		||||
	// 	color: 'bg-indigo-700'
 | 
			
		||||
    // }
 | 
			
		||||
    {
 | 
			
		||||
        name: 'heroku',
 | 
			
		||||
		fancyName: 'Heroku',
 | 
			
		||||
		hoverColor: 'hover:bg-purple-700',
 | 
			
		||||
		color: 'bg-purple-700',
 | 
			
		||||
		isHerokuBuildPack: true,
 | 
			
		||||
    }
 | 
			
		||||
];
 | 
			
		||||
export const scanningTemplates = {
 | 
			
		||||
	'@sveltejs/kit': {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user