# Unofficial Docker image of Telegram Bot API Here is Docker image for https://github.com/tdlib/telegram-bot-api The Telegram Bot API provides an HTTP API for creating [Telegram Bots](https://core.telegram.org/bots). If you've got any questions about bots or would like to report an issue with your bot, kindly contact us at [@BotSupport](https://t.me/BotSupport) in Telegram. ## Quick reference Before start, you will need to obtain `api-id` and `api-hash` as described in https://core.telegram.org/api/obtaining_api_id and specify them using the `TELEGRAM_API_ID` and `TELEGRAM_API_HASH` environment variables. And then to start the Telegram Bot API all you need to do is `docker run -d -p 8081:8081 --name=telegram-bot-api --restart=always -v telegram-bot-api-data:/var/lib/telegram-bot-api -e TELEGRAM_API_ID= -e TELEGRAM_API_HASH= aiogram/telegram-bot-api:latest` ## Configuration Container can be configured via environment variables ### `TELEGRAM_API_ID`, `TELEGRAM_API_HASH` Application identifiers for Telegram API access, which can be obtained at https://my.telegram.org as described in https://core.telegram.org/api/obtaining_api_id ### `TELEGRAM_STAT` Enable statistics HTTP endpoint. Usage: `-e TELEGRAM_STAT=1 -p 8082:8082` and then check that `curl http://:8082` returns server statistic ### `TELEGRAM_FILTER` "/". Allow only bots with 'bot_user_id % modulo == remainder' ### `TELEGRAM_MAX_WEBHOOK_CONNECTIONS` default value of the maximum webhook connections per bot ### `TELEGRAM_VERBOSITY` log verbosity level ### `TELEGRAM_LOG_FILE` Filename where logs will be redirected (By default logs will be written to stdout/stderr streams) ### `TELEGRAM_MAX_CONNECTIONS` maximum number of open file descriptors ### `TELEGRAM_PROXY` HTTP proxy server for outgoing webhook requests in the format http://host:port ### `TELEGRAM_LOCAL` allow the Bot API server to serve local requests ### `TELEGRAM_HTTP_IP_ADDRESS` Use the `TELEGRAM_HTTP_IP_ADDRESS: "[::]"` parameter to listen on the ipv6 intranet ### `TELEGRAM_HTTP_PORT` Set which port the api server should listen to if you want to run the image in network mode as host and want to change the port. If not set then the api server will listen to port 8081. ## Start with persistent storage Server working directory is `/var/lib/telegram-bot-api` so if you want to persist the server data you can mount this folder as volume: `-v telegram-bot-api-data:/etc/telegram/bot/api` Note that all files in this directory will be owned by user `telegram-bot-api` and group `telegram-bot-api` (uid: `101`, gid: `101`, compatible with [nginx](https://hub.docker.com/_/nginx) image) ## Usage via docker stack deploy or docker-compose ```yaml version: '3.7' services: telegram-bot-api: image: aiogram/telegram-bot-api:latest environment: TELEGRAM_API_ID: "" TELEGRAM_API_HASH: "" volumes: - telegram-bot-api-data:/var/lib/telegram-bot-api ports: - "8081:8081" volumes: telegram-bot-api-data: ```