diff --git a/core/installer/app.go b/core/installer/app.go
index 96caf68..2b94770 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -54,6 +54,8 @@
 	}
 	return []App{
 		CreateAppIngressPrivate(valuesTmpls, tmpls),
+		CreateCertificateIssuerPublic(valuesTmpls, tmpls),
+		CreateCertificateIssuerPrivate(valuesTmpls, tmpls),
 		CreateAppCoreAuth(valuesTmpls, tmpls),
 		CreateAppVaultwarden(valuesTmpls, tmpls),
 		CreateAppMatrix(valuesTmpls, tmpls),
@@ -66,6 +68,7 @@
 		CreateAppTailscaleProxy(valuesTmpls, tmpls),
 		CreateMetallbConfigEnv(valuesTmpls, tmpls),
 		CreateEnvManager(valuesTmpls, tmpls),
+		CreateWelcome(valuesTmpls, tmpls),
 		CreateIngressPublic(valuesTmpls, tmpls),
 		CreateCertManager(valuesTmpls, tmpls),
 		CreateCertManagerWebhookGandi(valuesTmpls, tmpls),
@@ -85,9 +88,7 @@
 	return App{
 		"ingress-private",
 		[]*template.Template{
-			// tmpls.Lookup("vpn-mesh-config.yaml"),
 			tmpls.Lookup("ingress-private.yaml"),
-			tmpls.Lookup("certificate-issuer.yaml"),
 		},
 		string(schema),
 		tmpls.Lookup("ingress-private.md"),
@@ -100,7 +101,7 @@
 		panic(err)
 	}
 	return App{
-		"ingress-private",
+		"certificate-issuer-private",
 		[]*template.Template{
 			tmpls.Lookup("certificate-issuer-private.yaml"),
 		},
@@ -109,6 +110,21 @@
 	}
 }
 
+func CreateCertificateIssuerPublic(fs embed.FS, tmpls *template.Template) App {
+	schema, err := fs.ReadFile("values-tmpl/certificate-issuer-public.jsonschema")
+	if err != nil {
+		panic(err)
+	}
+	return App{
+		"certificate-issuer-public",
+		[]*template.Template{
+			tmpls.Lookup("certificate-issuer-public.yaml"),
+		},
+		string(schema),
+		tmpls.Lookup("certificate-issuer-public.md"),
+	}
+}
+
 func CreateAppCoreAuth(fs embed.FS, tmpls *template.Template) App {
 	schema, err := fs.ReadFile("values-tmpl/core-auth.jsonschema")
 	if err != nil {
@@ -291,6 +307,21 @@
 	}
 }
 
+func CreateWelcome(fs embed.FS, tmpls *template.Template) App {
+	schema, err := fs.ReadFile("values-tmpl/welcome.jsonschema")
+	if err != nil {
+		panic(err)
+	}
+	return App{
+		"welcome",
+		[]*template.Template{
+			tmpls.Lookup("welcome.yaml"),
+		},
+		string(schema),
+		tmpls.Lookup("welcome.md"),
+	}
+}
+
 func CreateIngressPublic(fs embed.FS, tmpls *template.Template) App {
 	schema, err := fs.ReadFile("values-tmpl/ingress-public.jsonschema")
 	if err != nil {
