Kuduz.org web uygulamasından ayrı çalışan yönetim panelidir. Haberler, il bazlı risk verileri, vatandaş bildirimleri, katkılar ve iletişim mesajları yönetilebilir. İki uygulama aynı PostgreSQL veritabanına DATABASE_URL üzerinden bağlanır.
Admin panelini herkese açık web uygulamasıyla aynı alan adı ve erişim politikası altında yayımlamayın. Mümkünse VPN, IP izin listesi veya Zero Trust erişim katmanının arkasında tutun.
Gereksinimler: Node.js 20+, npm ve çalışan Kuduz.org PostgreSQL veritabanı.
npm install
cp .env.example .env.local
npm run devPanel varsayılan olarak http://localhost:3001 adresinde çalışır.
| Değişken | Gerekli | Açıklama |
|---|---|---|
DATABASE_URL |
Evet | Web uygulamasıyla ortak PostgreSQL bağlantı adresi. |
ADMIN_ORIGIN |
Üretimde | Admin panelinin tam dış adresi; örneğin https://admin.example.org. |
ADMIN_EMAIL |
İlk kurulumda | İlk yönetici hesabının e-posta adresi. |
ADMIN_PASSWORD |
İlk kurulumda | En az 12 karakterli, uzun ve benzersiz ilk yönetici parolası. |
ADMIN_NAME |
Hayır | İlk yöneticinin panelde görünen adı. |
İlk yönetici, veritabanı bağlantısında yalnızca ilgili e-posta henüz kayıtlı değilse oluşturulur. Mevcut hesabın parolası ortam değişkeni değiştirilerek güncellenmez.
İlk hesap oluşturulduktan sonra ADMIN_EMAIL, ADMIN_PASSWORD ve ADMIN_NAME değerlerini çalışma ortamından kaldırın; uygulamanın normal çalışması için yalnızca DATABASE_URL gerekir.
npm run dev
npm run lint
npm run build
npm run start- Üretimde yalnızca HTTPS kullanın. Oturum çerezi
HttpOnly,SameSite=Strictve üretimdeSecureolarak ayarlanır. - Admin uygulamasını internete doğrudan açmak yerine VPN/IP izin listesi/kimlik farkındalıklı proxy arkasında çalıştırın.
- PostgreSQL portunu genel internete açmayın. Admin için yalnızca gerekli tablo yetkilerine sahip ayrı bir veritabanı rolü tercih edin.
.env*, anahtarlar, sertifikalar, veritabanı dökümleri ve yedekler Git tarafından yok sayılır..env.exampledosyasına gerçek değer yazmayın.- Üretim loglarında parola, oturum tokenı, bağlantı adresi veya vatandaşların kişisel verilerini tutmayın.
- Düzenli yedek alın, yedekleri şifreleyin ve geri yükleme prosedürünü test edin.
- Güvenlik açığını herkese açık issue yerine proje yöneticilerine özel kanaldan bildirin.
Panel; telefon, e-posta, konum ve yüklenen medya gibi kişisel veri içerebilir. Erişimi en az yetki prensibiyle sınırlandırın, gerekli olmayan kayıtları saklamayın ve yürürlükteki KVKK yükümlülüklerine uygun silme/saklama politikası uygulayın.