Gobot

Multi-purpose bot for the Telegram Messenger based on gotgbot and inspired
by Python-Telegram-Bot.
The source code is here so YOU can do what you want with it - don't ask questions about it nor ask for help on how to use
it!
Features
- Written in Go
- Uses MySQL database
- Supports plugins
- Whitelist included
- Supports webhooks and long-polling
Usage
- Download binaries from Actions tab or build it yourself (
go build)
- Copy
.env.exampleto .env and fill it in (you can also use environment variables)
- Run it!
Using a webhook
To use a webhook, set the webhook-related variables. If you don't, long-polling will be used.
Example with Hookdeck:
- Copy your
https://events.hookdeck.com/e/... URL to WEBHOOK_PUBLIC_URL variable
- Set a webhook port (e.g.
41320) to PORT
- Set
WEBHOOK_URL_PATH to a custom path
- This is where the internal webhook server will listen on. Gotgbot does not support an empty path.
- Remember to set the
WEBHOOK_PUBLIC_URL to https://.../WEBHOOK_URL_PATH. This variable is the URL that is sent to Telegram to notify them to which URL to send their data. WEBHOOK_URL_PATH is not sent to Telegram, nor appended to the WEBHOOK_PUBLIC_URL internally! It's just used for the internal http server.
- For Hookdeck, set "Destionation Type" to "CLI" and insert your path
- Use the Hookdeck CLI:
hookdeck listen 41320 [SOURCE]. You can also use cloudflared, etc. It MUST be HTTPS!
More options
Set the following variables to any value (like "1") to enable them:
PRINT_MSGS: Print all messages the bot receives to the terminal
PRETTY_PRINT_LOG: Pretty print log
DEBUG: Enable debug logs (verbose, contains secrets!)
IGNORE_SQL_MIGRATION: Ignore the SQL migration feature when you want to migrate yourself (for example with
PlanetScale since it doesn't support foreign key references).