Workspace for development and tests
Fund package maintenance!
Open Issues: 0
- longman/telegram-bot: @dev
- php-telegram-bot/fluent-keyboard: @dev
- vlucas/phpdotenv: ^5.4
- pestphp/pest: ^1.21
This package is auto-updated.
Last update: 2023-05-24 23:11:31 UTC
Table of Contents
About this repository
This repository is a boilerplate for development of the php-telegram-bot.
Cloning the repository
git clone --recurse-submodules https://github.com/php-telegram-bot/workspace.git
After cloning the workspace, you can use the workspace as if it were a project. We provided a few scripts and a docker-compose.yml that configures a webserver and a local Telegram Bot API server for using and testing webhooks.
Working on php-telegram-bot
To work on the php-telegram-bot repository itself you need to
cd into the
packages/php-telegram-bot directory and
checkout a branch with
git checkout develop
To pull all the current changes from upstream you can call from any location
git submodule update --remote --merge
If you want to commit changes to upstream, you can simply do that as anywhere else.
By default the Docker setup launches preconfigured with the following containers:
- nginx Webserver
- to accept webhook calls from the custom bot api server
- php-fpm PHP 8.1
- runs all the code
- mariadb Database
- already has the structure imported
- tdlight Custom Bot API Server
- Lighter version of the custom Telegram bot API server.
To start the container copy the
.env.example into a
.env file and fill out your
TELEGRAM_API_HASH data from https://my.telegram.org/apps.
After this you can start the containers with
docker-compose up -d
Using the bot
By default there is a /start command.
So if you've also filled out your
TELEGRAM_BOT_TOKEN in your
.env file, you can execute
setWebhook.php inside the php Docker container.
If successful, you should be able to send a
/start to your bot.
Manually calling the webserver
If you need to call the webserver directly or have a look at the stats of the Bot API server you can create
docker-compose.override.yml file and add the needed port forwarding like in this example:
version: '3' services: nginx: ports: - 8080:80 api-server: environment: TELEGRAM_STAT: yes ports: - 8082:8082
The first block inside
services extends the nginx service and adds a port forwarding from 8080 (on your host) to 80 inside the container.
You can then call any php script or static files with
The second block extends the api-server service, enables the stats with an environment variable and forwards the port 8082 from the container to your host.
This allows you to call
http://localhost:8082 to access the stats page of the Telegram Bot API server and check i.e. if the webhook was registered correctly.