feat: init moodle and separate stuffs to shared package
This commit is contained in:
		@@ -1,4 +1,5 @@
 | 
			
		||||
import { toast } from '@zerodevx/svelte-toast';
 | 
			
		||||
import { supportedServiceTypesAndVersions } from 'shared/index';
 | 
			
		||||
export const asyncSleep = (delay: number) =>
 | 
			
		||||
	new Promise((resolve) => setTimeout(resolve, delay));
 | 
			
		||||
 | 
			
		||||
@@ -62,195 +63,34 @@ export function changeQueryParams(buildId: string) {
 | 
			
		||||
	return history.pushState(null, null, '?' + queryParams.toString());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// export const supportedDatabaseTypesAndVersions = [
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'mongodb',
 | 
			
		||||
// 		fancyName: 'MongoDB',
 | 
			
		||||
// 		baseImage: 'bitnami/mongodb',
 | 
			
		||||
// 		versions: ['5.0', '4.4', '4.2']
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{ name: 'mysql', fancyName: 'MySQL', baseImage: 'bitnami/mysql', versions: ['8.0', '5.7'] },
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'mariadb',
 | 
			
		||||
// 		fancyName: 'MariaDB',
 | 
			
		||||
// 		baseImage: 'bitnami/mariadb',
 | 
			
		||||
// 		versions: ['10.7', '10.6', '10.5', '10.4', '10.3', '10.2']
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'postgresql',
 | 
			
		||||
// 		fancyName: 'PostgreSQL',
 | 
			
		||||
// 		baseImage: 'bitnami/postgresql',
 | 
			
		||||
// 		versions: ['14.2.0', '13.6.0', '12.10.0	', '11.15.0', '10.20.0']
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'redis',
 | 
			
		||||
// 		fancyName: 'Redis',
 | 
			
		||||
// 		baseImage: 'bitnami/redis',
 | 
			
		||||
// 		versions: ['6.2', '6.0', '5.0']
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{ name: 'couchdb', fancyName: 'CouchDB', baseImage: 'bitnami/couchdb', versions: ['3.2.1'] }
 | 
			
		||||
// ];
 | 
			
		||||
// export const supportedServiceTypesAndVersions = [
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'plausibleanalytics',
 | 
			
		||||
// 		fancyName: 'Plausible Analytics',
 | 
			
		||||
// 		baseImage: 'plausible/analytics',
 | 
			
		||||
// 		images: ['bitnami/postgresql:13.2.0', 'yandex/clickhouse-server:21.3.2.5'],
 | 
			
		||||
// 		versions: ['latest', 'stable'],
 | 
			
		||||
// 		recommendedVersion: 'stable',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 8000
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'nocodb',
 | 
			
		||||
// 		fancyName: 'NocoDB',
 | 
			
		||||
// 		baseImage: 'nocodb/nocodb',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 8080
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'minio',
 | 
			
		||||
// 		fancyName: 'MinIO',
 | 
			
		||||
// 		baseImage: 'minio/minio',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 9001
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'vscodeserver',
 | 
			
		||||
// 		fancyName: 'VSCode Server',
 | 
			
		||||
// 		baseImage: 'codercom/code-server',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 8080
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'wordpress',
 | 
			
		||||
// 		fancyName: 'Wordpress',
 | 
			
		||||
// 		baseImage: 'wordpress',
 | 
			
		||||
// 		images: ['bitnami/mysql:5.7'],
 | 
			
		||||
// 		versions: ['latest', 'php8.1', 'php8.0', 'php7.4', 'php7.3'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 80
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'vaultwarden',
 | 
			
		||||
// 		fancyName: 'Vaultwarden',
 | 
			
		||||
// 		baseImage: 'vaultwarden/server',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 80
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'languagetool',
 | 
			
		||||
// 		fancyName: 'LanguageTool',
 | 
			
		||||
// 		baseImage: 'silviof/docker-languagetool',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 8010
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'n8n',
 | 
			
		||||
// 		fancyName: 'n8n',
 | 
			
		||||
// 		baseImage: 'n8nio/n8n',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 5678
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'uptimekuma',
 | 
			
		||||
// 		fancyName: 'Uptime Kuma',
 | 
			
		||||
// 		baseImage: 'louislam/uptime-kuma',
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 3001
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'ghost',
 | 
			
		||||
// 		fancyName: 'Ghost',
 | 
			
		||||
// 		baseImage: 'bitnami/ghost',
 | 
			
		||||
// 		images: ['bitnami/mariadb'],
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 2368
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'meilisearch',
 | 
			
		||||
// 		fancyName: 'Meilisearch',
 | 
			
		||||
// 		baseImage: 'getmeili/meilisearch',
 | 
			
		||||
// 		images: [],
 | 
			
		||||
// 		versions: ['latest'],
 | 
			
		||||
// 		recommendedVersion: 'latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 7700
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'umami',
 | 
			
		||||
// 		fancyName: 'Umami',
 | 
			
		||||
// 		baseImage: 'ghcr.io/mikecao/umami',
 | 
			
		||||
// 		images: ['postgres:12-alpine'],
 | 
			
		||||
// 		versions: ['postgresql-latest'],
 | 
			
		||||
// 		recommendedVersion: 'postgresql-latest',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 3000
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'hasura',
 | 
			
		||||
// 		fancyName: 'Hasura',
 | 
			
		||||
// 		baseImage: 'hasura/graphql-engine',
 | 
			
		||||
// 		images: ['postgres:12-alpine'],
 | 
			
		||||
// 		versions: ['latest', 'v2.5.1'],
 | 
			
		||||
// 		recommendedVersion: 'v2.5.1',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 8080
 | 
			
		||||
// 		}
 | 
			
		||||
// 	},
 | 
			
		||||
// 	{
 | 
			
		||||
// 		name: 'fider',
 | 
			
		||||
// 		fancyName: 'Fider',
 | 
			
		||||
// 		baseImage: 'getfider/fider',
 | 
			
		||||
// 		images: ['postgres:12-alpine'],
 | 
			
		||||
// 		versions: ['stable'],
 | 
			
		||||
// 		recommendedVersion: 'stable',
 | 
			
		||||
// 		ports: {
 | 
			
		||||
// 			main: 3000
 | 
			
		||||
// 		}
 | 
			
		||||
// 		// },
 | 
			
		||||
// 		// {
 | 
			
		||||
// 		// 	name: 'appwrite',
 | 
			
		||||
// 		// 	fancyName: 'AppWrite',
 | 
			
		||||
// 		// 	baseImage: 'appwrite/appwrite',
 | 
			
		||||
// 		// 	images: ['appwrite/influxdb', 'appwrite/telegraf', 'mariadb:10.7', 'redis:6.0-alpine3.12'],
 | 
			
		||||
// 		// 	versions: ['latest', '0.13.0'],
 | 
			
		||||
// 		// 	recommendedVersion: '0.13.0',
 | 
			
		||||
// 		// 	ports: {
 | 
			
		||||
// 		// 		main: 3000
 | 
			
		||||
// 		// 	}
 | 
			
		||||
// 		// }
 | 
			
		||||
// 	}
 | 
			
		||||
// ];
 | 
			
		||||
export const supportedDatabaseTypesAndVersions = [
 | 
			
		||||
	{
 | 
			
		||||
		name: 'mongodb',
 | 
			
		||||
		fancyName: 'MongoDB',
 | 
			
		||||
		baseImage: 'bitnami/mongodb',
 | 
			
		||||
		versions: ['5.0', '4.4', '4.2']
 | 
			
		||||
	},
 | 
			
		||||
	{ name: 'mysql', fancyName: 'MySQL', baseImage: 'bitnami/mysql', versions: ['8.0', '5.7'] },
 | 
			
		||||
	{
 | 
			
		||||
		name: 'mariadb',
 | 
			
		||||
		fancyName: 'MariaDB',
 | 
			
		||||
		baseImage: 'bitnami/mariadb',
 | 
			
		||||
		versions: ['10.7', '10.6', '10.5', '10.4', '10.3', '10.2']
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'postgresql',
 | 
			
		||||
		fancyName: 'PostgreSQL',
 | 
			
		||||
		baseImage: 'bitnami/postgresql',
 | 
			
		||||
		versions: ['14.2.0', '13.6.0', '12.10.0	', '11.15.0', '10.20.0']
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'redis',
 | 
			
		||||
		fancyName: 'Redis',
 | 
			
		||||
		baseImage: 'bitnami/redis',
 | 
			
		||||
		versions: ['6.2', '6.0', '5.0']
 | 
			
		||||
	},
 | 
			
		||||
	{ name: 'couchdb', fancyName: 'CouchDB', baseImage: 'bitnami/couchdb', versions: ['3.2.1'] }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export const getServiceMainPort = (service: string) => {
 | 
			
		||||
	const serviceType = supportedServiceTypesAndVersions.find((s) => s.name === service);
 | 
			
		||||
@@ -260,155 +100,7 @@ export const getServiceMainPort = (service: string) => {
 | 
			
		||||
	return null;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const supportedServiceTypesAndVersions = [
 | 
			
		||||
	{
 | 
			
		||||
		name: 'plausibleanalytics',
 | 
			
		||||
		fancyName: 'Plausible Analytics',
 | 
			
		||||
		baseImage: 'plausible/analytics',
 | 
			
		||||
		images: ['bitnami/postgresql:13.2.0', 'yandex/clickhouse-server:21.3.2.5'],
 | 
			
		||||
		versions: ['latest', 'stable'],
 | 
			
		||||
		recommendedVersion: 'stable',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8000
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'nocodb',
 | 
			
		||||
		fancyName: 'NocoDB',
 | 
			
		||||
		baseImage: 'nocodb/nocodb',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'minio',
 | 
			
		||||
		fancyName: 'MinIO',
 | 
			
		||||
		baseImage: 'minio/minio',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 9001
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'vscodeserver',
 | 
			
		||||
		fancyName: 'VSCode Server',
 | 
			
		||||
		baseImage: 'codercom/code-server',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'wordpress',
 | 
			
		||||
		fancyName: 'Wordpress',
 | 
			
		||||
		baseImage: 'wordpress',
 | 
			
		||||
		images: ['bitnami/mysql:5.7'],
 | 
			
		||||
		versions: ['latest', 'php8.1', 'php8.0', 'php7.4', 'php7.3'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 80
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'vaultwarden',
 | 
			
		||||
		fancyName: 'Vaultwarden',
 | 
			
		||||
		baseImage: 'vaultwarden/server',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 80
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'languagetool',
 | 
			
		||||
		fancyName: 'LanguageTool',
 | 
			
		||||
		baseImage: 'silviof/docker-languagetool',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8010
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'n8n',
 | 
			
		||||
		fancyName: 'n8n',
 | 
			
		||||
		baseImage: 'n8nio/n8n',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 5678
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'uptimekuma',
 | 
			
		||||
		fancyName: 'Uptime Kuma',
 | 
			
		||||
		baseImage: 'louislam/uptime-kuma',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3001
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'ghost',
 | 
			
		||||
		fancyName: 'Ghost',
 | 
			
		||||
		baseImage: 'bitnami/ghost',
 | 
			
		||||
		images: ['bitnami/mariadb'],
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 2368
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'meilisearch',
 | 
			
		||||
		fancyName: 'Meilisearch',
 | 
			
		||||
		baseImage: 'getmeili/meilisearch',
 | 
			
		||||
		images: [],
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 7700
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'umami',
 | 
			
		||||
		fancyName: 'Umami',
 | 
			
		||||
		baseImage: 'ghcr.io/mikecao/umami',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['postgresql-latest'],
 | 
			
		||||
		recommendedVersion: 'postgresql-latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3000
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'hasura',
 | 
			
		||||
		fancyName: 'Hasura',
 | 
			
		||||
		baseImage: 'hasura/graphql-engine',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['latest', 'v2.5.1'],
 | 
			
		||||
		recommendedVersion: 'v2.5.1',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'fider',
 | 
			
		||||
		fancyName: 'Fider',
 | 
			
		||||
		baseImage: 'getfider/fider',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['stable'],
 | 
			
		||||
		recommendedVersion: 'stable',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3000
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export function handlerNotFoundLoad(error: any, url: URL) {
 | 
			
		||||
	if (error?.status === 404) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								apps/ui/src/lib/components/svg/services/Moodle.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								apps/ui/src/lib/components/svg/services/Moodle.svelte
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
	export let isAbsolute = false;
 | 
			
		||||
</script>
 | 
			
		||||
<img
 | 
			
		||||
	alt="moodle logo"
 | 
			
		||||
	class={isAbsolute ? 'w-9 absolute top-0 left-0 -m-3 -mt-5' : 'w-8 mx-auto'}
 | 
			
		||||
	src="/moodle.png"
 | 
			
		||||
/>
 | 
			
		||||
							
								
								
									
										17
									
								
								apps/ui/src/lib/components/svg/services/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								apps/ui/src/lib/components/svg/services/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
//@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 Moodle }  from './Moodle.svelte';
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user