diff --git a/core/installer/welcome/env_test.go b/core/installer/welcome/env_test.go
index ed7a2d3..0d61af8 100644
--- a/core/installer/welcome/env_test.go
+++ b/core/installer/welcome/env_test.go
@@ -264,6 +264,7 @@
 		"https://accounts-ui.test.t",
 		"https://welcome.test.t",
 		"https://memberships.p.test.t",
+		"https://launcher.test.t",
 		"https://headscale.test.t/apple",
 	}
 	for _, e := range expected {
@@ -271,7 +272,7 @@
 			t.Fatal(httpClient.counts)
 		}
 	}
-	if len(httpClient.counts) != 4 {
+	if len(httpClient.counts) != 5 {
 		t.Fatal(httpClient.counts)
 	}
 }
diff --git a/core/installer/welcome/launcher.go b/core/installer/welcome/launcher.go
index df4f863..7816dfc 100644
--- a/core/installer/welcome/launcher.go
+++ b/core/installer/welcome/launcher.go
@@ -32,6 +32,26 @@
 	AppManager *installer.AppManager
 }
 
+func (d *AppManagerDirectory) GetAllApps() ([]AppLauncherInfo, error) {
+	all, err := d.AppManager.FindAllInstances()
+	if err != nil {
+		return nil, err
+	}
+	ret := []AppLauncherInfo{}
+	for _, a := range all {
+		if a.URL == "" && len(a.Help) == 0 {
+			continue
+		}
+		ret = append(ret, AppLauncherInfo{
+			Name: a.AppId,
+			Icon: template.HTML(a.Icon),
+			Help: a.Help,
+			Url:  a.URL,
+		})
+	}
+	return ret, nil
+}
+
 type LauncherServer struct {
 	port         int
 	logoutUrl    string
@@ -77,24 +97,6 @@
 	return cleanName
 }
 
-func (d *AppManagerDirectory) GetAllApps() ([]AppLauncherInfo, error) {
-	allAppInstances, err := d.AppManager.FindAllInstances()
-	if err != nil {
-		return nil, err
-	}
-	var ret []AppLauncherInfo
-	for _, appInstance := range allAppInstances {
-		appLauncherInfo := AppLauncherInfo{
-			Name: appInstance.AppId,
-			Icon: template.HTML(appInstance.Icon),
-			Help: appInstance.Help,
-			Url:  appInstance.Url,
-		}
-		ret = append(ret, appLauncherInfo)
-	}
-	return ret, nil
-}
-
 func getLoggedInUser(r *http.Request) (string, error) {
 	if user := r.Header.Get("X-User"); user != "" {
 		return user, nil
