{"id":16184315,"url":"https://github.com/spittal/typesense-helm","last_synced_at":"2025-10-12T08:09:28.844Z","repository":{"id":37338443,"uuid":"270750166","full_name":"Spittal/typesense-helm","owner":"Spittal","description":"Helm Chart for Typesense","archived":false,"fork":false,"pushed_at":"2024-11-20T16:49:12.000Z","size":31,"stargazers_count":21,"open_issues_count":2,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-13T15:36:26.716Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Mustache","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Spittal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-08T16:55:37.000Z","updated_at":"2024-11-20T16:49:17.000Z","dependencies_parsed_at":"2025-02-13T15:43:07.556Z","dependency_job_id":null,"html_url":"https://github.com/Spittal/typesense-helm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spittal%2Ftypesense-helm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spittal%2Ftypesense-helm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spittal%2Ftypesense-helm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spittal%2Ftypesense-helm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spittal","download_url":"https://codeload.github.com/Spittal/typesense-helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247656007,"owners_count":20974277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T07:09:48.775Z","updated_at":"2025-10-12T08:09:23.822Z","avatar_url":"https://github.com/Spittal.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Typesense Helm Chart\n\n[Typesense](https://typesense.org/) is an open source, typo tolerant search engine that delivers fast and relevant results out-of-the-box.\n\n## TL;DR;\n\n```console\n$ helm repo add springboard https://helm-charts.springboardvr.com\n$ helm install my-release springboard/typesense -n [namespace]\n```\n\n## Introduction\n\nThis chart bootstraps a [Typesense](https://hub.docker.com/r/typesense/typesense) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.\n\nIt deploys a Typesense server application and by default will create a persistent volume claim with the default storage class. Optionally, you can set up an Ingress resource to access your application.\n\nThis chart is heavily influenced by Bitnami charts best practices.\n\n## Prerequisites\n\n- Kubernetes 1.12+\n- Helm 3.0+\n- PV provisioner support in the underlying infrastructure\n- ReadWriteMany volumes for deployment scaling\n\n## Installing the Chart\n\nTo install the chart with the release name `my-release`:\n\n```console\n$ helm repo add springboard https://helm-charts.springboardvr.com\n$ helm install my-release springboard/typesense -n [namespace]\n```\n\nThese commands deploy Typesense on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.\n\n\u003e **Tip**: List all releases using `helm ls -n [namespace]`\n\n## Uninstalling the Chart\n\nTo uninstall/delete the `my-release` deployment:\n\n```console\n$ helm del my-release -n [namespace]\n```\n\nThe command removes all the Kubernetes components associated with the chart and deletes the release.\n\n## Parameters\n\nThe following table lists the configurable parameters of the Typesense chart and their default values.\n\n| Parameter                               | Description                                                                 | Default                                                 |\n|-----------------------------------------|-----------------------------------------------------------------------------|---------------------------------------------------------|\n| `image.registry`                        | Typesense image registry                                                    | `docker.io`                                             |\n| `image.repository`                      | Typesense image name                                                        | `typesense/typesense`                                   |\n| `image.tag`                             | Typesense image tag                                                         | `0.13.0`                                                |\n| `image.pullPolicy`                      | Typesense image pull policy                                                 | `IfNotPresent`                                          |\n| `image.pullSecrets`                     | Specify docker-registry secret names as an array                            | `[]` (does not add image pull secrets to deployed pods) |\n| `nameOverride`                          | String to partially override typesense.fullname template                    | `nil`                                                   |\n| `fullnameOverride`                      | String to fully override typesense.fullname template                        | `nil`                                                   |\n| `replicas`                              | Number of replicas for the application                                      | `1`                                                     |\n| `applicationPort`                       | Port where the application will be running                                  | `8108`                                                  |\n| `extraEnv`                              | Any extra environment variables to be pass to the pods                      | `{}`                                                    |\n| `envFrom`                               | An envFrom for the deployment, for adding a secret as ENV vars              | `{}`                                                    |\n| `affinity`                              | Map of node/pod affinities                                                  | `{}` (The value is evaluated as a template)             |\n| `nodeSelector`                          | node labels for pod assignment                                              | `{}` (The value is evaluated as a template)             |\n| `tolerations`                           | Tolerations for pod assignment                                              | `[]` (The value is evaluated as a template)             |\n| `securityContext.enabled`               | Enable security context                                                     | `true`                                                  |\n| `securityContext.fsGroup`               | Group ID for the container                                                  | `1001`                                                  |\n| `securityContext.runAsUser`             | User ID for the container                                                   | `1001`                                                  |\n| `resources`                             | Resource requests and limits                                                | `{}`                                                    |\n| `persistence.enabled`                   | Enable persistence using PVC                                                | `false`                                                 |\n| `persistence.path`                      | Path to persisted directory                                                 | `/app/data`                                             |\n| `persistence.accessMode`                | PVC Access Mode                                                             | `ReadWriteOnce`                                         |\n| `persistence.storageClass`              | Storage class for dynamic provisioning                                      | `nil`                                                   |\n| `persistence.size`                      | PVC Storage Request                                                         | `1Gi`                                                   |\n| `service.type`                          | Kubernetes Service type                                                     | `ClusterIP`                                             |\n| `service.port`                          | Kubernetes Service port                                                     | `80`                                                    |\n| `service.annotations`                   | Annotations for the Service                                                 | {}                                                      |\n| `service.loadBalancerIP`                | LoadBalancer IP if Service type is `LoadBalancer`                           | `nil`                                                   |\n| `service.nodePort`                      | nodePort if Service type is `LoadBalancer` or `nodePort`                    | `nil`                                                   |\n| `ingress.enabled`                       | Enable ingress controller resource                                          | `false`                                                 |\n| `ingress.hosts[0].name`                 | Hostname to your Typesense installation                                     | `typesense.local`                                       |\n| `ingress.hosts[0].path`                 | Path within the url structure                                               | `/`                                                     |\n| `ingress.hosts[0].tls`                  | Utilize TLS backend in ingress                                              | `false`                                                 |\n| `ingress.hosts[0].certManager`          | Add annotations for cert-manager                                            | `false`                                                 |\n| `ingress.hosts[0].tlsSecret`            | TLS Secret (certificates)                                                   | `typesense.local-tls-secret`                            |\n| `ingress.hosts[0].annotations`          | Annotations for this host's ingress record                                  | `[]`                                                    |\n| `ingress.secrets[0].name`               | TLS Secret Name                                                             | `nil`                                                   |\n| `ingress.secrets[0].certificate`        | TLS Secret Certificate                                                      | `nil`                                                   |\n| `ingress.secrets[0].key`                | TLS Secret Key                                                              | `nil`                                                   |\n\nThe above parameters map to the env variables defined in [spittal/typesense](https://github.com/Spittal/typesense-helm).\n\nSpecify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,\n\n```console\n$ helm install my-release \\\n  --set repository=https://github.com/jbianquetti-nami/simple-typesense-app.git,replicas=2 \\\n    springboard/typesense\n```\n\nThe above command clones the remote git repository to the `/app/` directory  of the container. Additionally it sets the number of `replicas` to `2`.\n\nAlternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,\n\n```console\n$ helm install my-release -f values.yaml springboard/typesense\n```\n\n\u003e **Tip**: You can use the default [values.yaml](values.yaml)\n\n## Configuration and installation details\n\n### Typesense settings\n\nYou can configure any typesense setting using the `envFrom` parameter like so. [Learn about envFrom](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container)\n\n```yaml\nenvFrom:\n  - configMapRef:\n      name: name-of-config-map-with-env-vars\n```\n\nOr you can do individual settings like.\n\n```yaml\nextraArgs:\n  - name: TYPESENSE_API_PORT\n    value: 8080\n```\n\nA list of the available options can be found on the [Typesense website](https://typesense.org/docs/0.13.0/guide/).\n\n### Set up an Ingress controller\n\nFirst install the nginx-ingress controller and then deploy the Typesense Helm chart with the following parameters:\n\n```console\ningress.enabled=true\ningress.host=example.com\nservice.type=ClusterIP\n```\n\n### Configure TLS termination for your ingress controller\n\nYou must manually create a secret containing the certificate and key for your domain. Then ensure you deploy the Helm chart with the following ingress configuration:\n\n```yaml\ningress:\n  enabled: false\n  path: /\n  host: example.com\n  annotations:\n    kubernetes.io/ingress.class: nginx\n  tls:\n      hosts:\n        - example.com\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspittal%2Ftypesense-helm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspittal%2Ftypesense-helm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspittal%2Ftypesense-helm/lists"}