by Zass Desuta

Bantuan

Cara Menyimpan Token Bot dan Password dengan Aman Pakai File .env

Jangan tulis token bot atau password database langsung di kode. Simpan di file .env: cara membuatnya di panel, membacanya dari kode, dan apa yang dilakukan kalau token sudah telanjur bocor.

Jawiya ClarissaJawiya Clarissa5 menit baca

Bagikan
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:

JavaScript
client.login('MTIzNDU2Nzg5.contoh-token-rahasia')

Contoh yang aman:

JavaScript
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:

Teks
BOT_TOKEN=tempel_token_di_sini
DB_PASSWORD=tempel_password_di_sini

Kodemu 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.

  1. Tambahkan dotenv ke bagian "dependencies" di package.json:
JSON
"dependencies": {
  "dotenv": "^16.4.5"
}
  1. Upload package.json ke 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 .env sendiri tanpa dotenv. Lanjut ke langkah 3, dan baca juga panduan hosting Next.js.

Langkah 2: Ubah kode supaya membaca dari .env

  1. Di baris paling atas file utama botmu (misalnya index.js), tambahkan:
JavaScript
require('dotenv').config()
  1. Ganti setiap token yang tertulis langsung dengan process.env.NAMA:
JavaScript
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:

Python
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.

  1. Login ke panel, buka servermu, lalu tab Files.
  2. Klik New File, beri nama .env. Nama ini diawali titik dan tidak ada nama di depannya.
  3. Buka file itu, lalu isi dengan format ini:
Teks
BOT_TOKEN=tempel_token_botmu_di_sini
  1. 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.

gambar

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 .env ke file .gitignore di project-mu supaya tidak ikut ter-push:
Teks
.env
node_modules
  • Buat file contoh bernama .env.example yang berisi nama-namanya saja, tanpa nilai asli, supaya kamu (atau orang lain) tahu apa saja yang harus diisi:
Teks
BOT_TOKEN=
DB_PASSWORD=
  • File .env dibuat sekali di panel. git pull tidak menimpanya selama .env tidak 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.

  1. Buat token baru di sumbernya:
    • Bot Telegram: kirim /revoke ke 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.
  2. Tempel nilai baru di file .env.
  3. Restart server.
  4. Buka tab Activity untuk memeriksa ada tindakan yang tidak kamu kenal atau tidak. Lihat Tab Activity.

Masalah yang sering muncul

Yang kamu lihatPenyebabSolusi
Token terbaca undefinedLupa require('dotenv').config() di baris atas, atau nama di kode beda dengan nama di .envTambahkan barisnya, dan samakan namanya persis
An invalid token was provided atau sejenisnyaToken salah, ada spasi, ada tanda kutip, atau nilainya kosongSalin ulang token tanpa spasi dan tanpa kutip
Cannot find module 'dotenv'Paket dotenv belum ada di dependenciesTambahkan lalu Restart. Lihat Mengatasi error "Cannot find module"
Sudah diganti tapi masih memakai nilai lamaServer belum di-RestartKlik Restart
Di Next.js, password yang mengandung $ terbaca salahTanda $ dianggap bagian dari variabelTulis \$ sebagai gantinya

Tips

  • Satu server punya satu file .env. Server lain butuh file .env sendiri.
  • Simpan salinan .env di tempat yang hanya kamu yang bisa mengaksesnya, misalnya pengelola kata sandi.
  • Jangan kirim isi .env lewat 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?

Artikel Terkait

Hubungi kami