Ortam Karşılaştırma Matrisi
Zeus 2.0, local (development) ve production olmak üzere iki ana ortamda çalışır. Bu sayfa, ortamlar arasındaki yapılandırma farklarını ve zorunlu servisleri özetler.
Ortam Farkları
| Özellik | Local (Development) | Production |
|---|---|---|
| Veritabanı | PostgreSQL (Docker) | PostgreSQL + TimescaleDB |
| MQTT TLS | Opsiyonel (1883) | Zorunlu (8883) |
| MQTT Sertifika | Self-signed | Let's Encrypt |
| Frontend | npm run dev (HMR) | Docker + Nginx reverse proxy |
| Backend | uvicorn --reload | Gunicorn (2 worker) |
| CORS | localhost:3000 allowed | Production domain only |
| Debug | DEBUG=true | DEBUG=false |
| Log Level | DEBUG | WARNING |
| HTTPS | Hayır | Evet (Certbot) |
| Monitoring | Manuel | Cron + Telegram alert |
| Redis | Docker (tek instance) | Docker (tek instance) |
| Celery | Opsiyonel | Zorunlu (worker + beat) |
| MinIO | Docker | Docker |
| Autoheal | Yok | Aktif |
| Rate Limiting | Yok | Nginx (30 req/s API, 5 req/dk login) |
| Firmware İmzalama | Opsiyonel | ECDSA P-256 zorunlu |
| SECRET_KEY | Test key | Güçlü random key (min 32 char) |
| Veritabanı Backup | Yok | Günlük |
Zorunlu Servisler
| Servis | Local | Production |
|---|---|---|
| PostgreSQL | Zorunlu | Zorunlu |
| Redis | Zorunlu | Zorunlu |
| EMQX | Zorunlu | Zorunlu |
| Backend | Zorunlu | Zorunlu |
| Frontend | Zorunlu | Zorunlu |
| Celery Worker | Opsiyonel | Zorunlu |
| Celery Beat | Opsiyonel | Zorunlu |
| MinIO | Opsiyonel | Zorunlu |
| Nginx | Yok | Zorunlu |
| Certbot | Yok | Zorunlu |
| Autoheal | Yok | Önerilen |
| Modbus Poller | Opsiyonel | Opsiyonel |
Environment Değişkenleri Kontrol Listesi
Production'a deploy etmeden önce aşağıdaki kritik değişkenlerin doğru yapılandırıldığından emin olun:
- SECRET_KEY — Güçlü, rastgele üretilmiş, minimum 32 karakter
- POSTGRES_PASSWORD — Güçlü parola (varsayılan değer kullanılmamalı)
- MQTT_BROKER_PASSWORD — Varsayılan parola değiştirilmiş olmalı
- FIRMWARE_SIGNING_KEY_PATH — ECDSA P-256 key dosyası mevcut olmalı
- ALLOWED_ORIGINS — Yalnızca production domain'i içermeli
- DEBUG=false — Production'da kesinlikle false olmalı
Kritik Uyarı
Production ortamında DEBUG=true bırakmak, hata mesajlarında hassas bilgilerin (veritabanı sorguları, stack trace, environment değişkenleri) son kullanıcıya görünmesine neden olabilir.