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

VariableDefaultFungsinya
COOKIE_SECUREfalseAtur true saat Kanesh dilayani lewat HTTPS, termasuk di belakang proxy TLS. Cookie lalu hanya dikirim lewat HTTPS.
HSTS_ENABLEDsama dengan COOKIE_SECUREMemberi tahu browser untuk selalu memakai HTTPS untuk host ini (180 hari).
CONTENT_SECURITY_POLICYketat, hanya same-originMengganti Content-Security-Policy untuk halaman Studio. Respons API tidak punya. Ubah hanya jika kamu menyematkan resource Studio dari tempat lain.
TRUSTED_PROXIEStidak diaturProxy yang boleh meneruskan IP client asli di X-Forwarded-For, berupa IP atau CIDR.

Note: Di belakang reverse proxy, atur TRUSTED_PROXIES ke 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.

VariableDefaultFungsinya
SETTINGS_ENCRYPTION_KEYtidak diaturKunci enkripsi, minimal 16 karakter. Tanpa ini, Studio tidak bisa menyimpan secret.
SECRETtidak diaturKunci 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.

VariableDefaultFungsinya
RATE_LIMIT_ENABLEDtruefalse mematikan batas. Biarkan menyala untuk instalasi publik.
RATE_LIMIT_POINTS600Request yang diizinkan per client dalam satu window.
RATE_LIMIT_DURATION1mPanjang window.
RATE_LIMIT_AUTH_POINTS20Budget yang lebih ketat untuk login dan klaim instalasi.
RATE_LIMIT_AUTH_DURATION1mWindow untuk budget yang lebih ketat itu.

Saat budget habis, API mengembalikan 429 dengan header Retry-After.

Checklist sebelum dibuka ke publik

  • DEMO_MODE bernilai false atau tidak diatur.
  • HTTPS berfungsi dan COOKIE_SECURE=true.
  • TRUSTED_PROXIES sesuai dengan proxy-mu.
  • SETTINGS_ENCRYPTION_KEY sudah diatur dan di-backup.

Langkah berikutnya

Traktir kopi