{"id":24067835,"url":"https://github.com/trianalab/jesse-chart","last_synced_at":"2025-09-02T15:07:26.195Z","repository":{"id":270162982,"uuid":"909500081","full_name":"TrianaLab/jesse-chart","owner":"TrianaLab","description":"A Kubernetes Helm chart for Jesse trading bot","archived":false,"fork":false,"pushed_at":"2025-08-20T12:15:11.000Z","size":92,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-20T13:07:46.787Z","etag":null,"topics":["algo-trading","bitcoin","bot","chart","crypto","cryptocurrency","helm","helm-chart","helm-charts","jesse","jesse-ai","jesse-framework","kubernetes","trade","trading-algorithms","trading-strategies"],"latest_commit_sha":null,"homepage":"https://edudiaz.dev","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TrianaLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2024-12-28T22:17:01.000Z","updated_at":"2025-08-20T11:00:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"10f82854-2b1e-48f6-bff2-469bd1d5995d","html_url":"https://github.com/TrianaLab/jesse-chart","commit_stats":null,"previous_names":["trianalab/jesse-chart"],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/TrianaLab/jesse-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrianaLab%2Fjesse-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrianaLab%2Fjesse-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrianaLab%2Fjesse-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrianaLab%2Fjesse-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TrianaLab","download_url":"https://codeload.github.com/TrianaLab/jesse-chart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrianaLab%2Fjesse-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273301873,"owners_count":25081105,"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","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["algo-trading","bitcoin","bot","chart","crypto","cryptocurrency","helm","helm-chart","helm-charts","jesse","jesse-ai","jesse-framework","kubernetes","trade","trading-algorithms","trading-strategies"],"created_at":"2025-01-09T12:38:54.798Z","updated_at":"2025-09-02T15:07:26.188Z","avatar_url":"https://github.com/TrianaLab.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jesse\n\nA Helm chart for Jesse trade bot.\n\n![Version: 0.0.40](https://img.shields.io/badge/Version-0.0.40-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.10.4](https://img.shields.io/badge/AppVersion-1.10.4-informational?style=flat-square)  [![DOI](https://zenodo.org/badge/909500081.svg)](https://doi.org/10.5281/zenodo.14587093) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/jesse-chart)](https://artifacthub.io/packages/helm/jesse-chart/jesse)\n\n# Index\n- [Usage](#usage)\n  - [Prerequisites](#prerequisites)\n  - [Deployment](#deployment)\n    - [Step 1 (optional): create a Kind cluster](#step-1-optional-create-a-kind-cluster)\n    - [Step 2: configure Jesse](#step-2-configure-jesse)\n    - [Step 3: Install the Helm chart](#step-3-install-the-helm-chart)\n    - [Step 4: Verify the deployment](#step-4-verify-the-deployment)\n    - [Step 5: Expose the service](#step-5-expose-the-service)\n  - [Cleanup](#cleanup)\n  - [Additional information](#additional-information)\n- [Configuration](#configuration)\n  - [Requirements](#requirements)\n  - [Values](#values)\n- [ARM64 support](#arm64-support)\n- [License](#license)\n- [Support](#support)\n- [Contributions](#contributions)\n- [Acknowledgments](#acknowledgments)\n\n\u003cbr\u003e\n\n# Usage\n\nThis document provides a comprehensive guide for deploying the [Jesse](https://jesse.trade/) trade bot using the Helm chart provided in this repository.\n\n## Prerequisites\n\n1. Kubernetes cluster: you can use a local cluster like [kind](https://kind.sigs.k8s.io/) for testing purposes.\n\n2. [Helm](https://helm.sh/docs/intro/install/) installed.\n\n## Deployment\n\n### Step 1 (optional): create a Kind cluster\n\nFor testing purposes, you can create a kind cluster:\n\n```bash\nkind create cluster --name jesse-cluster\n```\n\n### Step 2: configure Jesse\n\nPull the values file:\n```bash\nhelm show values oci://ghcr.io/trianalab/jesse-chart/jesse --version 0.0.40 \u003e values.yaml\n```\nAdd the `LICENSE_API_TOKEN` within the `config` field in the `values.yaml` file according to Jesse's [documentation](https://docs.jesse.trade/docs/configuration#environment-variables).\n\n### Step 3: Install the Helm chart\n\n```bash\nhelm install jesse oci://ghcr.io/trianalab/jesse-chart/jesse --version 0.0.40 --namespace jesse-namespace --create-namespace -f values.yaml\n```\n\n### Step 4: Verify the deployment\n\nWait for the deployment to be ready (it can take up to a minute):\n\n```bash\nkubectl wait --for=condition=available --namespace jesse-namespace deployment/jesse --timeout=300s\n```\n\nEnsure all the pods, services, and ingress resources are created and running as expected:\n\n```bash\nkubectl get all --namespace jesse-namespace\n```\n\n### Step 5: Expose the service\n\nThe service is exposed as a `ClusterIP` by default. To access it externally, you can use port forwarding or an ingress resource. The Helm chart's `NOTES.txt` provides details on accessing the service.\n\n## Cleanup\n\nTo remove the deployment, run the following commands:\n\n```bash\nhelm uninstall jesse --namespace jesse-namespace\nkubectl delete namespace jesse-namespace\n```\n\n## Additional information\n\n- For troubleshooting or additional configuration, consult the `NOTES.txt` generated by the Helm chart or refer to the official [Jesse documentation](https://jesse.trade/).\n- Advanced users can modify the `values.yaml` file to fit specific deployment needs.\n\n\u003cbr\u003e\n\n# Configuration\n\n## Requirements\n\n| Repository | Name | Version |\n|------------|------|---------|\n| https://charts.bitnami.com/bitnami | postgresql | 16.4.9 |\n| https://charts.bitnami.com/bitnami | redis | 20.7.0 |\n\n## Values\n\n| Key | Type | Default | Description |\n|-----|------|---------|-------------|\n| affinity | object | `{}` | affinity expands nodeSelectors, more information can be found [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity). |\n| autoscaling.enabled | bool | `false` | autoscaling.enabled is for enabling horizontal autoscaling, more information can be found [here](https://kubernetes.io/docs/concepts/workloads/autoscaling/) |\n| autoscaling.maxReplicas | int | `10` | autoscaling.maxReplicas sets the maximum number of replicas. |\n| autoscaling.minReplicas | int | `1` | autoscaling.minReplicas sets the minimum number of replicas. |\n| autoscaling.targetCPUUtilizationPercentage | int | `80` | autoscaling.targetCPUUtilizationPercentage sets CPU threshold that triggers the autoscaling. |\n| config | string | `\"PASSWORD=test\\nAPP_PORT=9000\\n\\nPOSTGRES_HOST=postgresql\\nPOSTGRES_NAME=jesse_db\\nPOSTGRES_PORT=5432\\nPOSTGRES_USERNAME=jesse_user\\nPOSTGRES_PASSWORD=pg-password\\n\\nREDIS_HOST=redis-master\\nREDIS_PORT=6379\\nREDIS_PASSWORD=redis-password\\n\\nLICENSE_API_TOKEN=\u003cTOKEN\u003e\"` | config contains all the configuration variables for Jesse, more information can be found [here](https://docs.jesse.trade/docs/configuration#environment-variables). |\n| fullnameOverride | string | `\"\"` | fullnameOverride is to fully override the chart name. |\n| image.command | string | `\"\"` | image.command overrides the default command to run in the jesse container. |\n| image.pullPolicy | string | `\"IfNotPresent\"` | image.pullPolicy sets the pull policy for images. |\n| image.repository | string | `\"salehmir/jesse\"` | image.repository sets the container image more information can be found [here](https://kubernetes.io/docs/concepts/containers/images/). |\n| image.tag | string | `\"\"` | image.tag overrides the image tag whose default is the chart appVersion. |\n| imagePullSecrets | list | `[]` | imagePullSecrets is for the secretes for pulling an image from a private repository more information can be found [here](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). |\n| ingress.annotations | object | `{}` | ingress.annotations is for setting Kubernetes Annotations to the Ingress, more information can be found [here](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/). |\n| ingress.className | string | `\"\"` | ingress.className sets the ingress class, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class). |\n| ingress.enabled | bool | `false` | ingress.enabled is for setting up the ingress, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/ingress/). |\n| ingress.hosts | list | `[]` | ingress.hosts is a list of ingress hosts. |\n| ingress.tls | list | `[]` | ingress.tls is the secret holding the TLS key and secret, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls). |\n| nameOverride | string | `\"\"` | nameOverride is to override the chart name. |\n| nodeSelector | object | `{}` | nodeSelector constrains a pod to be scheduled on a particular node, more information can be found [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). |\n| podAnnotations | object | `{}` | podAnnotations is for setting Kubernetes Annotations to a Pod, more information can be found [here](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/). |\n| podLabels | object | `{}` | podLabels is for setting Kubernetes Labels to a Pod, more information can be found [here](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). |\n| podSecurityContext | object | `{}` | podSecurityContext defines privilege and access control settings for a pod, more information can be found [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod). |\n| postgresql.auth.database | string | `\"jesse_db\"` | postgresql.database is the database used by Jesse. |\n| postgresql.auth.password | string | `\"pg-password\"` | postgresql.password is the database password used by Jesse. |\n| postgresql.auth.username | string | `\"jesse_user\"` | postgresql.username is the database username used by Jesse. |\n| redis.auth.password | string | `\"redis-password\"` | redis.auth.password is the redis password used by Jesse. |\n| replicaCount | int | `1` | replicaCount will set the replicaset count more information can be found [here](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/). |\n| resources | object | `{}` | resources sets the amount of resources the container needs, more information can be found [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/). |\n| securityContext | object | `{}` | securityContext defines privilege and access control settings for a container, more information can be found [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container). |\n| service.annotations | object | `{}` | service.annotations is for setting Kubernetes Annotations to a Service, more information can be found [here](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/). |\n| service.nodePort | int | `30443` | service.nodePort sets a specific node port when service.type is set to `NodePort`, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport-custom-port). |\n| service.port | int | `9000` | service.port sets the port, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports). |\n| service.type | string | `\"ClusterIP\"` | service.type sets the service type, more information can be found [here](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types). |\n| serviceAccount.annotations | object | `{}` | serviceAccount.annotations to add to the service account. |\n| serviceAccount.automount | bool | `true` | serviceAccount.automount automatically mounts ServiceAccount's API credentials. |\n| serviceAccount.create | bool | `true` | serviceAccount.create specifies whether a service account should be created, more information can be found [here](https://kubernetes.io/docs/concepts/security/service-accounts/). |\n| serviceAccount.name | string | `\"\"` | serviceAccount.name is the name of the service account to use. If not set and create is true, a name is generated using the fullname template. |\n| tolerations | list | `[]` | tolerations allow the scheduler to schedule pods with matching taints, more information can be found [here](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/). |\n| volumeMounts | list | `[]` | volumeMounts is a list of additional volumeMounts on the output Deployment definition. |\n| volumes | list | `[]` | volumes is a list of additional volumes on the output Deployment definition. |\n\n\u003cbr\u003e\n\n# ARM64 support\n\nThis project also builds a [linux/arm64](https://github.com/TrianaLab/jesse-chart/pkgs/container/jesse-arm64) version of the [official Jesse image](https://hub.docker.com/r/salehmir/jesse), which is for linux/amd64. It does not include the [live-trade](https://docs.jesse.trade/docs/livetrade#live-trade) plugin due to libraries limitations, but for the moment it can be used for backtesting in linux arm64 devices.\n\n\u003cbr\u003e\n\n# License\nThis repository is licensed under the GNU Affero General Public License v3.0 (AGPLv3).\n\nBy using this project, you agree to comply with the terms of the AGPLv3 license. See the [LICENSE](LICENSE.md) file for details.\n\nThis project also includes third-party dependencies that are subject to their respective licenses. See the [NOTICES.md](NOTICES.md) file for attribution.\n\n\u003cbr\u003e\n\n# Support\nIf you encounter any issues, feel free to open an issue.\n\n\u003cbr\u003e\n\n# Contributions\nContributions are welcome! Please follow these steps:\n\n1. Fork this repository.\n2. Make your changes.\n3. Submit a pull request with a detailed description of your changes.\n\n\u003cbr\u003e\n\n# Acknowledgments\nThis project builds upon the incredible work of:\n\n* The [Jesse](https://github.com/jesse-ai/jesse) team.\n* [Bitnami](https://bitnami.com/) for their Redis and PostgreSQL Helm charts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrianalab%2Fjesse-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrianalab%2Fjesse-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrianalab%2Fjesse-chart/lists"}