# System Requirements **Owner:** versi minimum OS, runtime, tool chain, dependency infra yang **wajib** agar project jalan. Bukan duplikasi `server.md` (host/IP) — fokus **apa yang harus terpasang**, bukan di server mana. Credential & URL: lihat `.env.example` (root project) + [server.md](./server.md). --- ## Ringkasan | Field | Value | |-------|-------| | Project | `{path/relatif monorepo}` | | Tipe | app / api / library / infra / android | | Last updated | {YYYY-MM-DD} | --- ## Platform & OS | Komponen | Minimum | Direkomendasikan | Catatan | |----------|---------|------------------|---------| | OS dev | {Windows 11 / Ubuntu 22.04 / macOS 14} | | | | OS server | {Linux / Windows Server} | | lihat server.md | | Arsitektur | {x64 / arm64} | | | --- ## Runtime & Toolchain | Tool | Versi minimum | Versi dipakai saat ini | Install / cek | |------|---------------|------------------------|---------------| | {Node.js / Python / JDK / .NET / Go} | | | `{command --version}` | | {Package manager} | | | | | {Docker / Docker Compose} | | | | | {Android Studio / Gradle / AGP} | | | khusus Android | | {SQL client / ODBC} | | | | --- ## Dependency eksternal (wajib tersedia) | Dependency | Versi | Dipakai untuk | Owner docs | |------------|-------|---------------|------------| | {PostgreSQL / SQL Server / Redis} | | | [server.md](./server.md) | | {nginx / IIS / Apache} | | reverse proxy | [server.md](./server.md) | | {LDAP / Authelia / MQTT} | | | | --- ## Resource minimum (server / container) | Lingkungan | CPU | RAM | Disk | Catatan | |------------|-----|-----|------|---------| | dev | | | | | | staging | | | | | | prod | | | | | --- ## Variabel URL & konfigurasi (no hardcode) > Semua base URL / host / domain **harus** dari env atau config — lihat `.env.example` di root project. | Variabel | Wajib | Contoh (bukan production) | Dipakai oleh | |----------|-------|---------------------------|--------------| | `API_BASE_URL` | ya | `https://api-dev.example.com` | app client | | `{VAR_LAIN}` | | | | **Aturan implementasi:** - Jangan hardcode URL/domain/IP di source code, config commit, atau docs operasional (kecuali `.env.example` placeholder). - Android: `BuildConfig`, `gradle.properties`, network security config — bukan string literal di `.kt`. - Backend: baca dari environment / `.env` (lokal, gitignore). --- ## Port & protokol | Service | Port | Protokol | Catatan | |---------|------|----------|---------| | | | HTTP/HTTPS/TCP | | --- ## Checklist setup baru (developer / server) - [ ] Penuhi runtime minimum di tabel di atas - [ ] Copy `.env.example` -> `.env` (lokal, jangan commit `.env`) - [ ] Isi URL sesuai env (dev/staging/prod) - [ ] Verifikasi koneksi ke dependency di [server.md](./server.md) - [ ] Smoke test sesuai [guide/migration.md](./guide/migration.md) jika migrasi --- ## Perubahan requirement Setiap upgrade tool major, OS baru, atau dependency baru: 1. Update file ini 2. Update [version.md](./version.md) + [changelog.md](./changelog.md) 3. Update `.env.example` jika variabel URL berubah 4. Migrasi server/domain: ikuti [guide/migration.md](./guide/migration.md)