{"id":18985905,"url":"https://github.com/kellnr/helm","last_synced_at":"2026-04-13T13:03:18.712Z","repository":{"id":193869899,"uuid":"689644467","full_name":"kellnr/helm","owner":"kellnr","description":"Helm chart to deploy Kellnr on kubernetes","archived":false,"fork":false,"pushed_at":"2026-04-03T14:28:08.000Z","size":161,"stargazers_count":15,"open_issues_count":5,"forks_count":14,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T17:30:52.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go Template","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kellnr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-10T13:18:40.000Z","updated_at":"2026-04-03T12:36:39.000Z","dependencies_parsed_at":"2023-09-10T14:53:48.210Z","dependency_job_id":"ca52d04d-874f-42e9-8968-67d360ea3872","html_url":"https://github.com/kellnr/helm","commit_stats":null,"previous_names":["kellnr/helm"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/kellnr/helm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnr%2Fhelm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnr%2Fhelm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnr%2Fhelm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnr%2Fhelm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kellnr","download_url":"https://codeload.github.com/kellnr/helm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnr%2Fhelm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-08T16:28:37.303Z","updated_at":"2026-04-13T13:03:18.680Z","avatar_url":"https://github.com/kellnr.png","language":"Go Template","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kellnr Helm-Chart\n\nThis repository provides a [Helm](https://helm.sh/) Chart for [Kellnr](https://kellnr.io), the Rust registry for self-hosting crates.\n\n## Installation\n\nAdd the _Kellr_ helm repository which contains _Kellnr_:\n\n```bash\n# Add  repository\nhelm repo add kellnr https://kellnr.github.io/helm\n\n# Update to latest version\nhelm repo update\n```\n\nFor a list of possible configuration flags see below: [Configuration](#configuration)\n\nTo install a minimal _Kellnr_ installation with in-memory storage run the command below. The in-memory storage variant is useful for testing but not recommended for production as all data (crates, users, ...) will be lost if the container restarts.\n\n```bash\nhelm install kellnr kellnr/kellnr --set kellnr.origin.hostname=\"kellnr.example.com\"\n```\n\nFor a persistent _Kellnr_ instance, a _PersistentVolumeClaim_ (PVC) is needed. The helm chart can create a _PersistentVolumeClaim_ and _PersistentVolume_ (PV), if you don't have one already.\n\n```bash\n# Use an existing PersistentStorage (storage_name) to get a PersistentStorageClaim.\n# The storage class can be overwritten with \"pvc.storageClassName\" and defaults to \"manual\".\nhelm install kellnr kellnr/kellnr \\\n    --set pvc.enabled=true --set pvc.name=\"storage_name\" \\\n    --set kellnr.origin.hostname=\"kellnr.example.com\"\n```\n\n```bash\n# Create a new PersistentVolume and a corresponding claim. The host path e.g. \"/mnt/kellnr\" has to exists before the PV is created.\nhelm install kellnr kellnr/kellnr \\\n    --set pv.enabled=true --set pv.path=\"/mnt/kellnr\" \\\n    --set pvc.enabled=true \\\n    --set kellnr.origin.hostname=\"kellnr.example.com\"\n```\n\nFor information about the _Cargo_ setup and default values, see the official [Kellnr documentation](https://kellnr.io/documentation).\n\n## Upgrade\n\nUpgrade _Kellnr_ by updating the Helm repository and applying the latest version.\n\n```bash\n# Update helm repositories\nhelm repo update\n\n# Upgrade Kellnr\nhelm upgrade kellnr kellnr/kellnr\n```\n\n### Upgrade Notes\n\n#### Chart version 5.0.0\n\nThe default data directory changed from `/opt/kdata` to `/var/lib/kellnr` to align with the new Kellnr Docker image defaults. If you're upgrading an existing installation and were using the default data directory, explicitly set `kellnr.registry.dataDir=/opt/kdata` in your values to maintain compatibility with your existing persistent volume.\n\n## Configuration\n\nAll settings can be set with the `--set name=value` flag on `helm install`. Some settings are required and have to be provided other are recommended for security reasons.\n\n### Kellnr\n\nCheck the [documentation](https://kellnr.io/documentation) and the [values.yaml](./charts/kellnr/values.yaml) for possible configuration values.\n\n#### Cookie signing key\n\nKellnr uses a cookie signing key to sign its session cookie.\n\n| Setting                          | Required | Description                                                                                                       | Default |\n|----------------------------------|----------|-------------------------------------------------------------------------------------------------------------------|---------|\n| kellnr.registry.cookieSigningKey | No       | Cookie signing key used for `KELLNR_REGISTRY__COOKIE_SIGNING_KEY`. Must be at least 64 characters.               | \"\"     |\n\nNotes:\n\n- If `secret.enabled: true` and `kellnr.registry.cookieSigningKey` is empty, the chart will **not** set `KELLNR_REGISTRY__COOKIE_SIGNING_KEY`.\n\n- If `secret.enabled: false` (ConfigMap mode), you should set `kellnr.registry.cookieSigningKey` explicitly (otherwise the env var is not set).\n\nExample:\n\n````yaml\nkellnr:\n  registry:\n    cookieSigningKey: \"\u003cat least 64 characters\u003e\"\n````\n\n\n### Service\n\nSettings to configure the web-ui/API endpoint service and the crate index service.\n\n| Setting          | Required | Description                                                   | Default   |\n|------------------|----------|---------------------------------------------------------------|-----------|\n| service.api.type | No       | Type of the service that exports the API and web-ui endpoint. | ClusterIP |\n| service.api.port | No       | Port of the service that exports the API and web-ui endpoint. | 8000      |\n\n### Ingress\n\nSetting to configure the ingress route for the web-ui and API.\n\n| Setting                | Required | Description                                      | Default            |\n|------------------------|----------|--------------------------------------------------|--------------------|\n| ingress.enabled        | No       | Enable an Kubernetes ingress route for _Kellnr_. | true               |\n| ingress.className      | No       | Set an ingress className.                        | \"\"                 |\n| ingress.pathType       | No       | Set the ingress pathType.                        | \"Prefix\"           |\n| ingress.path           | No       | Set the ingress path.                            | \"/\"                |\n| ingress.annotations    | No       | Set ingress annotations.                         | {}                 |\n| ingress.tls.secretName | No       | Set the secret name for a TLS certificate        | kellnr-cert-secret |\n\n### TLS Certificate\n\nSettings to configure a TLS certificate with cert-manager. **Important** If you use _Kellnr_ with TLS,\nmake sure to set `kellnr.origin.protocol` to `https`.\n\n| Setting | Required | Description | Default |\n| ---------------------- | -------- | ------------------------------------------------------------- | --------- |\n| certificate.enabled | No | Enable automatic TLS certificate generation with cert-mananger. | false |\n| certificate.secretName | No | The name of the certificate secret which an ingress can refer to. | kellnr-cert-secret |\n| certificate.issuerRef.kind | No | The kind of the certificate issuer, e.g. _ClusterIssuer_, or _Issuer_ | ClusterIssuer |\n| certificate.issuerRef.name | Yes (if enabled) | The name of the certificate issuer e.g. cert-manager | \"\" |\n\n### Trust a Certificate\n\nBesides the option of using a certificate to secure the access to _Kellnr_, you can import a certificate into _Kellnr_ which it will trust as a\nroot certificate.\n\n\u003e Kellnr needs to trust it's own root certificate to be able to generate Rustdocs automatically!\n\nIf you use a self-signed certificate that is not trusted by default, you can import it into _Kellnr_ on application startup.\n\n| Setting | Required | Description | Default |\n| ---------------------- | -------- | ------------------------------------------------------------- | --------- |\n| importCert.enabled | No | Enable the import of a root certificate to trust | false |\n| importCert.useExisting | No | If you have an existing _ConfigMap_ that contains a certificate, set this flag to _true_, else a new _ConfigMap_ is created.  | false |\n| importCert.configMapName | No | Set the name of the created or existing _ConfigMap_ to use. | \"kellnr-cert\" |\n| importCert.volumeName | No | The volume name under which the _ConfigMap_ is mounted into the pod. | \"kellnr-cert-storage\" |\n| importCert.certificate | No | The certificate to trust in the standard PEM format. See example below. | \"\" |\n\nExample for `importCert.certificate`:\n\n```yaml\nimportCert:\n  enabled: true\n  certificate: |\n    —–BEGIN CERTIFICATE—–\n    MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\n    YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\n    aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\n    …\n    jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\n    38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\n    HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n    —–END CERTIFICATE—–\n```\n\n### DNS\n\nYou can set DNS servers for _Kellnr_ which should be used instead of the default one.\n\n\u003e Kellnr needs to be able to resolve it's own domain name, to be able to generate Rustdocs automatically.\n\n| Setting                   | Required | Description                      | Default |\n|---------------------------|----------|----------------------------------|---------|\n| dns.enabled               | No       | Enable an additional _dnsPolicy_ | false   |\n| dns.dnsPolicy             | No       | Set the _dnsPolicy_              | \"None\"  |\n| dns.dnsConfig.nameservers | No       | List of nameservers to use.      | - \"\"    |\n| dns.dnsConfig.searches    | No       | List of searches to use.         | - \"\"    |\n\n### Persistence\n\nA _PersistentVolume_ can be created for _Kellnr_ to hold all stored data.\n\n| Setting             | Required         | Description                                                        | Default |\n| ------------------- | ---------------- | ------------------------------------------------------------------ | ------- |\n| pv.enabled          | No               | Enable a _PersistentVolume_ to store the data from _Kellnr_        | false   |\n| pv.name             | No               | Name of the _PersistentVolume_                                     | kellnr  |\n| pv.storageClassName | No               | storageClassName of the _PersistentVolume_                         | manual  |\n| pv.storage          | No               | Size of the storage.                                               | 5Gi   |\n| pv.path             | Yes (if enabled) | Host path to the storage. Needs to exists before the PV is created | \"\"      |\n\nA _PersistentVolumeClaim_ can be used by _Kellnr_ to hold all stored data.\n\n| Setting              | Required | Description                                                      | Default |\n| -------------------- | -------- | ---------------------------------------------------------------- | ------- |\n| pvc.enabled          | No       | Enable a _PersistentVolumeClaim_ to store the data from _Kellnr_ | false   |\n| pvc.name             | No       | Name of the _PersistentVolumeClaim_                              | kellnr  |\n| pvc.storageClassName | No       | storageClassName of the _PersistentVolumeClaim_                  | manual  |\n| pvc.storage          | No       | Size of the storage.                                             | 5Gi   |\n\nFor a full set of possible variables see: [values.yaml](./charts/kellnr/values.yaml)\n\n## Feedback\n\nIf the Helm Chart does not work for you for any reason or you need a feature, feel free to create a Github issue.\n\n## Release a new version\n\nRun the following steps to release a new version of the chart.\n\n1. Change the `appVersion` in [Chart.yaml](./charts/kellnr/Chart.yaml) to the current image version.\n2. Increase the `version` in [Chart.yaml](./charts/kellnr/Chart.yaml).\n3. Push or create a Pull-Request to the `main`/`master` branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkellnr%2Fhelm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkellnr%2Fhelm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkellnr%2Fhelm/lists"}