telego
๐Replace $github-username
, $github-pass
, $github-email
and $namespace
accordingly.
kubectl create secret docker-registry ghcr-token-secret --docker-server=https://ghcr.io --docker-username="$github-username" --docker-password="$github-pass" --docker-email="$github-email" -n $namespace
telego.secret
python -c 'import random; print("".join([random.choice("abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)") for i in range(50)]))'
Add the repo to your local helm client.
helm repo add mika https://irfanhakim-as.github.io/charts
Update the repo to retrieve the latest versions of the packages.
helm repo update
Deploy mika/postgres-agent
with postgres.mode.create
set to true
. This step can be skipped if you have an existing PostgreSQL database.
Copy values.yaml
from the chart you would like to install.
cp mika/telego/values.yaml .
Edit values.yaml
with the appropriate values. Refer to the Configurations section for available options.
nano values.yaml
Install the desired chart. Replace $release_name
and $namespace
accordingly.
helm install $release_name mika/telego --namespace $namespace --create-namespace --values values.yaml --wait
Verify that your chart has been installed. Replace $namespace
and $release_name
accordingly.
helm ls --namespace $namespace | grep "$release_name"
To implement additional Telegram commands, create a custom commands.py
file with a Commands
class inheriting from lib.telegram.BaseCommand
. Refer to /base/lib/commands.py
from the container for more information.
To add additional Telegram messages, create a custom messages.py
file with both MESSAGES
and ICONS
dict. Refer to /base/lib/messages.py
from the container for more information.
Upgrade (or install) the chart while adding the commands.py
and messages.py files with the
โset-file` flag.
helm upgrade --install $release_name mika/telego \
--namespace $namespace \
--values values.yaml \
--set-file telego.commands=commands.py \
--set-file telego.messages=messages.py \
--wait
Uninstall the desired chart. Replace $release_name
and $namespace
accordingly.
helm uninstall $release_name --namespace $namespace --wait
Deploy mika/postgres-agent
with postgres.mode.drop
set to true
.
Key | Type | Default | Description |
---|---|---|---|
db.host | string | "" |
The hostname or IP address of the Telego database server. |
db.name | string | "" |
The name of the database used by Telego. |
db.password | string | "" |
The password associated with the Telego databaseโs user. |
db.port | string | "" |
The port number on which the Telego database server is listening. Default: "5432" . |
db.type | string | "" |
The type of the database used by Telego. Default: "postgresql" . |
db.user | string | "" |
The username or user account for accessing the Telego database. |
image.ngrok.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Ngrok container image. Default: "IfNotPresent" . |
image.ngrok.registry | string | "" |
The registry where the Ngrok container image is hosted. Default: "docker.io" . |
image.ngrok.repository | string | "" |
The name of the repository that contains the Ngrok container image used. Default: "wernight/ngrok" . |
image.ngrok.tag | string | "" |
The tag that specifies the version of the Ngrok container image used. Default: "latest" . |
image.redis.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Redis container image. Default: "IfNotPresent" . |
image.redis.registry | string | "" |
The registry where the Redis container image is hosted. Default: "docker.io" . |
image.redis.repository | string | "" |
The name of the repository that contains the Redis container image used. Default: "redis" . |
image.redis.tag | string | "" |
The tag that specifies the version of the Redis container image used. Default: "alpine" . |
image.telego.pullPolicy | string | "" |
The policy that determines when Kubernetes should pull the Telego container image. Default: "IfNotPresent" . |
image.telego.registry | string | "" |
The registry where the Telego container image is hosted. Default: "ghcr.io" . |
image.telego.repository | string | "" |
The name of the repository that contains the Telego container image used. Default: "irfanhakim-as/telego" . |
image.telego.tag | string | "" |
The tag that specifies the version of the Telego container image used. Default: Chart appVersion . |
imagePullSecrets | list | [] |
Credentials used to securely authenticate and authorise the pulling of container images from private registries. |
replicaCount | string | "" |
The desired number of running replicas for Telego. Default: "1" . |
resources.ngrok.limits.cpu | string | "20m" |
The maximum amount of CPU resources allowed for Ngrok. |
resources.ngrok.limits.memory | string | "50Mi" |
The maximum amount of memory allowed for Ngrok. |
resources.ngrok.requests.cpu | string | "10m" |
The minimum amount of CPU resources required by Ngrok. |
resources.ngrok.requests.memory | string | "20Mi" |
The minimum amount of memory required by Ngrok. |
resources.scheduler.limits.cpu | string | "20m" |
The maximum amount of CPU resources allowed for Scheduler. |
resources.scheduler.limits.memory | string | "200Mi" |
The maximum amount of memory allowed for Scheduler. |
resources.scheduler.requests.cpu | string | "10m" |
The minimum amount of CPU resources required by Scheduler. |
resources.scheduler.requests.memory | string | "100Mi" |
The minimum amount of memory required by Scheduler. |
resources.telego.limits.cpu | string | "200m" |
The maximum amount of CPU resources allowed for Telego. |
resources.telego.limits.memory | string | "500Mi" |
The maximum amount of memory allowed for Telego. |
resources.telego.requests.cpu | string | "50m" |
The minimum amount of CPU resources required by Telego. |
resources.telego.requests.memory | string | "300Mi" |
The minimum amount of memory required by Telego. |
telego.cloudflared.domain | string | "" |
Registered domain name on Cloudflare used for Telego. |
telego.cloudflared.enabled | bool | false |
Specifies whether Telego should run using a Cloudflare tunnel. |
telego.commands | file | "" |
Custom Telegram commands.py file for Telego. |
telego.debug | string | "" |
Specifies whether Telego should run in debug mode. Default: false . |
telego.messages | file | "" |
Custom Telegram messages.py file for Telego. |
telego.name | string | "" |
The name of the Telego service. Default: "Telego" . |
telego.ngrok.enabled | bool | false |
Specifies whether Telego should run using an Ngrok tunnel. |
telego.ngrok.token | string | "" |
Ngrok authentication token. |
telego.persistence.enabled | bool | false |
Specifies whether Telego should persist its logs. |
telego.persistence.storage | string | "" |
The amount of persistent storage allocated for Telego logs. Default: "10Mi" . |
telego.persistence.storageClassName | string | "" |
The storage class name used for dynamically provisioning a persistent volume for the Telego logs storage. Default: "longhorn" . |
telego.scheduler.apscheduler | bool | true |
Specifies whether APScheduler should be used by Telego as the task scheduler. |
telego.scheduler.celery | bool | false |
Specifies whether Celery should be used by Telego as the task scheduler. |
telego.scheduler.schedule.clean_model | string | "" |
The hours at which the task scheduler cleans up the database. Default: "0" . |
telego.scheduler.schedule.object_scheduler | string | "" |
The second intervals at which the task scheduler sends scheduled messages. Default: "2" . |
telego.scheduler.timezone | string | "" |
The timezone for the task scheduler used by Telego to schedule time-dependent operations. Default: "Asia/Kuala_Lumpur" . |
telego.secret | string | "" |
A 50-character secret key used for secure session management and cryptographic operations within the Telego service. |
telego.telegram.api | string | "" |
API endpoint or URL for the Telegram bot. Default: "https://api.telegram.org/bot" . |
telego.telegram.token | string | "" |
The Telegram bot token used by Telego to communicate with Telegram. |
telego.telegram.webhook | string | "" |
The Telegram bot webhook path used by Telego to communicate with Telegram. Must contain a trailing slash. Default: "webhook/telegram/" . |