app-repo: archive
diff --git a/apps/app-repository/app.go b/apps/app-repository/app.go
index c59ef2b..67ce4e3 100644
--- a/apps/app-repository/app.go
+++ b/apps/app-repository/app.go
@@ -42,7 +42,7 @@
 		}
 		e = append(e, map[string]any{
 			"version": a.Version(),
-			"urls":    []string{fmt.Sprintf("%s/%s/%s.tar.gz", s.schemeWithHost, a.Name(), a.Version())},
+			"urls":    []string{fmt.Sprintf("%s/app/%s/%s.tar.gz", s.schemeWithHost, a.Name(), a.Version())},
 		})
 		entries[a.Name()] = e
 	}
diff --git a/apps/app-repository/apps-unarchived/pihole-0.0.1/Chart.yaml b/apps/app-repository/apps-unarchived/pihole-0.0.1/Chart.yaml
new file mode 100644
index 0000000..3974ac7
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/pihole-0.0.1/Chart.yaml
@@ -0,0 +1,7 @@
+name: pihole
+version: 0.0.1
+description: Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on a private network.
+namespaces:
+- pihole
+icon: |
+  <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 24 24"><path fill="currentColor" d="M4.344 0c.238 4.792 3.256 7.056 6.252 7.376c.165-1.692-4.319-5.6-4.319-5.6c-.008-.011.009-.025.019-.014c0 0 4.648 4.01 5.423 5.645c2.762-.15 5.196-1.947 5-4.912c0 0-4.12-.613-5 4.618C11.48 2.753 8.993 0 4.344 0zM12 7.682v.002a3.68 3.68 0 0 0-2.591 1.077L4.94 13.227a3.683 3.683 0 0 0-.86 1.356a3.31 3.31 0 0 0-.237 1.255A3.681 3.681 0 0 0 4.92 18.45l4.464 4.466a3.69 3.69 0 0 0 2.251 1.06l.002.001c.093.01.187.015.28.017l-.1-.008c.06.003.117.009.177.009l-.077-.001L12 24l-.004-.005a3.68 3.68 0 0 0 2.61-1.077l4.469-4.465a3.683 3.683 0 0 0 1.006-1.888l.012-.063a3.682 3.682 0 0 0 .057-.541l.003-.061c0-.017.003-.05.004-.06h-.002a3.683 3.683 0 0 0-1.077-2.607l-4.466-4.468a3.694 3.694 0 0 0-1.564-.927l-.07-.02a3.43 3.43 0 0 0-.946-.133L12 7.682zm3.165 3.357c.023 1.748-1.33 3.078-1.33 4.806c.164 2.227 1.733 3.207 3.266 3.146c-.035.003-.068.007-.104.009c-1.847.135-3.209-1.326-5.002-1.326c-2.23.164-3.21 1.736-3.147 3.27l-.008-.104c-.133-1.847 1.328-3.21 1.328-5.002c-.173-2.32-1.867-3.284-3.46-3.132c.1-.011.203-.021.31-.027c1.847-.133 3.209 1.328 5.002 1.328c2.082-.155 3.074-1.536 3.145-2.968zM4.344 0c.238 4.792 3.256 7.056 6.252 7.376c.165-1.692-4.319-5.6-4.319-5.6c-.008-.011.009-.025.019-.014c0 0 4.648 4.01 5.423 5.645c2.762-.15 5.196-1.947 5-4.912c0 0-4.12-.613-5 4.618C11.48 2.753 8.993 0 4.344 0zM12 7.682v.002a3.68 3.68 0 0 0-2.591 1.077L4.94 13.227a3.683 3.683 0 0 0-.86 1.356a3.31 3.31 0 0 0-.237 1.255A3.681 3.681 0 0 0 4.92 18.45l4.464 4.466a3.69 3.69 0 0 0 2.251 1.06l.002.001c.093.01.187.015.28.017l-.1-.008c.06.003.117.009.177.009l-.077-.001L12 24l-.004-.005a3.68 3.68 0 0 0 2.61-1.077l4.469-4.465a3.683 3.683 0 0 0 1.006-1.888l.012-.063a3.682 3.682 0 0 0 .057-.541l.003-.061c0-.017.003-.05.004-.06h-.002a3.683 3.683 0 0 0-1.077-2.607l-4.466-4.468a3.694 3.694 0 0 0-1.564-.927l-.07-.02a3.43 3.43 0 0 0-.946-.133L12 7.682zm3.165 3.357c.023 1.748-1.33 3.078-1.33 4.806c.164 2.227 1.733 3.207 3.266 3.146c-.035.003-.068.007-.104.009c-1.847.135-3.209-1.326-5.002-1.326c-2.23.164-3.21 1.736-3.147 3.27l-.008-.104c-.133-1.847 1.328-3.21 1.328-5.002c-.173-2.32-1.867-3.284-3.46-3.132c.1-.011.203-.021.31-.027c1.847-.133 3.209 1.328 5.002 1.328c2.082-.155 3.074-1.536 3.145-2.968z"/></svg>
diff --git a/apps/app-repository/apps-unarchived/pihole-0.0.1/README.md b/apps/app-repository/apps-unarchived/pihole-0.0.1/README.md
new file mode 100644
index 0000000..c8c690d
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/pihole-0.0.1/README.md
@@ -0,0 +1 @@
+Installs pihole at https://{{ .Values.Subdomain }}.{{ .Global.PrivateDomain }}
diff --git a/apps/app-repository/apps-unarchived/pihole-0.0.1/schema.json b/apps/app-repository/apps-unarchived/pihole-0.0.1/schema.json
new file mode 100644
index 0000000..942b269
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/pihole-0.0.1/schema.json
@@ -0,0 +1,7 @@
+{
+  "type": "object",
+  "properties": {
+    "Subdomain": { "type": "string", "default": "pihole" }
+  },
+  "additionalProperties": false
+}
diff --git a/apps/app-repository/apps-unarchived/pihole-0.0.1/templates/pihole.yaml b/apps/app-repository/apps-unarchived/pihole-0.0.1/templates/pihole.yaml
new file mode 100644
index 0000000..5b9d963
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/pihole-0.0.1/templates/pihole.yaml
@@ -0,0 +1,52 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: pihole
+  namespace: {{ .Release.Namespace }}
+spec:
+  chart:
+    spec:
+      chart: charts/pihole
+      sourceRef:
+        kind: GitRepository
+        name: pcloud
+        namespace: {{ .Global.Id }}
+  interval: 1m0s
+  values:
+    domain: {{ .Values.Subdomain}}.{{ .Global.PrivateDomain }}
+    pihole:
+      fullnameOverride: pihole
+      image:
+        repository: "pihole/pihole"
+        tag: v5.8.1
+      persistentVolumeClaim:
+        enabled: true
+        size: 5Gi
+      adminPassword: admin
+      ingress:
+        enabled: false
+      serviceDhcp:
+        enabled: false
+      serviceDns:
+        type: ClusterIP
+      serviceWeb:
+        type: ClusterIP
+        http:
+          enabled: true
+        https:
+          enabled: false
+      virtualHost: {{ .Values.Subdomain }}.{{ .Global.PrivateDomain }}
+      resources:
+        requests:
+          cpu: "250m"
+          memory: "100M"
+        limits:
+          cpu: "500m"
+          memory: "250M"
+    oauth2:
+      secretName: oauth2-secret
+      configName: oauth2-proxy
+      hydraAdmin: http://hydra-admin.{{ .Global.NamespacePrefix }}core-auth.svc
+    hydraPublic: https://hydra.{{ .Global.Domain }}
+    profileUrl: https://accounts-ui.{{ .Global.Domain }}
+    ingressClassName: {{ .Global.Id }}-ingress-private
diff --git a/apps/app-repository/apps-unarchived/rpuppy-0.0.1/Chart.yaml b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/Chart.yaml
new file mode 100644
index 0000000..19a71f5
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/Chart.yaml
@@ -0,0 +1,7 @@
+name: rpuppy
+version: 0.0.1
+description: Delights users with randomly generate puppy pictures. Can be configured to be reachable only from private network or publicly.
+namespaces:
+- rpuppy
+icon: |
+  <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 256 256"><path fill="currentColor" d="M100 140a8 8 0 1 1-8-8a8 8 0 0 1 8 8Zm64 8a8 8 0 1 0-8-8a8 8 0 0 0 8 8Zm64.94-9.11a12.12 12.12 0 0 1-5 1.11a11.83 11.83 0 0 1-9.35-4.62l-2.59-3.29V184a36 36 0 0 1-36 36H80a36 36 0 0 1-36-36v-51.91l-2.53 3.27A11.88 11.88 0 0 1 32.1 140a12.08 12.08 0 0 1-5-1.11a11.82 11.82 0 0 1-6.84-13.14l16.42-88a12 12 0 0 1 14.7-9.43h.16L104.58 44h46.84l53.08-15.6h.16a12 12 0 0 1 14.7 9.43l16.42 88a11.81 11.81 0 0 1-6.84 13.06ZM97.25 50.18L49.34 36.1a4.18 4.18 0 0 0-.92-.1a4 4 0 0 0-3.92 3.26l-16.42 88a4 4 0 0 0 7.08 3.22ZM204 121.75L150 52h-44l-54 69.75V184a28 28 0 0 0 28 28h44v-18.34l-14.83-14.83a4 4 0 0 1 5.66-5.66L128 186.34l13.17-13.17a4 4 0 0 1 5.66 5.66L132 193.66V212h44a28 28 0 0 0 28-28Zm23.92 5.48l-16.42-88a4 4 0 0 0-4.84-3.16l-47.91 14.11l62.11 80.28a4 4 0 0 0 7.06-3.23Z"/></svg>
diff --git a/apps/app-repository/apps-unarchived/rpuppy-0.0.1/README.md b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/README.md
new file mode 100644
index 0000000..ddd992f
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/README.md
@@ -0,0 +1 @@
+rpuppy application will be installed on {{ .Values.Network.Name }} network and be accessible to any user on https://{{ .Values.Subdomain }}.{{ .Values.Network.Domain }}
diff --git a/apps/app-repository/apps-unarchived/rpuppy-0.0.1/schema.json b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/schema.json
new file mode 100644
index 0000000..d6e0d0d
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/schema.json
@@ -0,0 +1,8 @@
+{
+  "type": "object",
+  "properties": {
+    "Network": { "type": "string", "default": "Public", "role": "network" },
+    "Subdomain": { "type": "string", "default": "woof" }
+  },
+  "additionalProperties": false
+}
diff --git a/apps/app-repository/apps-unarchived/rpuppy-0.0.1/templates/rpuppy.yaml b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/templates/rpuppy.yaml
new file mode 100644
index 0000000..10fac11
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/rpuppy-0.0.1/templates/rpuppy.yaml
@@ -0,0 +1,18 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: rpuppy
+  namespace: {{ .Release.Namespace }}
+spec:
+  chart:
+    spec:
+      chart: charts/rpuppy
+      sourceRef:
+        kind: GitRepository
+        name: pcloud
+        namespace: {{ .Global.Id }}
+  interval: 1m0s
+  values:
+    ingressClassName: {{ .Values.Network.IngressClass }}
+    certificateIssuer: {{ .Values.Network.CertificateIssuer }}
+    domain: {{ .Values.Subdomain }}.{{ .Values.Network.Domain }}
diff --git a/apps/app-repository/apps-unarchived/soft-serve-0.0.1/Chart.yaml b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/Chart.yaml
new file mode 100644
index 0000000..e85ce27
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/Chart.yaml
@@ -0,0 +1,7 @@
+name: soft-serve
+version: 0.0.1
+description: A tasty, self-hostable Git server for the command line. 🍦
+namespaces:
+- soft-serve
+icon: |
+  <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 48 48"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"><path stroke-linejoin="round" d="M15.34 22.5L21 37l3 6l3-6l5.66-14.5"/><path d="M19 32h10"/><path stroke-linejoin="round" d="M24 3c-6 0-8 6-8 6s-6 2-6 7s5 7 5 7s3.5-2 9-2s9 2 9 2s5-2 5-7s-6-7-6-7s-2-6-8-6Z"/></g></svg>
diff --git a/apps/app-repository/apps-unarchived/soft-serve-0.0.1/README.md b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/README.md
new file mode 100644
index 0000000..28e43a8
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/README.md
@@ -0,0 +1 @@
+Soft-Serve with TCP ingress
diff --git a/apps/app-repository/apps-unarchived/soft-serve-0.0.1/schema.json b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/schema.json
new file mode 100644
index 0000000..8142797
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/schema.json
@@ -0,0 +1,10 @@
+{
+  "type": "object",
+  "properties": {
+    "Network": { "type": "string", "default": "Public", "role": "network" },
+    "Subdomain": { "type": "string", "default": "softserve" },
+	"AdminKey": { "type": "string" },
+	"SourcePort": { "type": "string", "default": "0" }
+  },
+  "additionalProperties": false
+}
diff --git a/apps/app-repository/apps-unarchived/soft-serve-0.0.1/templates/soft-serve.yaml b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/templates/soft-serve.yaml
new file mode 100644
index 0000000..529986b
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/soft-serve-0.0.1/templates/soft-serve.yaml
@@ -0,0 +1,28 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: soft-serve
+  namespace: {{ .Release.Namespace }}
+spec:
+  chart:
+    spec:
+      chart: charts/soft-serve
+      sourceRef:
+        kind: GitRepository
+        name: pcloud
+        namespace: {{ .Global.Id }}
+  interval: 1m0s
+  values:
+    reservedIP: ""
+    addressPool: {{ .Global.Id }}
+    adminKey: {{ .Values.AdminKey }}
+    {{- if .Values.Network }}
+    ingress:
+      enabled: true # TODO(giolekva): make it configurable
+      ingressClassName: {{ .Values.Network.IngressClass }}
+      certificateIssuer: {{ .Values.Network.CertificateIssuer }}
+      domain: {{ .Values.Subdomain }}.{{ .Values.Network.Domain }}
+      {{- if .Values.SourcePort }}
+      sourcePort: {{ .Values.SourcePort }}
+      {{- end }}
+    {{- end }}
diff --git a/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/Chart.yaml b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/Chart.yaml
new file mode 100644
index 0000000..5881ee4
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/Chart.yaml
@@ -0,0 +1,7 @@
+name: vaultwarden
+version: 0.0.1
+description: Open source implementation of Bitwarden password manager. Can be used with official client applications.
+namespaces:
+- vaultwarden
+icon: |
+  <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 48 48"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M35.38 25.63V9.37H24v28.87a34.93 34.93 0 0 0 5.41-3.48q6-4.66 6-9.14Zm4.87-19.5v19.5A11.58 11.58 0 0 1 39.4 30a16.22 16.22 0 0 1-2.11 3.81a23.52 23.52 0 0 1-3 3.24a34.87 34.87 0 0 1-3.22 2.62c-1 .69-2 1.35-3.07 2s-1.82 1-2.27 1.26l-1.08.51a1.53 1.53 0 0 1-1.32 0l-1.08-.51c-.45-.22-1.21-.64-2.27-1.26s-2.09-1.27-3.07-2A34.87 34.87 0 0 1 13.7 37a23.52 23.52 0 0 1-3-3.24A16.22 16.22 0 0 1 8.6 30a11.58 11.58 0 0 1-.85-4.32V6.13A1.64 1.64 0 0 1 9.38 4.5h29.24a1.64 1.64 0 0 1 1.63 1.63Z"/></svg>
diff --git a/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/README.md b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/README.md
new file mode 100644
index 0000000..ab9d05d
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/README.md
@@ -0,0 +1 @@
+Installs vaultwarden on private network accessible at https://{{ .Values.Subdomain }}.{{ .Global.PrivateDomain }}
diff --git a/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/schema.json b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/schema.json
new file mode 100644
index 0000000..88c96cb
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/schema.json
@@ -0,0 +1,7 @@
+{
+  "type": "object",
+  "properties": {
+    "Subdomain": { "type": "string", "default": "vaultwarden" }
+  },
+  "additionalProperties": false
+}
diff --git a/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/templates/vaultwarden.yaml b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/templates/vaultwarden.yaml
new file mode 100644
index 0000000..4419776
--- /dev/null
+++ b/apps/app-repository/apps-unarchived/vaultwarden-0.0.1/templates/vaultwarden.yaml
@@ -0,0 +1,24 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: vaultwarden
+  namespace: {{ .Release.Namespace }}
+spec:
+  chart:
+    spec:
+      chart: charts/vaultwarden
+      sourceRef:
+        kind: GitRepository
+        name: pcloud
+        namespace: {{ .Global.Id }}
+  interval: 1m0s
+  values:
+    image:
+      repository: vaultwarden/server
+      tag: 1.28.1
+      pullPolicy: IfNotPresent
+    storage:
+      size: 3Gi
+    domain: {{ .Values.Subdomain }}.{{ .Global.PrivateDomain }}
+    certificateIssuer: {{ .Global.Id }}-private
+    ingressClassName: {{ .Global.Id }}-ingress-private
diff --git a/apps/app-repository/apps/pihole-0.0.1.tar.gz b/apps/app-repository/apps/pihole-0.0.1.tar.gz
index 57a1957..01ea8ac 100644
--- a/apps/app-repository/apps/pihole-0.0.1.tar.gz
+++ b/apps/app-repository/apps/pihole-0.0.1.tar.gz
Binary files differ
diff --git a/apps/app-repository/apps/rpuppy-0.0.1.tar.gz b/apps/app-repository/apps/rpuppy-0.0.1.tar.gz
index e00d21f..fe4ac27 100644
--- a/apps/app-repository/apps/rpuppy-0.0.1.tar.gz
+++ b/apps/app-repository/apps/rpuppy-0.0.1.tar.gz
Binary files differ
diff --git a/apps/app-repository/apps/soft-serve-0.0.1.tar.gz b/apps/app-repository/apps/soft-serve-0.0.1.tar.gz
index 0b238f1..ffa78e1 100644
--- a/apps/app-repository/apps/soft-serve-0.0.1.tar.gz
+++ b/apps/app-repository/apps/soft-serve-0.0.1.tar.gz
Binary files differ
diff --git a/apps/app-repository/apps/vaultwarden-0.0.1.tar.gz b/apps/app-repository/apps/vaultwarden-0.0.1.tar.gz
index 783e6b2..2b241bf 100644
--- a/apps/app-repository/apps/vaultwarden-0.0.1.tar.gz
+++ b/apps/app-repository/apps/vaultwarden-0.0.1.tar.gz
Binary files differ
diff --git a/apps/app-repository/archive.sh b/apps/app-repository/archive.sh
new file mode 100755
index 0000000..a7f868a
--- /dev/null
+++ b/apps/app-repository/archive.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+cd apps-unarchived/pihole-0.0.1
+tar -czvf pihole-0.0.1.tar.gz *.md *.json *.yaml templates
+cd ../../
+
+cd apps-unarchived/rpuppy-0.0.1
+tar -czvf rpuppy-0.0.1.tar.gz *.md *.json *.yaml templates
+cd ../../
+
+cd apps-unarchived/soft-serve-0.0.1
+tar -czvf soft-serve-0.0.1.tar.gz *.md *.json *.yaml templates
+cd ../../
+
+cd apps-unarchived/vaultwarden-0.0.1
+tar -czvf vaultwarden-0.0.1.tar.gz *.md *.json *.yaml templates
+cd ../../
+
+mv apps-unarchived/*/*.tar.gz apps