update
diff --git a/charts/appmanager/templates/install.yaml b/charts/appmanager/templates/install.yaml
index 8cfb306..f711028 100644
--- a/charts/appmanager/templates/install.yaml
+++ b/charts/appmanager/templates/install.yaml
@@ -53,8 +53,8 @@
   selector:
     app: appmanager
   ports:
-  - name: {{ .Values.portName }}
-    port: 80
+  - name: http
+    port: {{ .Values.port }}
     targetPort: http
     protocol: TCP
 ---
@@ -83,7 +83,7 @@
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         ports:
         - name: http
-          containerPort: 8080
+          containerPort: {{ .Values.port }}
           protocol: TCP
         command:
         - pcloud-installer
@@ -93,7 +93,7 @@
         - --headscale-api-addr={{ .Values.headscaleAPIAddr }}
         - --dns-api-addr={{ .Values.dnsAPIAddr }}
         - --cluster-proxy-config-path={{ .Values.clusterProxyConfigPath }}
-        - --port=8080
+        - --port={{ .Values.port }}
         {{- if .Values.appRepoAddr }}
         - --app-repo-addr={{ .Values.appRepoAddr }}
         {{- end}}
diff --git a/charts/appmanager/values.yaml b/charts/appmanager/values.yaml
index 672d2bb..dc034bc 100644
--- a/charts/appmanager/values.yaml
+++ b/charts/appmanager/values.yaml
@@ -10,7 +10,7 @@
   certificateIssuer: example-private
 clusterRoleName: example-welcome
 appRepoAddr: ""
-portName: http
+port: 8080
 headscaleAPIAddr: ""
 dnsAPIAddr: ""
 clusterProxyConfigPath: ""
diff --git a/charts/etherpad/templates/install.yaml b/charts/etherpad/templates/install.yaml
index a7d924b..2f46047 100644
--- a/charts/etherpad/templates/install.yaml
+++ b/charts/etherpad/templates/install.yaml
@@ -8,9 +8,9 @@
   selector:
     app: etherpad
   ports:
-  - name: {{ .Values.portName }}
-    port: 80
-    targetPort: {{ .Values.portName }}
+  - name: http
+    port: {{ .Values.port }}
+    targetPort: http
     protocol: TCP
 ---
 apiVersion: apps/v1
@@ -37,8 +37,8 @@
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         ports:
-        - name: {{ .Values.portName }}
-          containerPort: 8080
+        - name: http
+          containerPort: {{ .Values.port }}
           protocol: TCP
         env:
         - name: "PORT"
diff --git a/charts/etherpad/values.yaml b/charts/etherpad/values.yaml
index ab5d5eb..6211b19 100644
--- a/charts/etherpad/values.yaml
+++ b/charts/etherpad/values.yaml
@@ -2,7 +2,7 @@
   repository: etherpad/etherpad
   tag: latest
   pullPolicy: Always
-portName: http
+port: 8080
 persistentVolumeClaimName: "data"
 db:
   type: ""
diff --git a/charts/launcher/templates/install.yaml b/charts/launcher/templates/install.yaml
index c2b3330..92d0e72 100644
--- a/charts/launcher/templates/install.yaml
+++ b/charts/launcher/templates/install.yaml
@@ -8,9 +8,9 @@
   selector:
     app: launcher
   ports:
-    - name: {{ .Values.portName }}
+    - name: http
       protocol: TCP
-      port: 80
+      port: {{ .Values.port }}
       targetPort: http
 ---
 apiVersion: v1
@@ -45,12 +45,12 @@
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         ports:
         - name: http
-          containerPort: 8080
+          containerPort: {{ .Values.port }}
           protocol: TCP
         command:
         - pcloud-installer
         - launcher
-        - --port=8080
+        - --port={{ .Values.port }}
         - --logout-url={{ .Values.logoutUrl }}
         - --ssh-key=/pcloud/ssh-key/private
         - --repo-addr={{ .Values.repoAddr }}
diff --git a/charts/launcher/values.yaml b/charts/launcher/values.yaml
index fedfed5..abe73ef 100644
--- a/charts/launcher/values.yaml
+++ b/charts/launcher/values.yaml
@@ -2,7 +2,7 @@
   repository: giolekva/launcher
   tag: latest
   pullPolicy: Always
-portName: http
+port: 8080
 appRepoAddr: ""
 logoutUrl: logout.example.com
 repoAddr: 192.168.0.11
diff --git a/charts/memberships/templates/install.yaml b/charts/memberships/templates/install.yaml
index dee0f59..1462b48 100644
--- a/charts/memberships/templates/install.yaml
+++ b/charts/memberships/templates/install.yaml
@@ -8,9 +8,9 @@
   selector:
     app: memberships
   ports:
-    - name: {{ .Values.portName }}
+    - name: ui
       protocol: TCP
-      port: 80
+      port: {{ .Values.port }}
       targetPort: ui
 ---
 apiVersion: v1
@@ -23,9 +23,9 @@
   selector:
     app: memberships
   ports:
-    - name: {{ .Values.portName }}
+    - name: api
       protocol: TCP
-      port: 80
+      port: {{ .Values.apiPort }}
       targetPort: api
 ---
 apiVersion: apps/v1
@@ -48,15 +48,15 @@
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         ports:
         - name: ui
-          containerPort: 8080
+          containerPort: {{ .Values.port }}
           protocol: TCP
         - name: api
-          containerPort: 8081
+          containerPort: {{ .Values.apiPort }}
           protocol: TCP
         command:
         - /usr/bin/memberships
-        - --port=8080
-        - --api-port=8081
+        - --port={{ .Values.port }}
+        - --api-port={{ .Values.apiPort }}
         - --db-path=/data/memberships.db
         volumeMounts:
         - name: memberships
diff --git a/charts/memberships/values.yaml b/charts/memberships/values.yaml
index 7dab384..3459f6c 100644
--- a/charts/memberships/values.yaml
+++ b/charts/memberships/values.yaml
@@ -3,4 +3,5 @@
   tag: latest
   pullPolicy: Always
 volumeClaimName: "data"
-portName: http
+port: 8080
+apiPort: 8081
diff --git a/charts/rpuppy/templates/install.yaml b/charts/rpuppy/templates/install.yaml
index 1d70bd5..de4afc3 100644
--- a/charts/rpuppy/templates/install.yaml
+++ b/charts/rpuppy/templates/install.yaml
@@ -8,9 +8,9 @@
   selector:
     app: rpuppy
   ports:
-  - name: {{ .Values.portName }}
-    port: 80
-    targetPort: {{ .Values.portName }}
+  - name: http
+    port: {{ .Values.port }}
+    targetPort: http
     protocol: TCP
 ---
 apiVersion: apps/v1
@@ -33,12 +33,12 @@
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         ports:
-        - name: {{ .Values.portName }}
-          containerPort: 8080
+        - name: http
+          containerPort: {{ .Values.port }}
           protocol: TCP
         command:
         - /usr/bin/rpuppy
-        - --port=8080
+        - --port={{ .Values.port }}
         resources:
           requests:
             memory: "10Mi"
diff --git a/charts/rpuppy/values.yaml b/charts/rpuppy/values.yaml
index 0830d1e..a7bee0c 100644
--- a/charts/rpuppy/values.yaml
+++ b/charts/rpuppy/values.yaml
@@ -2,4 +2,4 @@
   repository: giolekva/rpuppy
   tag: latest
   pullPolicy: Always
-portName: http
+port: 8080
diff --git a/charts/soft-serve/templates/service.yaml b/charts/soft-serve/templates/service.yaml
index 9e54b46..9d64333 100644
--- a/charts/soft-serve/templates/service.yaml
+++ b/charts/soft-serve/templates/service.yaml
@@ -18,9 +18,9 @@
     app: soft-serve
   ports:
   - name: ssh
-    port: {{ .Values.port }}
+    port: {{ .Values.sshPort }}
     protocol: TCP
   - name: http
-    port: 80 # TODO(gio): make configurable
+    port: {{ .Values.httpPort }}
     targetPort: http
     protocol: TCP
diff --git a/charts/soft-serve/templates/stateful-set.yaml b/charts/soft-serve/templates/stateful-set.yaml
index 5cf32c6..f9152b2 100644
--- a/charts/soft-serve/templates/stateful-set.yaml
+++ b/charts/soft-serve/templates/stateful-set.yaml
@@ -29,7 +29,7 @@
         imagePullPolicy: {{ .Values.image.pullPolicy}}
         env:
         - name: SOFT_SERVE_SSH_LISTEN_ADDR
-          value: ":{{ .Values.port }}"
+          value: ":{{ .Values.sshPort }}"
         - name: SOFT_SERVE_SSH_PUBLIC_URL
           value: "ssh://{{ .Values.host }}:{{ .Values.sshPublicPort }}"
         - name: SOFT_SERVE_INITIAL_ADMIN_KEYS
@@ -42,15 +42,15 @@
         - name: SOFT_SERVE_DATA_PATH
           value: /var/lib/soft-serve/repos
         - name: SOFT_SERVE_HTTP_LISTEN_ADDR
-          value: ":80"
+          value: ":{{.Values.httpPort}}"
         - name: SOFT_SERVE_HTTP_PUBLIC_URL
           value: "http://{{ .Values.host }}"
         ports:
         - name: ssh
-          containerPort: {{ .Values.port }}
+          containerPort: {{ .Values.sshPort }}
           protocol: TCP
         - name: http
-          containerPort: 80
+          containerPort: {{ .Values.httpPort }}
           protocol: TCP
         volumeMounts:
         - name: data
diff --git a/charts/soft-serve/values.yaml b/charts/soft-serve/values.yaml
index 5538d5c..9f82ac8 100644
--- a/charts/soft-serve/values.yaml
+++ b/charts/soft-serve/values.yaml
@@ -4,7 +4,8 @@
   pullPolicy: IfNotPresent
 persistentVolumeClaimName: ""
 host: ""
-port: 22
+httpPort: 8080
+sshPort: 22
 sshPublicPort: 22
 privateKey: ""
 publicKey: ""
diff --git a/charts/url-shortener/templates/install.yaml b/charts/url-shortener/templates/install.yaml
index d06ccdd..469bcc8 100644
--- a/charts/url-shortener/templates/install.yaml
+++ b/charts/url-shortener/templates/install.yaml
@@ -8,10 +8,10 @@
   selector:
     app: url-shortener
   ports:
-    - name: {{ .Values.portName }}
+    - name: http
       protocol: TCP
-      port: 80
-      targetPort: {{ .Values.portName }}
+      port: {{ .Values.port }}
+      targetPort: http
 ---
 apiVersion: apps/v1
 kind: Deployment
@@ -32,12 +32,12 @@
       - name: url-shortener
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         ports:
-        - name: {{ .Values.portName }}
-          containerPort: 8080
+        - name: http
+          containerPort: {{ .Values.port }}
           protocol: TCP
         command:
         - url-shortener
-        - --port=8080
+        - --port={{ .Values.port }}
         - --db-path=/data/urls.db
         - --require-auth={{ .Values.requireAuth }}
         volumeMounts:
diff --git a/charts/url-shortener/values.yaml b/charts/url-shortener/values.yaml
index c9dd02e..8027160 100644
--- a/charts/url-shortener/values.yaml
+++ b/charts/url-shortener/values.yaml
@@ -3,5 +3,5 @@
   tag: latest
   pullPolicy: Always
 persistentVolumeClaimName: "data"
-portName: http
+port: 8080
 requireAuth: false
diff --git a/charts/vaultwarden/templates/install.yaml b/charts/vaultwarden/templates/install.yaml
index 010a067..2a69d12 100644
--- a/charts/vaultwarden/templates/install.yaml
+++ b/charts/vaultwarden/templates/install.yaml
@@ -23,14 +23,14 @@
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         env:
         - name: ROCKET_PORT
-          value: "80"
+          value: "{{.Values.port}}"
         - name: DISABLE_ADMIN_TOKEN
           value: "true"
         - name: DOMAIN
           value: https://{{ .Values.domain }}
         ports:
-        - name: {{ .Values.httpPortName }}
-          containerPort: 80
+        - name: http
+          containerPort: {{ .Values.port }}
           protocol: TCP
         volumeMounts:
         - name: data
@@ -47,6 +47,6 @@
     app: server
   ports:
   - name: http
-    port: 80
-    targetPort: {{ .Values.httpPortName }}
+    port: {{ .Values.port }}
+    targetPort: http
     protocol: TCP
diff --git a/charts/vaultwarden/values.yaml b/charts/vaultwarden/values.yaml
index d432172..4aa4c74 100644
--- a/charts/vaultwarden/values.yaml
+++ b/charts/vaultwarden/values.yaml
@@ -4,4 +4,4 @@
   pullPolicy: IfNotPresent
 domain: bitwarden.example.com
 persistentVolumeClaimName: "data"
-httpPortName: "http"
+port: 8080