Ortam Değişkenleri Referansı
Uygulamanın çalışması için gerekli tüm .env değişkenleri burada kategorilere ayrılarak açıklanmıştır.
Uygulama
| Değişken |
Açıklama |
Örnek |
NODE_ENV |
Ortam tipi. development, test veya production için boş |
development |
SERVICE_PORT |
HTTP sunucusunun dinleyeceği port |
3000 |
TENANT |
Tenant (kiracı) adı. Kafka topic isimlerinde kullanılır |
okul1 |
Veritabanı
| Değişken |
Açıklama |
Örnek |
DB_HOST |
PostgreSQL sunucu adresi |
localhost |
DB_PORT |
PostgreSQL portu |
5432 |
DB_NAME |
Veritabanı adı |
yesv3 |
DB_USER |
Veritabanı kullanıcısı |
postgres |
DB_PASSWORD |
Veritabanı şifresi |
secret |
Kafka
| Değişken |
Açıklama |
Örnek |
KAFKA_BROKERS |
Kafka broker adresleri, virgülle ayrılmış |
localhost:9092 |
KAFKA_CLIENT_ID |
Kafka istemci kimliği |
yesv3-backend |
KAFKA_GROUP_ID |
Consumer group ID |
yesv3-group |
DISABLE_KAFKA |
true yapılırsa tüm Kafka dinleyiciler devre dışı kalır |
true |
n8n
n8n webhook URL'leri veritabanında setting tablosunda saklanır, .env'de değil. Sistem Ayarları ekranından yönetilir. Aşağıdakiler sadece bilgi amaçlıdır:
| Ayar Adı (DB) |
Açıklama |
Varsayılan (kodda) |
n8nChatWebhookUrl |
Header "Deep" asistan webhook URL'si |
http://n8n.app.cozizle.com/webhook/c42a080e-... |
n8nLatexExtractorWebhookUrl |
PDF/LaTeX içerik çıkarma webhook URL'si |
http://n8n.app.cozizle.com/webhook/latex-extractor |
Yapay Zeka — Gemini
| Değişken |
Açıklama |
Varsayılan |
GEMINI_API_KEY |
Google Gemini API anahtarı |
— |
GEMINI_HTTP_TIMEOUT |
API istek timeout süresi (ms) |
90000 |
AI_TUTOR_GEMINI_MODEL |
Eksiklik öğretmeninin kullanacağı Gemini modeli |
gemini-3.1-flash |
Yapay Zeka — OpenAI
| Değişken |
Açıklama |
Varsayılan |
OPENAI_API_KEY |
OpenAI API anahtarı |
— |
AI Öğretmen (Sağ Panel)
| Değişken |
Açıklama |
Varsayılan |
AI_TEACHER_MAX_OUTPUT_TOKENS |
Öğretmen yanıtı için maksimum token sayısı |
900 |
AI_TEACHER_TTS_MAX_CHARS |
TTS için maksimum karakter sayısı. Aşılanlar kesilir. |
900 |
AI_TEACHER_TTS_CACHE_TTL_MS |
TTS önbellek kayıtlarının geçerlilik süresi (ms) |
600000 |
AI_TEACHER_TTS_CACHE_MAX_ITEMS |
TTS önbelleğinde tutulacak maksimum kayıt sayısı |
80 |
AI_TEACHER_EXTRACT_PDF_TEXT_ON_CHAT |
Chat sırasında PDF'den metin çıkarma açık/kapalı |
true |
AI_TEACHER_GENERATE_PDF_IMAGES_ON_CHAT |
Chat sırasında PDF'den sayfa görseli üretme açık/kapalı |
true |
Dosya Depolama (MinIO)
| Değişken |
Açıklama |
Örnek |
MINIO_ENDPOINT |
MinIO sunucu adresi |
localhost |
MINIO_PORT |
MinIO portu |
9000 |
MINIO_ACCESS_KEY |
MinIO erişim anahtarı |
minioadmin |
MINIO_SECRET_KEY |
MinIO gizli anahtar |
minioadmin |
MINIO_BUCKET |
Dosyaların yükleneceği bucket adı |
yesv3 |
MINIO_USE_SSL |
SSL kullanımı |
false |
JWT / Auth
| Değişken |
Açıklama |
Örnek |
JWT_SECRET |
Token imzalama anahtarı |
gizli-anahtar |
JWT_EXPIRES_IN |
Token geçerlilik süresi |
7d |
Dış API
| Değişken |
Açıklama |
Örnek |
EXTERNAL_API_KEY |
Harici sistemlerin x-api-key header ile kullandığı API anahtarı. Tanımlı değilse dış API çalışmaz. |
gizli-harici-anahtar |
Diğer
| Değişken |
Açıklama |
Örnek |
LOG_LEVEL |
Log seviyesi (info, debug, warn, error) |
info |
Ortam Dosyaları
src/index.js uygulamayı başlatırken NODE_ENV değerine göre farklı .env dosyasını yükler:
NODE_ENV=test → .test.env
NODE_ENV=development → .dev.env
(diğer) → .dev.env
Production ortamı için ayrı bir env dosyası tanımı şu an yok — production'da environment değişkenlerinin sistem ortamından (Docker, Kubernetes vb.) sağlanması bekleniyor.