diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d63849b9c6208bcc943c104eb1cb926212ea0f0..600f8fcac4f3037ebd189feb83874501e82b37c5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -42,7 +42,7 @@ helm-package:
   artifacts:
     paths:
       - vdo-ninja-0.1.2.tgz
-      - ti-coder-0.2.6.tgz
+      - ti-coder-0.3.0.tgz
       - ti-lamp-0.1.2.tgz
     expire_in: 1 hour
 
@@ -58,7 +58,7 @@ helm-publish:
   image: curlimages/curl:latest
   script:
     - 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@vdo-ninja-0.1.2.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts"'
-    - 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@ti-coder-0.2.6.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts"'
+    - 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@ti-coder-0.3.0.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts"'
     - 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@ti-lamp-0.1.2.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts"'
 
 stages:
diff --git a/helm/ti-coder/Chart.yaml b/helm/ti-coder/Chart.yaml
index 619b0d02ffc6fc543162c0a154783bd75b5b09c1..e2c305fdc93df48f790b02c69d23e88e6b9e0d94 100644
--- a/helm/ti-coder/Chart.yaml
+++ b/helm/ti-coder/Chart.yaml
@@ -15,12 +15,12 @@ type: application
 # This is the chart version. This version number should be incremented each time you make changes
 # to the chart and its templates, including the app version.
 # Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 0.2.6
+version: 0.3.0
 # This is the version number of the application being deployed. This version number should be
 # incremented each time you make changes to the application. Versions are not expected to
 # follow Semantic Versioning. They should reflect the version the application is using.
 # It is recommended to use it with quotes.
-appVersion: "2.15.3"
+appVersion: "2.16.1"
 
 dependencies:
   - name: postgresql
@@ -28,5 +28,5 @@ dependencies:
     repository: "oci://registry-1.docker.io/bitnamicharts"
 
   - name: coder
-    version: "2.15.3"
+    version: "2.16.1"
     repository: "https://helm.coder.com/v2"
diff --git a/helm/ti-coder/templates/NOTES.txt b/helm/ti-coder/templates/NOTES.txt
index 63f8e599eae36e5881a6be001da96314c5116b26..00d983518f1053a3d5d919f073935cb19723d783 100644
--- a/helm/ti-coder/templates/NOTES.txt
+++ b/helm/ti-coder/templates/NOTES.txt
@@ -1,3 +1,3 @@
-Installed coder in version 2.15.3 and Postgres in version 16.3.
+Installed coder in version 2.16.1 and Postgres in version 16.3.
 
 Das Passwort für die Datenbank wurde im Secret "coder-postgresql" abgelegt.
\ No newline at end of file
diff --git a/helm/ti-coder/templates/ssh.yaml b/helm/ti-coder/templates/ssh.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0f861b6e015ede8ae3cee6f5537255ec59d6e75f
--- /dev/null
+++ b/helm/ti-coder/templates/ssh.yaml
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: coder-ssh-key
+  labels:
+    app: coder
+
+data:
+  id_ed25519: {{ .Values.coder.id_ed25519 | b64enc }}
diff --git a/helm/ti-coder/values.yaml b/helm/ti-coder/values.yaml
index 602d1087622d1bcbdec66e0d2bc0e9c1fb4e7f97..623705efb8c1673dba6c69cb94d0ebb7826f7720 100644
--- a/helm/ti-coder/values.yaml
+++ b/helm/ti-coder/values.yaml
@@ -21,6 +21,8 @@ postgresql:
         cpu: "300m"
 
 coder:
+  id_ed25519: ""
+
   coder:
     env:
       - name: CODER_PG_CONNECTION_URL
@@ -41,4 +43,4 @@ coder:
         {
           nginx.ingress.kubernetes.io/proxy-body-size: "10g"
         }
-    version: "2.15.1"
+    version: "2.16.1"