+ {#if applications.length > 0}
Resources
@@ -308,6 +309,7 @@
+ {/if}
{#if $appSession.teamId === '0'}
{/if}
diff --git a/apps/ui/src/routes/services/[id]/_ServiceLinks.svelte b/apps/ui/src/routes/services/[id]/_ServiceLinks.svelte
index e25f3d2d0..9303a0fb2 100644
--- a/apps/ui/src/routes/services/[id]/_ServiceLinks.svelte
+++ b/apps/ui/src/routes/services/[id]/_ServiceLinks.svelte
@@ -55,9 +55,12 @@
+{:else if service.type === 'appwrite'}
+
+
+
{:else if service.type === 'moodle'}
{/if}
-
diff --git a/apps/ui/src/routes/services/[id]/_Services/_Appwrite.svelte b/apps/ui/src/routes/services/[id]/_Services/_Appwrite.svelte
new file mode 100644
index 000000000..f27e49fd4
--- /dev/null
+++ b/apps/ui/src/routes/services/[id]/_Services/_Appwrite.svelte
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/ui/src/routes/services/[id]/_Services/_Services.svelte b/apps/ui/src/routes/services/[id]/_Services/_Services.svelte
index 3873604d1..326ae4c1a 100644
--- a/apps/ui/src/routes/services/[id]/_Services/_Services.svelte
+++ b/apps/ui/src/routes/services/[id]/_Services/_Services.svelte
@@ -26,6 +26,7 @@
import Umami from './_Umami.svelte';
import VsCodeServer from './_VSCodeServer.svelte';
import Wordpress from './_Wordpress.svelte';
+ import Appwrite from './_Appwrite.svelte';
import Moodle from './_Moodle.svelte';
const { id } = $page.params;
@@ -37,7 +38,7 @@
save: false,
verification: false,
cleanup: false
- }
+ };
let dualCerts = service.dualCerts;
let nonWWWDomain = service.fqdn && getDomain(service.fqdn).replace(/^www\./, '');
@@ -394,6 +395,8 @@
{:else if service.type === 'fider'}
+ {:else if service.type === 'appwrite'}
+
{:else if service.type === 'moodle'}
{/if}
diff --git a/apps/ui/src/routes/services/[id]/_Services/_Wordpress.svelte b/apps/ui/src/routes/services/[id]/_Services/_Wordpress.svelte
index 61368c983..4d72fafd2 100644
--- a/apps/ui/src/routes/services/[id]/_Services/_Wordpress.svelte
+++ b/apps/ui/src/routes/services/[id]/_Services/_Wordpress.svelte
@@ -22,7 +22,7 @@
function generateUrl(publicPort: any) {
return browser
? `sftp://${
- settings.fqdn ? getDomain(settings.fqdn) : window.location.hostname
+ settings?.fqdn ? getDomain(settings.fqdn) : window.location.hostname
}:${publicPort}`
: 'Loading...';
}
diff --git a/apps/ui/src/routes/services/[id]/__layout.svelte b/apps/ui/src/routes/services/[id]/__layout.svelte
index d3ab9d1ae..6f37692eb 100644
--- a/apps/ui/src/routes/services/[id]/__layout.svelte
+++ b/apps/ui/src/routes/services/[id]/__layout.svelte
@@ -110,7 +110,6 @@
loading = true;
try {
await post(`/services/${service.id}/${service.type}/start`, {});
- return window.location.reload();
} catch (error) {
return errorNotification(error);
} finally {
diff --git a/apps/ui/src/routes/services/[id]/configuration/destination.svelte b/apps/ui/src/routes/services/[id]/configuration/destination.svelte
index 47fb93db6..19d96809b 100644
--- a/apps/ui/src/routes/services/[id]/configuration/destination.svelte
+++ b/apps/ui/src/routes/services/[id]/configuration/destination.svelte
@@ -32,10 +32,16 @@
import { get, post } from '$lib/api';
import { t } from '$lib/translations';
import { errorNotification } from '$lib/common';
+ import { onMount } from 'svelte';
const { id } = $page.params;
const from = $page.url.searchParams.get('from');
+ onMount(async () => {
+ if (destinations.length === 1) {
+ await handleSubmit(destinations[0].id);
+ }
+ });
async function handleSubmit(destinationId: any) {
try {
await post(`/services/${id}/configuration/destination`, { destinationId });
@@ -54,7 +60,9 @@