diff --git a/core/installer/app.go b/core/installer/app.go
index 2b94770..8d79c58 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -13,10 +13,11 @@
 var valuesTmpls embed.FS
 
 type App struct {
-	Name      string
-	Templates []*template.Template
-	Schema    string
-	Readme    *template.Template
+	Name       string
+	Namespaces []string
+	Templates  []*template.Template
+	Schema     string
+	Readme     *template.Template
 }
 
 type AppRepository interface {
@@ -87,6 +88,7 @@
 	}
 	return App{
 		"ingress-private",
+		[]string{"ingress-private"},
 		[]*template.Template{
 			tmpls.Lookup("ingress-private.yaml"),
 		},
@@ -102,6 +104,7 @@
 	}
 	return App{
 		"certificate-issuer-private",
+		[]string{},
 		[]*template.Template{
 			tmpls.Lookup("certificate-issuer-private.yaml"),
 		},
@@ -117,6 +120,7 @@
 	}
 	return App{
 		"certificate-issuer-public",
+		[]string{},
 		[]*template.Template{
 			tmpls.Lookup("certificate-issuer-public.yaml"),
 		},
@@ -132,6 +136,7 @@
 	}
 	return App{
 		"core-auth",
+		[]string{"core-auth"},
 		[]*template.Template{
 			tmpls.Lookup("core-auth-storage.yaml"),
 			tmpls.Lookup("core-auth.yaml"),
@@ -148,6 +153,7 @@
 	}
 	return App{
 		"vaultwarden",
+		[]string{"app-vaultwarden"},
 		[]*template.Template{
 			tmpls.Lookup("vaultwarden.yaml"),
 		},
@@ -163,6 +169,7 @@
 	}
 	return App{
 		"matrix",
+		[]string{"app-matrix"},
 		[]*template.Template{
 			tmpls.Lookup("matrix-storage.yaml"),
 			tmpls.Lookup("matrix.yaml"),
@@ -179,6 +186,7 @@
 	}
 	return App{
 		"pihole",
+		[]string{"app-pihole"},
 		[]*template.Template{
 			tmpls.Lookup("pihole.yaml"),
 		},
@@ -194,6 +202,7 @@
 	}
 	return App{
 		"maddy",
+		[]string{"app-maddy"},
 		[]*template.Template{
 			tmpls.Lookup("maddy.yaml"),
 		},
@@ -209,6 +218,7 @@
 	}
 	return App{
 		"qbittorrent",
+		[]string{"app-qbittorrent"},
 		[]*template.Template{
 			tmpls.Lookup("qbittorrent.yaml"),
 		},
@@ -224,6 +234,7 @@
 	}
 	return App{
 		"jellyfin",
+		[]string{"app-jellyfin"},
 		[]*template.Template{
 			tmpls.Lookup("jellyfin.yaml"),
 		},
@@ -239,6 +250,7 @@
 	}
 	return App{
 		"rpuppy",
+		[]string{"app-rpuppy"},
 		[]*template.Template{
 			tmpls.Lookup("rpuppy.yaml"),
 		},
@@ -254,6 +266,7 @@
 	}
 	return App{
 		"headscale",
+		[]string{"app-headscale"},
 		[]*template.Template{
 			tmpls.Lookup("headscale.yaml"),
 		},
@@ -269,6 +282,7 @@
 	}
 	return App{
 		"tailscale-proxy",
+		[]string{"tailscale-proxy"},
 		[]*template.Template{
 			tmpls.Lookup("tailscale-proxy.yaml"),
 		},
@@ -284,6 +298,7 @@
 	}
 	return App{
 		"metallb-config-env",
+		[]string{"metallb-config"},
 		[]*template.Template{
 			tmpls.Lookup("metallb-config-env.yaml"),
 		},
@@ -299,6 +314,7 @@
 	}
 	return App{
 		"env-manager",
+		[]string{"env-manager"},
 		[]*template.Template{
 			tmpls.Lookup("env-manager.yaml"),
 		},
@@ -314,6 +330,7 @@
 	}
 	return App{
 		"welcome",
+		[]string{"app-welcome"},
 		[]*template.Template{
 			tmpls.Lookup("welcome.yaml"),
 		},
@@ -329,6 +346,7 @@
 	}
 	return App{
 		"ingress-public",
+		[]string{"ingress-public"},
 		[]*template.Template{
 			tmpls.Lookup("ingress-public.yaml"),
 		},
@@ -344,6 +362,7 @@
 	}
 	return App{
 		"cert-manager",
+		[]string{"cert-manager"},
 		[]*template.Template{
 			tmpls.Lookup("cert-manager.yaml"),
 		},
@@ -359,6 +378,7 @@
 	}
 	return App{
 		"cert-manager-webhook-gandi",
+		[]string{},
 		[]*template.Template{
 			tmpls.Lookup("cert-manager-webhook-gandi.yaml"),
 		},
@@ -374,6 +394,7 @@
 	}
 	return App{
 		"cert-manager-webhook-gandi-role",
+		[]string{},
 		[]*template.Template{
 			tmpls.Lookup("cert-manager-webhook-gandi-role.yaml"),
 		},
@@ -389,6 +410,7 @@
 	}
 	return App{
 		"csi-driver-smb",
+		[]string{"csi-driver-smb"},
 		[]*template.Template{
 			tmpls.Lookup("csi-driver-smb.yaml"),
 		},
@@ -404,6 +426,7 @@
 	}
 	return App{
 		"resource-renderer-controller",
+		[]string{"rr-controller"},
 		[]*template.Template{
 			tmpls.Lookup("resource-renderer-controller.yaml"),
 		},
@@ -419,6 +442,7 @@
 	}
 	return App{
 		"headscale-controller",
+		[]string{"headscale-controller"},
 		[]*template.Template{
 			tmpls.Lookup("headscale-controller.yaml"),
 		},
