Study
Rocket

Konfigurasi Rocket.toml

Penjelasan

Rocket membaca konfigurasi dari file `Rocket.toml` di root project, terpisah per environment (`[default]`, `[debug]`, `[release]`) — memudahkan kamu punya port atau setting berbeda saat development dibanding production tanpa perlu logic if/else manual di kode. Konfigurasi umum yang diatur di sini: `address` (default `127.0.0.1`), `port` (default `8000`), `workers` (jumlah thread worker), dan section custom seperti `[default.databases.*]` yang sudah kamu lihat di topik database. Rocket juga bisa membaca override lewat environment variable dengan prefix `ROCKET_`, misalnya `$ROCKET_PORT` menimpa `port` di `Rocket.toml` — berguna untuk deployment di platform yang mengatur port lewat environment variable (seperti banyak platform hosting cloud). Untuk data konfigurasi custom milikmu sendiri (bukan bawaan Rocket), kamu bisa menambahkan key bebas di `Rocket.toml` lalu membacanya lewat `rocket::Config` atau figment (library konfigurasi yang dipakai Rocket di baliknya) — tapi untuk kebanyakan kasus, environment variable biasa yang dibaca manual lewat `std::env::var(...)` tetap jadi pilihan paling sederhana untuk secret seperti API key.

Contoh Konsep

// Rocket.toml
// [default]
// port = 8000
// address = "127.0.0.1"
//
// [debug]
// port = 8000
//
// [release]
// port = 80
// address = "0.0.0.0"

// Override lewat environment variable saat menjalankan:
// ROCKET_PORT=9000 cargo run

#[macro_use] extern crate rocket;

#[get("/")]
fn hello() -> &'static str {
    "Hello, Rocket!"
}

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/", routes![hello])
}

Praktikum

Tulis isi `Rocket.toml` (sebagai komentar/string) yang mengatur port 4000 untuk environment debug dan port 8080 untuk release.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kalau kamu sering lupa environment mana yang sedang aktif, jalankan `cargo run` untuk debug (default) dan `cargo run --release` untuk memaksa environment release — Rocket secara otomatis memilih section `[debug]` atau `[release]` sesuai mode build, ditambah override apa pun dari `[default]` dan environment variable `ROCKET_*`.