diff --git a/charts/jackett/.helmignore b/charts/jackett/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/charts/jackett/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/charts/jackett/Chart.yaml b/charts/jackett/Chart.yaml
new file mode 100644
index 0000000..db9b6ae
--- /dev/null
+++ b/charts/jackett/Chart.yaml
@@ -0,0 +1,21 @@
+apiVersion: v2
+type: application
+name: jackett
+description: "Jackett works as a proxy server: it translates queries from apps into tracker-site-specific http queries."
+version: 1.0.0
+appVersion: "0.21.290"
+maintainers:
+- name: QJOLY
+ email: github@thoughtless.eu
+kubeVersion: ">= 1.18"
+home: https://radarr.video/
+keywords:
+ - Jackett
+ - Plex
+ - Series
+sources:
+ - https://github.com/Jackett/Jackett
+dependencies:
+ - name: common
+ repository: https://qjoly.github.io/helm-charts/
+ version: v0.1.8
diff --git a/charts/jackett/README.md b/charts/jackett/README.md
new file mode 100644
index 0000000..9a8fe68
--- /dev/null
+++ b/charts/jackett/README.md
@@ -0,0 +1,100 @@
+# jackett
+
+![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.21.290](https://img.shields.io/badge/AppVersion-0.21.290-informational?style=flat-square)
+
+Jackett works as a proxy server: it translates queries from apps into tracker-site-specific http queries.
+
+**Homepage:**
+
+## Maintainers
+
+| Name | Email | Url |
+| ---- | ------ | --- |
+| QJOLY | | |
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>= 1.18`
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://qjoly.github.io/helm-charts/ | common | v0.1.8 |
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| common.app.containerPort | int | `9117` | |
+| common.app.servicePort | int | `80` | |
+| common.deployment.cpuLimit | string | `nil` | |
+| common.deployment.cpuRequest | string | `nil` | |
+| common.deployment.memoryLimit | string | `nil` | |
+| common.deployment.memoryRequest | string | `nil` | |
+| common.deployment.strategy.rollingUpdate.maxSurge | string | `"25%"` | |
+| common.deployment.strategy.rollingUpdate.maxUnavailable | string | `"25%"` | |
+| common.deployment.strategy.type | string | `"RollingUpdate"` | |
+| common.hpa.avgCpuUtilization | int | `50` | |
+| common.hpa.enabled | bool | `false` | |
+| common.hpa.maxReplicas | int | `2` | |
+| common.hpa.minReplicas | int | `1` | |
+| common.image.name | string | `"linuxserver/jackett"` | |
+| common.image.pullPolicy | string | `"Always"` | |
+| common.image.repository.isPrivate | bool | `false` | |
+| common.image.repository.name | string | `nil` | |
+| common.image.repository.secretName | string | `nil` | |
+| common.image.tag | string | `"0.21.290"` | |
+| common.ingress.certResolver | string | `"letsencrypt"` | |
+| common.ingress.enabled | bool | `false` | |
+| common.ingress.entrypoint | string | `"websecure"` | |
+| common.ingress.hostName | string | `"jackett.thoughtless.eu"` | |
+| common.ingress.ingressClassName | string | `"istio"` | |
+| common.ingress.isIngressRoute | bool | `true` | |
+| common.ingress.tls.enabled | bool | `true` | |
+| common.ingress.tls.secretName | string | `""` | |
+| common.livenessProbe.failureThreshold | int | `1` | |
+| common.livenessProbe.httpGet.path | string | `"/"` | |
+| common.livenessProbe.httpGet.port | int | `9117` | |
+| common.livenessProbe.initialDelaySeconds | int | `30` | |
+| common.livenessProbe.periodSeconds | int | `60` | |
+| common.livenessProbe.timeoutSeconds | int | `3` | |
+| common.livenessProbeEnabled | bool | `true` | |
+| common.persistence.enabled | bool | `true` | |
+| common.persistence.volumes[0].containerMount | string | `"/config/"` | |
+| common.persistence.volumes[0].name | string | `"config"` | |
+| common.persistence.volumes[0].pvcClaim | string | `""` | |
+| common.persistence.volumes[0].size | string | `"2Gi"` | |
+| common.persistence.volumes[0].storageClassName | string | `""` | |
+| common.persistence.volumes[1].containerMount | string | `"/downloads/"` | |
+| common.persistence.volumes[1].name | string | `"downloads"` | |
+| common.persistence.volumes[1].pvcClaim | string | `""` | |
+| common.persistence.volumes[1].size | string | `"1Gi"` | |
+| common.persistence.volumes[1].storageClassName | string | `""` | |
+| common.readinessProbe.failureThreshold | int | `2` | |
+| common.readinessProbe.httpGet.path | string | `"/"` | |
+| common.readinessProbe.httpGet.port | int | `9117` | |
+| common.readinessProbe.initialDelaySeconds | int | `30` | |
+| common.readinessProbe.periodSeconds | int | `30` | |
+| common.readinessProbe.timeoutSeconds | int | `3` | |
+| common.readinessProbeEnabled | bool | `true` | |
+| common.startupProbe.failureThreshold | int | `20` | |
+| common.startupProbe.httpGet.path | string | `"/"` | |
+| common.startupProbe.httpGet.port | int | `9117` | |
+| common.startupProbe.periodSeconds | int | `10` | |
+| common.startupProbe.timeoutSeconds | int | `1` | |
+| common.startupProbeEnabled | bool | `true` | |
+| common.tests.classicHttp.enabled | bool | `true` | |
+| common.tests.curlHostHeader.enabled | bool | `true` | |
+| common.tests.curlHostHeader.path | string | `"/"` | |
+| common.variables.nonSecret.AUTO_UPDATE | bool | `true` | |
+| common.variables.nonSecret.PGID | int | `1000` | |
+| common.variables.nonSecret.PUID | int | `1000` | |
+| common.variables.nonSecret.TZ | string | `"Etc/UTC"` | |
+| common.variables.secret | object | `{}` | |
+| define | int | `9117` | |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
diff --git a/charts/jackett/values.yaml b/charts/jackett/values.yaml
new file mode 100644
index 0000000..00a2896
--- /dev/null
+++ b/charts/jackett/values.yaml
@@ -0,0 +1,112 @@
+define: &containerPort 9117
+
+common:
+ app:
+ servicePort: 80
+ containerPort: *containerPort
+
+ # deployment
+ deployment:
+ memoryRequest: null
+ cpuRequest: null
+ memoryLimit: null
+ cpuLimit: null
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 25%
+ maxSurge: 25%
+
+ # container
+ image:
+ repository:
+ name: null
+ isPrivate: false
+ secretName: null
+ name: linuxserver/jackett
+ tag: 0.21.290
+ pullPolicy: Always
+
+ # ingress
+ ingress:
+ enabled: false
+ hostName: jackett.thoughtless.eu
+ tls:
+ enabled: true
+ secretName: ""
+ # For Ingress CRD
+ ingressClassName: istio
+ # For IngressRoute CRD
+ isIngressRoute: true
+ entrypoint: websecure
+ certResolver: letsencrypt # leave empty if you don't use, tls.enabled must be true and secretName must me empty
+
+
+ # env variables
+ variables:
+ secret: {}
+ nonSecret:
+ PUID: 1000
+ PGID: 1000
+ TZ: Etc/UTC
+ AUTO_UPDATE: true #optional
+ # RUN_OPTS: #optional
+
+ # horizontal autoscaler
+ hpa:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 2
+ avgCpuUtilization: 50
+
+ # startupProbe
+ startupProbeEnabled: false
+ startupProbe:
+ httpGet:
+ path: "/"
+ port: *containerPort
+ periodSeconds: 10
+ failureThreshold: 20
+ timeoutSeconds: 1
+
+ # readinessProbe
+ readinessProbeEnabled: true
+ readinessProbe:
+ tcpSocket:
+ port: *containerPort
+ initialDelaySeconds: 30
+ periodSeconds: 30
+ failureThreshold: 2
+ timeoutSeconds: 3
+
+ # livenessProbe
+ livenessProbeEnabled: true
+ livenessProbe:
+ tcpSocket:
+ port: *containerPort
+ initialDelaySeconds: 30
+ periodSeconds: 60
+ failureThreshold: 1
+ timeoutSeconds: 3
+
+ persistence:
+ enabled: true
+ volumes:
+ - name: "config"
+ storageClassName: "" # leave empty if you want to use default
+ size: "2Gi"
+ pvcClaim: "" # Fill only if you want to use existing pvc
+ containerMount: "/config/"
+ - name: "downloads" # OPTIONAL
+ storageClassName: "" # leave empty if you want to use default
+ size: "1Gi"
+ pvcClaim: "" # Fill only if you want to use existing pvc
+ containerMount: "/downloads/"
+
+ tests:
+ classicHttp: # default helm test method
+ enabled: false
+ curlHostHeader: # curl using ingress.hostName as Host in header
+ enabled: true
+ path: "/"
+