Живой пример: @inlinegooglesearchbot
Бот ищет в Google прямо из любого чата Telegram через inline-режим.
Телеграм-бот на aiogram 3, который оборачивает Google Custom Search API.
Запросы кешируются в Redis, настройки хранятся в SQLite.
-
Сделайте fork репозитория.
-
Сгенерируйте SSH-ключ и положите приватную часть в Repository → Settings → Secrets → Actions:
Secret Что кладём SSH_HOSTIP вашего VPS SSH_USERЛогин SSH_PORT(опц.) если ≠ 22 SSH_KEYприватный ключ BOT_TOKENтокен бота из @BotFather GOOGLE_CXидентификатор поиска (см. ниже) -
На сервере установите Docker +
docker compose. -
Пушьте в
main— GitHub Actions сам всё соберёт и перезапустит контейнеры.
git clone https://github.com/danosito/inlinegooglesearchbot.git
cd inlinegooglesearchbot
cp .env.sample .env # заполните переменные
docker compose up -d --build| Что нужно | Где взять | Шаги |
|---|---|---|
BOT_TOKEN |
@BotFather | /newbot → имя → юзернейм |
GOOGLE_CX |
Programmable Search Engine | «Поиск во всем интернете» → Create → копируйте Search engine ID |
GOOGLE_API_KEY |
см. команда /token в боте |
Google Cloud Console → включить Custom Search API → Create credentials → API key |
| Слой | Технологии |
|---|---|
| Бот | Python 3.x, aiogram 3, asyncio |
| Кэш | Redis 7 (alpine) |
| Хранилище | SQLite (через aiosqlite) |
| CI/CD | GitHub Actions → SSH Deploy |
| Контейнеризация | Docker + docker compose |
| Линт/формат | ruff |
Inline Telegram bot that shows Google search results inside any chat.
- Add secrets (
SSH_HOST,SSH_USER,SSH_KEY,BOT_TOKEN,GOOGLE_CX) - Install Docker on your Linux VPS
- Every push to
maintriggers lint + auto-deploy (docker compose up -d --build)
git clone https://github.com/danosito/inlinegooglesearchbot.git
cd inlinegooglesearchbot
cp .env.sample .env # fill variables
docker compose up -d --build| Variable | How to get |
|---|---|
BOT_TOKEN |
Create bot via @BotFather |
GOOGLE_CX |
Create Programmable Search Engine → “Search the entire web” |
GOOGLE_API_KEY |
Google Cloud Console → enable Custom Search API → create API key |
- Python 3.x +
aiogram 3 - Redis cache
- SQLite settings store
- Docker / docker-compose
- GitHub Actions CI/CD
- Lint & format via ruff
Project is maintained in Russian; feel free to open issues in English too.