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
mod
atau.ts mod
, 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.19.2/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”, lalu pergi ke bagian “Deploy from GitHub repository”.
Pasang aplikasi GitHub di akun atau organisasimu, kemudian pilih repositori kode bot kamu berada.
Pilih branch dan file
mod
yang akan di-deploy..ts
Metode 2: Menggunakan deployctl
Metode ini diperuntukkan kepada pengguna tingkat lanjut yang nantinya proyek akan di-deploy melalui command line atau GitHub Actions.
Kunjungi dashboard Deno Deploy.
Pilih “New Project”, kemudian pilih “Empty Project”.
Pasang
deployctl
.Buat token akses baru.
Jalankan dengan perintah:
shdeployctl deploy --project <project> ./mod.ts --prod --token <token>
1Untuk menyiapkan GitHub Actions, dapat merujuk ke sini.
Metode 3: Menggunakan URL
Kamu memerlukan URL publik yang mengarah ke file
mod
-mu untuk menggunakan metode ini..ts
- Buat proyek baru di Deno Deploy.
- Pilih “Deploy URL”
- Masukkan URL publik file
mod
-mu, lalu pilih “Deploy”..ts
Catatan
Setelah mendapati bot-mu dapat berjalan, kamu harus melakukan konfigurasi pada pengaturan webhook untuk menggunakan URL bot-mu yang baru.
https://api.telegram.org/bot<token>/setWebhook?url=<url>
Ganti <token>
dengan token bot-mu, dan <url>
dengan URL lengkap bot kamu.