# 🔐 Keamanan API Key SIDAK ## **⚠️ PENTING: API Key Terdeteksi di Repository Git** File `admin/api/config_api.php` sebelumnya mengandung kunci API Gemini yang terekspos di repository Git. Kunci ini telah diamankan dengan sistem environment variables. ## **🛡️ Langkah-Langkah Pengamanan yang Telah Dilakukan:** 1. **API Key dihapus dari Git tracking:** ```bash git rm --cached admin/api/config_api.php ``` 2. **File konfigurasi dimodifikasi untuk menggunakan environment variables:** - `admin/api/config_api.php` sekarang membaca dari file `.env` - Gunakan template `.env.example` untuk membuat `.env` 3. **File sensitif ditambahkan ke `.gitignore`:** ``` admin/api/config_api.php .env .env.*.local ``` ## **🚀 Deployment Instructions:** ### **1. Untuk Development Lokal:** ```bash # Salin template .env cp .env.example .env # Edit .env dengan API key Anda nano .env # atau editor favorit Anda ``` ### **2. Untuk Production Server:** ```bash # Buat file .env di server cat > /var/www/sidak/.env << 'EOF' # Google Gemini API Configuration GEMINI_API_KEY=your_actual_production_key_here EOF # Pastikan permission aman chmod 600 /var/www/sidak/.env chown www-data:www-data /var/www/sidak/.env ``` ### **3. Get New API Key (jika perlu):** 1. Kunjungi [Google AI Studio](https://makersuite.google.com/app/apikey) 2. Login dengan akun Google 3. Create API Key → Copy key baru 4. Update file `.env` di server ## **📁 Struktur File yang Aman:** ``` sidak/ ├── .env # ⚠️ JANGAN commit (sudah di .gitignore) ├── .env.example # ✅ Template aman untuk commit ├── .gitignore # ✅ Menyertakan .env dan config_api.php ├── admin/ │ └── api/ │ ├── config_api.php # ✅ Membaca dari environment variables │ └── ocr_helper.php # ✅ Menggunakan GEMINI_API_KEY dari config └── README_API_SECURITY.md # ✅ Dokumentasi ini ``` ## **🔧 Testing Configuration:** Untuk memastikan konfigurasi bekerja: ```php ``` ## **🔄 Jika Terjadi Masalah:** ### **Masalah: "API key not set"** **Solusi:** 1. Pastikan file `.env` ada di root directory 2. Pastikan permission file `.env` dapat dibaca oleh PHP 3. Restart web server jika perlu: `sudo service apache2 restart` ### **Masalah: "403 Forbidden" dari Gemini API** **Solusi:** 1. Periksa apakah API key valid di [Google AI Studio](https://makersuite.google.com/app/apikey) 2. Pastikan billing enabled di Google Cloud Console 3. Cek quota usage di Google Cloud Console ## **📞 Support:** Jika menemukan masalah keamanan: 1. **Segera putar API key** di Google AI Studio 2. Update file `.env` di semua environment 3. Hubungi developer: [wartana@example.com] --- **⚠️ REMINDER:** JANGAN pernah commit file `.env` atau `admin/api/config_api.php` ke repository Git. Selalu gunakan `.env.example` sebagai template. **Terakhir diperbarui:** 22 Januari 2026