installer cmd line tool
diff --git a/core/installer/app.go b/core/installer/app.go
new file mode 100644
index 0000000..9e3cb29
--- /dev/null
+++ b/core/installer/app.go
@@ -0,0 +1,66 @@
+package main
+
+import "text/template"
+
+type App struct {
+ Name string
+ Templates []*template.Template
+}
+
+func CreateAppIngressPrivate(tmpls *template.Template) App {
+ return App{
+ "ingress-private",
+ []*template.Template{
+ tmpls.Lookup("vpn-mesh-config.yaml"),
+ tmpls.Lookup("ingress-private.yaml"),
+ tmpls.Lookup("certificate-issuer.yaml"),
+ },
+ }
+}
+
+func CreateAppCoreAuth(tmpls *template.Template) App {
+ return App{
+ "core-auth",
+ []*template.Template{
+ tmpls.Lookup("core-auth-storage.yaml"),
+ tmpls.Lookup("core-auth.yaml"),
+ },
+ }
+}
+
+func CreateAppVaultwarden(tmpls *template.Template) App {
+ return App{
+ "vaultwarden",
+ []*template.Template{
+ tmpls.Lookup("vaultwarden.yaml"),
+ },
+ }
+}
+
+func CreateAppMatrix(tmpls *template.Template) App {
+ return App{
+ "matrix",
+ []*template.Template{
+ tmpls.Lookup("matrix-storage.yaml"),
+ tmpls.Lookup("matrix.yaml"),
+ },
+ }
+}
+
+func CreateAppPihole(tmpls *template.Template) App {
+ return App{
+ "pihole",
+ []*template.Template{
+ tmpls.Lookup("pihole.yaml"),
+ },
+ }
+}
+
+func CreateAppMaddy(tmpls *template.Template) App {
+ return App{
+ "maddy",
+ []*template.Template{
+ tmpls.Lookup("maddy.yaml"),
+ },
+ }
+}