Sign inSign up

ayokas/dlrg-lette-telegram-bot

By ayokas

•Updated over 1 year ago

DLRG Lette's Telegram Bot as Docker Container

Image
0

1.2K

ayokas/dlrg-lette-telegram-bot repository overview

⁠Telegram Bot - DLRG Lette e. V.

Es handelt sich hierbei um einen Telegram-Bot der DLRG Lette für den schnellen Informationsaustausch. Ein "Newsletter-Bot" wenn man so will.

⁠Funktionen Benutzer:

  • Abonnieren von verschiedenen Kategorien.
  • Ändern des Abo-Status der Kategorien.
  • Vergessen werden (sämtliche gespeicherten Daten werden entfernt).

⁠Funktionen Administratoren / Moderatoren:

  • Senden einer Nachricht an alle Abonnenten einer bestimmten Kategorie.
  • Hinzufügen von Moderatoren.
  • Ändern von Berechtigungsrollen von Moderatoren (Admin / Moderator)
  • Entfernen von Moderatoren (Nur Admins)
  • Hinzufügen, Ändern und Löschen von Kategorien

⁠Erforderliche Komponenten

  • MongoDB
  • 2 Telegram Bots (bzw. Token, können über Telegram Botfather⁠ erstellt werden)
    • AdminBot -> Für Moderatoren und Admins
    • SenderBot -> Für die Benutzer / Abonennten

⁠Einrichtung

⁠SpringBoot Parameter

Für grundlegende SpringBoot Parameter verweise ich auf die aktuelle Dokumentation: SpringBoot Documentation: Appendix A: Common application properties⁠

⁠Erforderlich

app.name= Name der Spring Boot Applikation, hat keine Auswirkungen auf das Telegram Erscheinungsbild

auth.admin-bot-token= Token des Admin-Bots

auth.sender-bot-token= Token des Sender-Bot

webhook.external-admin-address= Die Basisadresse der Webhooks, von außen auflösbar

webhook.external-sender-address=${webhook.external-admin-address}

webhook.external-admin-port=443

webhook.external-sender-port=443

⁠Optional

Diese URLs werden an Telegram gesendet um Updates als WebHook zu erhalten. Sie müssen von außen erreichbar sein (vor Proxies etc.) und müssen auf /update enden.

webhook.external-admin-url=https://${webhook.external-admin-address}:${webhook.external-admin-port}/update/

webhook.external-sender-url=https://${webhook.external-sender-address}:${webhook.external-sender-port}/update/

⁠MongoDB

  • Konfiguration der MonoDB über spring.data.mongodb.* Parameter.
  • Eine MonoDB Datenbank mit folgenden Collections:
    • adminChat
    • category
    • senderChat
    • user
    • texts

Bis auf texts sind alle Collections initial leer.

⁠Initaldaten texts collection

Initialdaten der texts collection im JSON Format⁠

⁠Docker Konfiguration

Nachfolgend finden sich Informationen zum Betrieb als Docker Container Docker Hub⁠.

⁠Umgebungsvariablen

Im Docker Betrieb können alle wichtigen Einstellungen über Umgebungsvariablen hinterlegt werden. Alternativ können auch bereits existierende Konfigurationen nach dem ersten Start übernommen werden, sofern sie im Volume vorhanden sind und korrekt benannt sind.

VariableBeschreibungStandard
SPRING_PROFILE_ACTIVEAktives Spring Boot Profil / Name der .properties Dateiapplication
SPRING_CONFIG_LOCATIONBeschreibt den Ordner in welchem nach der Konfiguration gesucht wird/telegram-bot-config
ADMIN_BOT_TOKENToken des Admin-Bot
SENDER_BOT_TOKENToken des Sender-Bot
EXTERNAL_ADMIN_ADDRESSSiehe webhook.external-admin-address
EXTERNAL_SENDER_URLSiehe webhook.external-sender-address${EXTERNAL_ADMIN_ADDRESS}
EXTERNAL_PORTSiehe webhook.external-admin-port, gilt für Admin- und Sender-Bot443
CONTAINER_PORTPort auf dem die Applikation / der Container hört, automatische Portfreigabe des Docker Containers8080
BOT_NAMESiehe app.namemongodb
MONGO_HOSTMongoDB Host / IP unter dem die MongoDB erreichbar ist27017
MONGO_PORTMongoDB Port
MONGO_DBMongoDB Datenbankname
MONGO_USERMongoDB Benutzer für Kommunikation
MONGO_PWMongoDB Kennwort
MONGO_AUTH_DBAuthentifizierungstabelle (normalerweise immer Stanard)admin
⁠Volumes

Es wird ein Volume benötigt für die Konfiguration, der Pfad wird aus SPRING_CONFIG_LOCATION übernommen.

Tag summary

Content type

Image

Digest

sha256:3a7509c0c…

Size

116.1 MB

Last updated

over 1 year ago

docker pull ayokas/dlrg-lette-telegram-bot