Env: configure urls and help documents

Change-Id: I9522e074575e0c1e67735462ac4cc266ab1ebb8c
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