Hosting: Zeabur (Node.js)
Zeabur merupakan sebuah platform yang menawarkan layanan untuk men-deploy aplikasi full-stack kamu dengan mudah. Ia mendukung berbagai macam bahasa pemrograman dan framework, termasuk diantaranya adalah Node.js dan grammY.
Tutorial ini akan memandu kamu untuk men-deploy bot grammY Node.js ke Zeabur.
Mencari yang versi Deno-nya?
Tutorial ini ditujukan khusus untuk men-deploy bot Telegram yang dibuat menggunakan Node.js ke Zeabur. Jika kamu mencari yang versi Deno-nya, silahkan beralih ke tutorial berikut.
Prasyarat
Sebelum memulai, kamu perlu terlebih dahulu membuat akun Git
Cara 1: Membuat Proyek Baru dari Awal
Buat permulaan proyeknya, lalu instal dependensi yang dibutuhkan:
# Buat permulaan proyek.
mkdir grammy-bot
cd grammy-bot
npm init -y
# Instal dependensi utama.
npm install grammy
# Instal dependensi pengembangan.
npm install -D typescript ts-node @types/node
# Buat permulaan TypeScript.
npx tsc --init
2
3
4
5
6
7
8
9
10
11
12
13
Kemudian, cd
ke src
, lalu buat sebuah file bernama bot
. File tersebut merupakan tempat untuk menulis kode bot kamu.
Isi file dengan kode berikut:
import { Bot } from "grammy";
const token = process.env.TOKEN_BOT_TELEGRAM;
if (!token) throw new Error("TOKEN_BOT_TELEGRAM belum disetel");
const bot = new Bot(token);
bot.on("message:text", async (ctx) => {
console.log("Pesan: ", ctx.message.text);
const response = "Halo, saya adalah sebuah bot!";
await ctx.reply(response);
});
bot.start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Catatan: Ambil token bot kamu di @Bot
Father , lalu buat sebuah environment variable di Zeabur bernamaTOKEN
yang memuat token bot tersebut._BOT _TELEGRAM Panduan untuk menyetel environment variable di Zeabur bisa dilihat di tutorial berikut.
Sekarang, direktori root proyek kamu seharusnya memiliki struktur seperti ini:
.
├── node_modules/
├── src/
│ └── bot.ts
├── package.json
├── package-lock.json
└── tsconfig.json
Jika sudah sesuai, tambahkan script start
ke package
. Sekarang, struktur package
kamu semestinya serupa dengan ini:
{
"name": "bot-telegram-grammy",
"version": "1.0.0",
"description": "Bot Telegram menggunakan TypeScript dan 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
Sekarang kamu sudah bisa menjalankan bot secara lokal menggunakan perintah berikut:
npm run start
Cara 2: Menggunakan Templat yang Disediakan oleh Zeabur
Zeabur memiliki sebuah templat untuk bot Telegram grammY yang bisa kamu gunakan sebagai acuan. Kamu bisa menemukannya di repositori berikut.
Sekarang, kamu bisa mulai menulis kode bot menggunakan templat tersebut.
Men-deploy
Cara 1: Men-deploy dari GitHub melalui Dashboard Zeabur
- Buat sebuah repositori privat ataupun publik di GitHub, kemudian push kode kamu ke repository tersebut.
- Beralih ke dashboard Zeabur.
- Klik tombol
New Project
, lalu klik tombolDeploy New Service
, pilihGit
sebagai sumbernya, kemudian pilih repositori yang telah kamu buat tadi.Hub - Beralih ke tab
Variables
untuk menambahkan environment variable yang diperlukan, misalnyaTOKEN
._BOT _TELEGRAM - Jika sudah, bot akan ter-deploy secara otomatis.
Cara 2: Men-deploy Menggunakan CLI Zeabur
cd
ke direktori proyek kamu, lalu jalankan perintah berikut:
npx @zeabur/cli deploy
Ikuti instruksi yang ditampilkan untuk memilih lokasi deploy. Jika sudah, bot akan ter-deploy secara otomatis.