Hosting: Deno Deploy
Halaman ini berisi panduan mengenai cara-cara 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. Selain itu, kamu harus tahu bahwa tidak semua fitur Deno tersedia untuk beberapa aplikasi—termasuk bot kamu—yang berjalan di Deno Deploy. Contohnya, file system di Deno Deploy tidak tersedia. Deno Deploy mirip seperti platform serverless lainnya, tetapi hanya didedikasikan 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 { serve } from "https://deno.land/std@0.160.0/http/server.ts";
import { webhookCallback } from "https://deno.land/x/grammy@v1.11.2/mod.ts";
// Kamu mungkin perlu mengubah ini agar object bot-mu bisa di-import
import bot from "./bot.ts";
const handleUpdate = webhookCallback(bot, "std/http");
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();
});
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
deployctl
Metode 2: Menggunakan 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:
deployctl deploy --project <project> ./mod.ts --prod --token <token>
- Untuk 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. Untuk melakukannya, kirim sebuah request ke
https://api.telegram.org/bot<token>/setWebhook?url=<url>
Ganti <token>
dengan token bot-mu, dan <url>
dengan URL lengkap bot kamu.