Konfigurasi & Environment
Penjelasan
Yesod scaffolding menyimpan pengaturan aplikasi di config/settings.yml yang dibaca ke tipe AppSettings lewat library yaml dan bisa memakai placeholder environment variable seperti _env:DATABASE_URL:default_value, sehingga nilai bisa berbeda antara development dan production tanpa mengubah kode. File ini biasanya mengatur hal seperti connection pool size database, port aplikasi, dan flag seperti development mode. Untuk secret yang tidak boleh masuk version control (API key, database password), praktik yang dianjurkan adalah menaruhnya sebagai environment variable murni di server production, sementara file .env atau config/settings.yml lokal bisa dipakai untuk development dengan nilai dummy yang aman di-commit.
Contoh Konsep
# config/settings.yml
static-dir: "_env:STATIC_DIR:static"
host: "_env:HOST:*4"
port: "_env:PORT:3000"
approotRelative: false
database:
user: "_env:PGUSER:toko_app"
password: "_env:PGPASS:"
host: "_env:PGHOST:localhost"
port: "_env:PGPORT:5432"
database: "_env:PGDATABASE:toko_app"
poolsize: "_env:PGPOOLSIZE:10"
Praktikum
Tambahkan pengaturan MAILER_API_KEY di config/settings.yml dengan default string kosong, lalu jelaskan cara mengisinya lewat environment variable saat deployment.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan pernah commit nilai asli secret ke config/settings.yml, gunakan placeholder _env: dengan default kosong atau nilai dummy saja.