Hosting: Deno Deploy
Halaman ini berisi panduan mengenai langkah-langkah meng-hosting bot di Deno Deploy.
Perlu diperhatikan bahwa panduan ini hanya berlaku untuk pengguna Deno. Kamu diharuskan memiliki akun Git
Deno Deploy cocok dipakai untuk bot yang sederhana. Namun, tidak semua fitur Deno tersedia di Deno Deploy. Diantaranya adalah terbatasnya API file system Deno yang didukung. Deno Deploy serupa dengan platform serverless lainnya, bedanya ia diperuntukkan untuk aplikasi Deno saja.
Hasil dari tutorial disini dapat dilihat di repositori bot kami.
Menyiapkan Kode
Ingat! Kamu perlu menjalankan bot dengan webhooks, jadi kamu harus menggunakan
webhook
alih-alih memanggilCallback bot
di kodemu..start()
- Pastikan kamu meng-export object bot di dalam sebuah file agar nantinya bisa di-import ketika ingin menjalankannya.
- Buat sebuah file dengan nama
main
atau.ts main
, ataupun nama lainnya sesuai dengan keinginanmu (tetapi kamu harus mengingatnya karena nanti file tersebut akan digunakan sebagai file deploy utama). File tersebut berisikan:.js
import { webhookCallback } from "https://deno.land/x/grammy@v1.33.0/mod.ts";
// Kamu mungkin perlu mengubah ini agar dapat melakukan import pada object bot-mu.
import bot from "./bot.ts";
const handleUpdate = webhookCallback(bot, "std/http");
Deno.serve(async (req) => {
if (req.method === "POST") {
const url = new URL(req.url);
if (url.pathname.slice(1) === bot.token) {
try {
return await handleUpdate(req);
} catch (err) {
console.error(err);
}
}
}
return new Response();
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Kami menganjurkan kamu untuk menaruh handler di direktori rahasia alih-alih menempatkanya di root (/
). Di contoh kali ini, kita menggunakan token bot (/<token bot>
) sebagai direktori rahasianya.
Men-deploy Bot
Metode 1: Menggunakan GitHub
Metode ini sangat direkomendasikan karena mudah untuk digunakan. Kelebihannya adalah Deno Deploy akan selalu memantau perubahan di repositori tempat kamu menaruh kode bot. Ketika terjadi perubahan, kode tersebut akan di-deploy secara otomatis ke versi yang lebih baru.
Buat sebuah repositori di GitHub, bisa dalam bentuk private ataupun publik.
Taruh kodemu di dalam repositori tersebut.
Direkomendasikan untuk mempunyai satu branch stabil dan branch lain untuk pengetesan supaya branch utama kamu terhindar dari hal-hal yang tidak diinginkan.
Kunjungi dashboard Deno Deploy.
Pilih “New Project”.
Pasang aplikasi GitHub di akun atau organisasimu, kemudian pilih repositori kode bot kamu berada.
Pilih branch yang akan di-deploy.
Pilih file
main
sebagai entrypoint, lalu deploy proyek dengan mengklik “Deploy Project”..ts
Metode 2: Menggunakan deployctl
Metode ini diperuntukkan untuk penggunaan tingkat lanjut atau jika kamu tidak ingin mengunggah kode proyek ke GitHub. Melalui cara ini, kamu bisa men-deploy proyek menggunakan command line atau GitHub Actions.
Instal
deployctl
.Buat sebuah token akses di bagian “Access Tokens”, pengaturan akun.
Pergi ke direktori proyek, lalu jalankan perintah berikut:
shdeployctl deploy --project=<project> --entrypoint=./main.ts --prod --token=<token>
Mengatur environment variable
Setelah di-deploy, kamu bisa mengatur environment variable di bagian pengaturan proyek.
Selain melalui pengaturan proyek, kamu juga bisa mengaturnya melalui command line:
- Taruh semua environment variable di file dotenv, lalu akses dengan menambahkan argumen
-
.-env -file = <file> - Kamu juga bisa menambahkan environment variable satu per satu menggunakan argumen
-
.-env = <key = value>
- Taruh semua environment variable di file dotenv, lalu akses dengan menambahkan argumen
Untuk mengatur GitHub Actions, lihat panduan berikut.
Lihat dokumentasi deployctl untuk informasi lebih lanjut.
Catatan
Setelah mendapati bot-mu dapat berjalan, kamu harus melakukan konfigurasi pada pengaturan webhook untuk menggunakan URL bot-mu yang baru.
curl https://api.telegram.org/bot<token>/setWebhook?url=<url>
Ganti <token>
dengan token bot-mu, dan <url>
dengan URL lengkap bot kamu.