Clients
Clients
Instruction
Variables
The service has a minimalistic setup. You need to set up a connection to Kafka, Telegram and specify the desired webhook.
# List os telegram tokens. Json format
ENV_TELEGRAM_TOKENS: ["1111111111:XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
# URL where the webhook will work
APP_WEBHOOK_PREFIX: tgc-webhook
# your application's base url (domain) 
APP_BASE_URL: https://example.com/
# Result: webhook on "https://example.com/tgc-webhook"docker pull rocshers/telegram-kafka-connectorDocker compose
docker-compose.yaml
version: '3.8'
services:
  app:
    image: rocshers/telegram-kafka-connector:latest
    environment:
      - ENV_TELEGRAM_TOKENS=["1111111111:XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
      - APP_PREFIX=tgc-webhook
      - APP_BASE_URL=https://example.com/
      # WebHook url -> https://example.com/tgc-webhookArchitecture
What’s happening? Nothing complicated. The service’s only task is to subscribe to updates, receive them, and send them to Kafka, where other consumers can then read the data.
graph TD
    Telegram[Telegram]
    Nginx[Nginx]
    Kafka[("Kafka")]
    
    Telegram ==> |Receiving new events| Nginx
    TKC1[tkc #1]
    TKC2[tkc #2]
    Nginx --> TKC1
    Nginx --> TKC2
    TKC1 -->|Saving| Kafka
    TKC2 -->|Saving| Kafka
    Kafka --> AnyConsumer1[Consumer #1]
    Kafka --> |Get new events| AnyConsumer2[Consumer #2]
    Kafka -->  AnyConsumer3[Consumer #3]Process
What’s happening? Nothing complicated. The service’s only task is to subscribe to updates, receive them, and send them to Kafka, where other consumers can then read the data.
sequenceDiagram
    participant AnyConsumer
    participant Kafka
    participant TGC
    participant Telegram
    TGC->>+Telegram: setWebhook(tgc.example.com/webhook).
    Telegram->>-TGC: 200 OK
    Note over Telegram,TGC: We set new WebHook
    Telegram->>TGC: POST with Updates[]
    TGC->>Kafka: Pushing new Updates[]
    Telegram->>TGC: POST with Updates[]
    TGC->>Kafka: Pushing new Updates[]
    Note over Telegram,TGC: Telegram sends us updates
    AnyConsumer-->>Kafka: Get Updates[]