Хостинг: Zeabur (Node.js)
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
Затем cd
в 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. Вы можете ознакомиться с этим руководством по настройке переменных окружения в Zeabur._BOT _TOKEN
Теперь корневая директория вашего проекта должна выглядеть следующим образом:
.
├── node_modules/
├── src/
│ └── bot.ts
├── package.json
├── package-lock.json
└── tsconfig.json
А затем нам нужно добавить скрипты start
в наш package
. Теперь наш package
должен быть похож на этот:
{
"name": "telegram-bot-starter",
"version": "1.0.0",
"description": "Стартовый бот Telegram с TypeScript и 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 dashboard.
- Нажмите на кнопку
New Project
, затем нажмите на кнопкуDeploy New Service
, выберитеGit
в качестве источника и выберите ваш репозиторий.Hub - Перейдите на вкладку
Variables
, чтобы добавить переменные окружения, напримерTELEGRAM
._BOT _TOKEN - Ваш сервис будет развернут автоматически.
Метод 2: Развертывание с помощью Zeabur CLI
cd
в каталог проекта и выполните следующую команду:
npx @zeabur/cli deploy
Следуйте инструкциям, чтобы выбрать регион для развертывания, и ваш бот будет развернут автоматически.