Daftar isi
Token bot, password database, dan API key adalah kunci. Siapa pun yang memegangnya bisa mengendalikan bot atau membaca datamu. Cara paling aman menyimpannya adalah di file bernama .env, bukan di dalam kode. Panduan ini mengajarkan caranya dari nol, lengkap dengan langkah kalau token sudah telanjur bocor.
Kenapa token jangan ditulis langsung di kode
Kode itu mudah berpindah tangan. Kode diunggah ke GitHub, dikirim ke teman atau jasa pembuat bot, dikompres jadi zip, atau dilihat orang lain yang kamu beri akses ke server. Token yang tertulis di dalamnya ikut ke mana pun kodenya pergi.
Contoh yang berbahaya:
client.login('MTIzNDU2Nzg5.contoh-token-rahasia')Contoh yang aman:
client.login(process.env.BOT_TOKEN)Di cara kedua, kodenya tidak memuat rahasia apa pun. Nilai aslinya disimpan di file .env.
Apa itu file .env
.env adalah file teks kecil yang isinya pasangan NAMA=nilai, satu per baris:
BOT_TOKEN=tempel_token_di_sini
DB_PASSWORD=tempel_password_di_siniKodemu membaca nilainya lewat nama (BOT_TOKEN), jadi file kodenya boleh dibagikan tanpa membocorkan rahasia. Yang perlu dijaga cukup satu file: .env.
Langkah 1: Pasang paket dotenv (Node.js)
Supaya kode Node.js bisa membaca file .env, kamu butuh paket dotenv.
- Tambahkan
dotenvke bagian"dependencies"dipackage.json:
"dependencies": {
"dotenv": "^16.4.5"
}- Upload
package.jsonke server. Panel memasang paketnya otomatis saat server menyala.
Kalau kamu tidak punya package.json, isi nama paket dotenv di kolom paket tambahan di tab Startup. Nama kolomnya bisa berbeda tiap egg, detailnya di Startup dan variabel.
Memakai Next.js? Lewati langkah ini dan langkah 2. Next.js membaca file
.envsendiri tanpa dotenv. Lanjut ke langkah 3, dan baca juga panduan hosting Next.js.
Langkah 2: Ubah kode supaya membaca dari .env
- Di baris paling atas file utama botmu (misalnya
index.js), tambahkan:
require('dotenv').config()- Ganti setiap token yang tertulis langsung dengan
process.env.NAMA:
const token = process.env.BOT_TOKEN
client.login(token)Nama setelah process.env. harus sama persis dengan nama di file .env, termasuk huruf besar dan kecil.
Kalau botmu memakai Python, pasang paket python-dotenv lalu tulis:
from dotenv import load_dotenv
import os
load_dotenv()
token = os.getenv("BOT_TOKEN")Langkah 3: Buat file .env langsung di panel
Buat file ini di panel, jangan di komputermu lalu di-zip. Dengan begitu rahasiamu tidak tersimpan di komputer dan tidak ikut terkirim bersama project.
- Login ke panel, buka servermu, lalu tab Files.
- Klik New File, beri nama
.env. Nama ini diawali titik dan tidak ada nama di depannya. - Buka file itu, lalu isi dengan format ini:
BOT_TOKEN=tempel_token_botmu_di_sini- Klik Save.
Aturan penulisan supaya tidak error:
- Satu rahasia per baris, dengan format
NAMA=nilai. - Tanpa spasi di sekitar tanda
=. - Tanpa tanda kutip di sekitar nilai.
- Jangan ada baris atau spasi kosong di akhir nilai.

Langkah 4: Restart dan cek
File .env hanya dibaca saat server menyala. Setiap kali kamu mengubah isinya, klik Restart di tab Console.
Cek log. Kalau botmu langsung online, berarti beres. Kalau muncul undefined atau invalid token, lihat tabel masalah di bawah.
Kalau kamu memakai Git
- Tambahkan
.envke file.gitignoredi project-mu supaya tidak ikut ter-push:
.env
node_modules- Buat file contoh bernama
.env.exampleyang berisi nama-namanya saja, tanpa nilai asli, supaya kamu (atau orang lain) tahu apa saja yang harus diisi:
BOT_TOKEN=
DB_PASSWORD=- File
.envdibuat sekali di panel.git pulltidak menimpanya selama.envtidak ada di repo.
Siapa saja yang bisa membaca file .env
File .env terbuka untuk:
- Kamu, lewat tab Files.
- Sub user yang kamu beri izin File.
- Siapa pun yang memegang login panelmu.
- Siapa pun yang memegang file backup-mu.
Karena itu, jangan memberikan password panelmu kepada siapa pun, termasuk tim kami, yang tidak pernah memintanya. Beri akses lewat sub user dengan izin sekecil mungkin. Lihat juga Keamanan akun dan server.
Token sudah telanjur bocor? Lakukan ini
Menghapus token dari kode atau dari GitHub tidak cukup. Riwayat commit menyimpannya dan orang lain mungkin sudah menyalinnya. Anggap token lama sudah tidak aman.
- Buat token baru di sumbernya:
- Bot Telegram: kirim
/revokeke BotFather, pilih botmu. - Bot Discord: buka Developer Portal, pilih aplikasi, menu Bot, lalu Reset Token.
- Database: buka tab Databases di panel, lalu pakai Rotate password.
- Bot Telegram: kirim
- Tempel nilai baru di file
.env. - Restart server.
- Buka tab Activity untuk memeriksa ada tindakan yang tidak kamu kenal atau tidak. Lihat Tab Activity.
Masalah yang sering muncul
| Yang kamu lihat | Penyebab | Solusi |
|---|---|---|
Token terbaca undefined | Lupa require('dotenv').config() di baris atas, atau nama di kode beda dengan nama di .env | Tambahkan barisnya, dan samakan namanya persis |
An invalid token was provided atau sejenisnya | Token salah, ada spasi, ada tanda kutip, atau nilainya kosong | Salin ulang token tanpa spasi dan tanpa kutip |
Cannot find module 'dotenv' | Paket dotenv belum ada di dependencies | Tambahkan lalu Restart. Lihat Mengatasi error "Cannot find module" |
| Sudah diganti tapi masih memakai nilai lama | Server belum di-Restart | Klik Restart |
Di Next.js, password yang mengandung $ terbaca salah | Tanda $ dianggap bagian dari variabel | Tulis \$ sebagai gantinya |
Tips
- Satu server punya satu file
.env. Server lain butuh file.envsendiri. - Simpan salinan
.envdi tempat yang hanya kamu yang bisa mengaksesnya, misalnya pengelola kata sandi. - Jangan kirim isi
.envlewat chat, tangkapan layar, atau forum saat meminta bantuan. Kalau perlu menunjukkan isinya, sensor dulu nilainya. - Kalau memakai database, ambil detail koneksinya dari Cara membuat dan memakai database.
Pertanyaan yang sering muncul
Apakah file .env aman di panel?
Isinya hanya bisa dibaca orang yang punya akses ke servermu: kamu dan sub user dengan izin File. Selama kamu tidak membagikan login panel, file ini aman.
Apa bedanya dengan variabel di tab Startup?
Variabel di tab Startup adalah pengaturan milik egg, misalnya versi Node.js atau alamat Git. Token dan password aplikasimu tetap ditaruh di .env.
Boleh memakai tanda kutip di nilai? Sebaiknya tidak, supaya sama dengan panduan lain di sini dan tidak ikut terbaca sebagai bagian token.
Saya sudah upload token ke GitHub. Menghapus filenya cukup? Tidak. Reset token di sumbernya seperti langkah di atas.
Apakah artikel ini membantu?
