Konfigurasi
Keamanan
HTTPS, proxy, secret tersimpan, dan rate limit untuk instalasi yang bisa dijangkau orang lain.
Default-nya aman untuk instalasi lokal. Ubah ini sebelum kamu menaruh Kanesh di internet.
HTTPS dan header
| Variable | Default | Fungsinya |
|---|---|---|
COOKIE_SECURE | false | Atur true saat Kanesh dilayani lewat HTTPS, termasuk di belakang proxy TLS. Cookie lalu hanya dikirim lewat HTTPS. |
HSTS_ENABLED | sama dengan COOKIE_SECURE | Memberi tahu browser untuk selalu memakai HTTPS untuk host ini (180 hari). |
CONTENT_SECURITY_POLICY | ketat, hanya same-origin | Mengganti Content-Security-Policy untuk halaman Studio. Respons API tidak punya. Ubah hanya jika kamu menyematkan resource Studio dari tempat lain. |
TRUSTED_PROXIES | tidak diatur | Proxy yang boleh meneruskan IP client asli di X-Forwarded-For, berupa IP atau CIDR. |
Note: Di belakang reverse proxy, atur
TRUSTED_PROXIESke jaringannya. Kalau tidak, setiap pengunjung terlihat seperti proxy dan berbagi satu rate limit.
Secret tersimpan
Beberapa pengaturan yang disimpan di Studio adalah secret, seperti password SMTP. Kanesh mengenkripsinya dengan kunci ini.
| Variable | Default | Fungsinya |
|---|---|---|
SETTINGS_ENCRYPTION_KEY | tidak diatur | Kunci enkripsi, minimal 16 karakter. Tanpa ini, Studio tidak bisa menyimpan secret. |
SECRET | tidak diatur | Kunci cadangan, dipakai hanya jika SETTINGS_ENCRYPTION_KEY tidak diatur. |
Backup kuncinya. Jika berubah, kamu harus memasukkan ulang semua secret yang tersimpan. Jangan pernah commit nilai asli.
Rate limit
Setiap client mendapat budget request di /api/ yang terisi ulang seiring waktu.
| Variable | Default | Fungsinya |
|---|---|---|
RATE_LIMIT_ENABLED | true | false mematikan batas. Biarkan menyala untuk instalasi publik. |
RATE_LIMIT_POINTS | 600 | Request yang diizinkan per client dalam satu window. |
RATE_LIMIT_DURATION | 1m | Panjang window. |
RATE_LIMIT_AUTH_POINTS | 20 | Budget yang lebih ketat untuk login dan klaim instalasi. |
RATE_LIMIT_AUTH_DURATION | 1m | Window untuk budget yang lebih ketat itu. |
Saat budget habis, API mengembalikan 429 dengan header Retry-After.
Checklist sebelum dibuka ke publik
DEMO_MODEbernilaifalseatau tidak diatur.- HTTPS berfungsi dan
COOKIE_SECURE=true. TRUSTED_PROXIESsesuai dengan proxy-mu.SETTINGS_ENCRYPTION_KEYsudah diatur dan di-backup.