diff --git a/neode-ui/src/views/AppSession.vue b/neode-ui/src/views/AppSession.vue index b0d64ed5..b8daa60e 100644 --- a/neode-ui/src/views/AppSession.vue +++ b/neode-ui/src/views/AppSession.vue @@ -376,6 +376,7 @@ const EXTERNAL_URLS: Record = { 'syntropy-institute': 'https://syntropy.institute', 't-zero': 'https://teeminuszero.net', 'nostrudel': 'https://nostrudel.ninja', + 'tailscale': 'https://login.tailscale.com/admin/machines', } const APP_TITLES: Record = { @@ -402,6 +403,7 @@ const NEW_TAB_APPS = new Set([ 'portainer', // X-Frame-Options: deny 'onlyoffice', // X-Frame-Options: SAMEORIGIN 'nginx-proxy-manager', // X-Frame-Options blocks + 'tailscale', // No local web UI — opens Tailscale admin ]) const mustOpenNewTab = computed(() => NEW_TAB_APPS.has(appId.value)) diff --git a/neode-ui/src/views/Apps.vue b/neode-ui/src/views/Apps.vue index 75553701..8332fe55 100644 --- a/neode-ui/src/views/Apps.vue +++ b/neode-ui/src/views/Apps.vue @@ -561,7 +561,7 @@ function canLaunch(pkg: PackageDataEntry): boolean { const TAB_LAUNCH_APPS = new Set([ 'btcpay-server', 'grafana', 'photoprism', 'homeassistant', 'vaultwarden', 'nextcloud', 'uptime-kuma', 'portainer', - 'onlyoffice', 'nginx-proxy-manager', + 'onlyoffice', 'nginx-proxy-manager', 'tailscale', ]) function opensInTab(id: string): boolean { diff --git a/neode-ui/src/views/Marketplace.vue b/neode-ui/src/views/Marketplace.vue index 61fee6c6..1691e079 100644 --- a/neode-ui/src/views/Marketplace.vue +++ b/neode-ui/src/views/Marketplace.vue @@ -2,78 +2,6 @@
- -
-
-
-
- - - - - - - -
-

{{ progress.title }}

-

{{ progress.message }}

-
-
-
- {{ progress.progress }}% -
-
- - -
-
-
-
-
-