diff --git a/charts/incubator/strongswan/.helmignore b/charts/incubator/strongswan/.helmignore
new file mode 100644
index 00000000..4379e2b3
--- /dev/null
+++ b/charts/incubator/strongswan/.helmignore
@@ -0,0 +1,26 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+# OWNERS file for Kubernetes
+OWNERS
+# helm-docs templates
+*.gotmpl
diff --git a/charts/incubator/strongswan/Chart.yaml b/charts/incubator/strongswan/Chart.yaml
new file mode 100644
index 00000000..bedcc0b0
--- /dev/null
+++ b/charts/incubator/strongswan/Chart.yaml
@@ -0,0 +1,23 @@
+apiVersion: v2
+appVersion: 1.0.0
+description: strongSwan – the OpenSource IPsec-based VPN Solution
+name: strongswan
+version: 0.1.0
+kubeVersion: ">=1.16.0-0"
+keywords:
+- strongswan
+home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/strongswan
+icon: https://strongswan.org/images/strongswan_neu.png
+sources:
+- https://github.com/reitermarkus/strongswan
+maintainers:
+- name: reitermarkus
+  email: me@reitermark.us
+dependencies:
+- name: common
+  repository: https://library-charts.k8s-at-home.com
+  version: 4.3.0
+annotations:
+  artifacthub.io/changes: |
+    - kind: added
+      description: Initial version
diff --git a/charts/incubator/strongswan/README.md b/charts/incubator/strongswan/README.md
new file mode 100644
index 00000000..cb7b074f
--- /dev/null
+++ b/charts/incubator/strongswan/README.md
@@ -0,0 +1,111 @@
+# strongswan
+
+![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
+
+strongswan helm package
+
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+* <https://github.com/strongswan/strongswan-docker>
+
+## Requirements
+
+Kubernetes: `>=1.16.0-0`
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://library-charts.k8s-at-home.com | common | 4.0.0 |
+
+## TL;DR
+
+```console
+helm repo add k8s-at-home https://k8s-at-home.com/charts/
+helm repo update
+helm install strongswan k8s-at-home/strongswan
+```
+
+## Installing the Chart
+
+To install the chart with the release name `strongswan`
+
+```console
+helm install strongswan k8s-at-home/strongswan
+```
+
+## Uninstalling the Chart
+
+To uninstall the `strongswan` deployment
+
+```console
+helm uninstall strongswan
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+
+## Configuration
+
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
+
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install strongswan \
+  --set env.TZ="America/New York" \
+    k8s-at-home/strongswan
+```
+
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install strongswan k8s-at-home/strongswan -f values.yaml
+```
+
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| env | object | See below | environment variables. See more environment variables in the [strongswan documentation](https://strongswan.org/docs). |
+| env.TZ | string | `"UTC"` | Set the container timezone |
+| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
+| image.repository | string | `"strongswan/strongswan"` | image repository |
+| image.tag | string | `"1.0.0"` | image tag |
+| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
+| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
+| service | object | See values.yaml | Configures service settings for the chart. |
+
+## Changelog
+
+### Version 1.0.0
+
+#### Added
+
+- Initial version
+
+#### Changed
+
+N/A
+
+#### Fixed
+
+N/A
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
diff --git a/charts/incubator/strongswan/README_CONFIG.md.gotmpl b/charts/incubator/strongswan/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/incubator/strongswan/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/incubator/strongswan/ci/ct-values.yaml b/charts/incubator/strongswan/ci/ct-values.yaml
new file mode 100644
index 00000000..683ed89e
--- /dev/null
+++ b/charts/incubator/strongswan/ci/ct-values.yaml
@@ -0,0 +1,5 @@
+env:
+  VPN_NAME: Example VPN
+  WIFI_SSID: Example WiFi
+  VPN_DOMAIN: vpn.example.org
+  VPN_P12_PASSWORD: password
diff --git a/charts/incubator/strongswan/templates/NOTES.txt b/charts/incubator/strongswan/templates/NOTES.txt
new file mode 100644
index 00000000..90f7b653
--- /dev/null
+++ b/charts/incubator/strongswan/templates/NOTES.txt
@@ -0,0 +1 @@
+{{- include "common.notes.defaultNotes" . -}}
diff --git a/charts/incubator/strongswan/templates/common.yaml b/charts/incubator/strongswan/templates/common.yaml
new file mode 100644
index 00000000..a6613c2c
--- /dev/null
+++ b/charts/incubator/strongswan/templates/common.yaml
@@ -0,0 +1 @@
+{{ include "common.all" . }}
diff --git a/charts/incubator/strongswan/values.yaml b/charts/incubator/strongswan/values.yaml
new file mode 100644
index 00000000..191c7d21
--- /dev/null
+++ b/charts/incubator/strongswan/values.yaml
@@ -0,0 +1,86 @@
+#
+# IMPORTANT NOTE
+#
+# This chart inherits from our common library chart. You can check the default values/options here:
+# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
+#
+
+image:
+  # -- image repository
+  repository: ghcr.io/reitermarkus/strongswan
+  # -- image tag
+  tag: v1.0.0
+  # -- image pull policy
+  pullPolicy: IfNotPresent
+
+# -- environment variables. See more environment variables in the [strongswan documentation](https://github.com/reitermarkus/strongswan).
+# @default -- See below
+env:
+  # -- Set the container timezone
+  TZ: UTC
+  # VPN_NAME: Example VPN # VPN display name.
+  # WIFI_SSID: Example WiFi # Disable VPN when connected to this WiFi network.
+  # VPN_DOMAIN: vpn.example.org # FQDN for accessing the VPN.
+  # VPN_P12_PASSWORD:
+  #   valueFrom:
+  #     secretKeyRef:
+  #       name: strongswan-credentials
+  #       key: p12-password
+
+# -- Configures service settings for the chart.
+# @default -- See values.yaml
+service:
+  main:
+    ports:
+      http:
+        enabled: false
+        primary: false
+      isakmp:
+        enabled: true
+        port: 500
+        targetPort: 500
+        protocol: UDP
+      ike:
+        enabled: true
+        port: 4500
+        targetPort: 4500
+        protocol: UDP
+
+# -- Security contexts required for container.
+# @default -- See values.yaml
+securityContext:
+  capabilities:
+    add:
+      - NET_ADMIN
+
+hostNetwork: true
+dnsPolicy: ClusterFirstWithHostNet
+
+# -- Configures the probes for the main Pod.
+# @default -- See values.yaml
+probes:
+  liveness:
+    enabled: true
+    custom: true
+    spec:
+      exec:
+        command: [ipsec, status]
+  readiness:
+    enabled: true
+    custom: true
+    spec:
+      exec:
+        command: [ipsec, status]
+  startup:
+    enabled: true
+    custom: true
+    spec:
+      exec:
+        command: [ipsec, status]
+
+# -- Configure persistence settings for the chart under this key.
+# @default -- See values.yaml
+persistence:
+  config:
+    enabled: false
+    mountPath: /etc/ipsec.d