Хостинг: Zeabur (Node.js)
Zeabur — це платформа, яка дозволяє легко розгортати full-stack застосунки. Zeabur підтримує різні мови програмування та фреймворки, зокрема Node.js та grammY.
У цьому посібнику ви дізнаєтеся, як розгорнути своїх ботів grammY за допомогою Node.js на Zeabur.
Шукаєте версію для Deno?
Цей посібник пояснює, як розгорнути бота Telegram на Zeabur за допомогою Node.js. Якщо ви шукаєте версію для Deno, перегляньте цей посібник.
Передумови
Щоб слідувати посібнику, вам потрібно мати облікові записи Git
Спосіб 1: створення нового проєкту з нуля
Ініціалізуйте ваш проєкт та встановіть деякі необхідні залежності:
# Ініціалізуємо проєкт.
mkdir grammy-bot
cd grammy-bot
npm init -y
# Встановлюємо головні залежності.
npm install grammy
# Встановлюємо залежності для розробки.
npm install -D typescript ts-node @types/node
# Ініціалізуємо TypeScript.
npx tsc --init
2
3
4
5
6
7
8
9
10
11
12
13
Потім перейдіть до каталогу src
і створіть файл з назвою bot
. У ньому ви будете писати код вашого бота.
Тепер ви можете почати писати код вашого бота в src
.
import { Bot } from "grammy";
const token = process.env.TELEGRAM_BOT_TOKEN;
if (!token) throw new Error("TELEGRAM_BOT_TOKEN не встановлено");
const bot = new Bot(token);
bot.on("message:text", async (ctx) => {
console.log("Повідомлення: ", ctx.message.text);
const response = "Привіт, я бот!";
await ctx.reply(response);
});
bot.start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Примітка: отримайте токен бота за допомогою @Bot
Father в Telegram і встановіть його як змінну оточенняTELEGRAM
в Zeabur._BOT _TOKEN Ви можете ознайомитися з цим посібником щодо налаштування змінних середовища в Zeabur.
Тепер кореневий каталог вашого проєкту має виглядати так:
.
├── node_modules/
├── src/
│ └── bot.ts
├── package.json
├── package-lock.json
└── tsconfig.json
Далі нам потрібно додати до нашого package
скрипт start
. Тепер наш package
має виглядати приблизно так:
{
"name": "telegram-bot-starter",
"version": "1.0.0",
"description": "Telegram Bot Starter with TypeScript and grammY",
"scripts": {
"start": "ts-node src/bot.ts"
},
"author": "MichaelYuhe",
"license": "MIT",
"dependencies": {
"grammy": "^1.21.1"
},
"devDependencies": {
"@types/node": "^20.14.5",
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Тепер ви можете запустити бота локально за допомогою наступної команди:
npm run start
Спосіб 2: використання шаблону Zeabur
Zeabur вже надає шаблон, який ви можете використовувати. Ви можете знайти його тут.
Ви можете просто скористатися шаблоном і почати писати код свого бота.
Розгортання
Спосіб 1: розгортання з GitHub на інформаційній панелі Zeabur
- Створіть репозиторій на GitHub (він може бути публічним або приватним) і завантажте туди свій код.
- Перейдіть на інформаційну панель Zeabur.
- Натисніть на кнопку
New Project
, потім на кнопкуDeploy New Service
, виберітьGit
як джерело і виберіть свій репозиторій.Hub - Перейдіть на вкладку
Variables
, щоб додати ваші змінні оточення, як-отTELEGRAM
._BOT _TOKEN - Ваш сервіс буде розгорнуто автоматично.
Спосіб 2: розгортання за допомогою Zeabur CLI
Перейдіть в каталог вашого проєкту і виконайте наступну команду:
npx @zeabur/cli deploy
Дотримуйтесь інструкцій, щоб вибрати регіон для розгортання, і ваш бот буде розгорнутий автоматично.