# FikoAI backend yapılandırması (bu dosya sürüm kontrolüne GİRMEZ: kimlik bilgisi içerir).
# Kullanım: cd backend && go run ./cmd/server
# .env yoksa sunucu ortam değişkenleriyle de çalışır; burada varsayılanlar sabitlenir.

# --- HTTPS YAYINI (fikoyt.com:4200) ---
# Arayüz + API AYNI origin'de, AYNI portta yayınlanır. Ayrı web sunucusu (nginx)
# gerekmez: backend hem statik arayüzü sunar hem /api ve /ws uçlarını, hepsini TLS ile.
#
# Neden 4200? Kullanıcı isteği doğrultusunda doğrudan yayın hedefi.
# Neden TLS backend'de? Tarayıcı https:// sayfadan http:// API'ye "mixed content"
# olarak engeller. Aynı origin + aynı şema = sorun yok.
HTTP_ADDR=:4200

# Sertifikalar: Let's Encrypt, CN=fikoyt.com, SAN=*.fikoyt.com + fikoyt.com
# Geçerlilik: 28.09.2026 → 27.12.2026. IP adresiyle erişilirse tarayıcı
# "sertifika geçersiz" uyarısı verir — DOMAIN (fikoyt.com) ile girin.
HTTP_TLS_CERT=../cert/server.crt
HTTP_TLS_KEY=../cert/server.key

# Üretilen arayüzün sunulacağı dizin. Boşsa yalnız API yayınlanır.
# `npm run build` çalıştırılınca frontend/dist/frontend/browser altına düşer.
HTTP_STATIC_DIR=../frontend/dist/frontend/browser

# Aynı origin yayın yapıldığı için CORS gerekmez; liste yine de localhost geliştirmeyi
# korur. KALDIRILIRSA (boş bırakılırsa) tüm origin'lere izin verilir — internete
# açıkken bu TEHLİKELİDİR, o yüzden burada yalnız kendi adresiniz yazılıdır.
HTTP_ALLOWED_ORIGINS=https://fikoyt.com:4200,http://localhost:4200,http://127.0.0.1:4200

# --- Yetkilendirme ---
# Bu anahtar tanımlıyken korumalı uçlar (konuşma, ayar, tool, hafıza, bilgi tabanı,
# WS) X-Fiko-Auth başlığını zorunlu tutar ve 401 döner. Arayüzde giriş ekranı belirir.
# Boş bırakırsan doğrulama KAPALI kalır: sistem açık kabul edilir ve X-Fiko-User
# başlığıyla herhangi bir kullanıcı kimliği taklit edilebilir.
# Bu dosya git'e GİRMEZ; anahtarı kaynak koda yazmayın.
FIKO_API_KEY=7Qk2mXv9LpR4tZw8NcYb3HsD6FjA1UgE

# --- Üyelik (çok kullanıcılı) sistemi ---
# true ise GİRİŞ/ÜYELİK uçları açılır: kullanıcı adı + parola ile girilir,
# her istek oturum token'ı ile yapılır ve X-Fiko-User başlığı YOK SAYILIR.
# false ise geliştirme akışı korunur (API anahtarı + serbest başlık).
FIKO_USERS_ENABLED=true

# İlk kurulum yöneticisi. Parola BOŞSA hesap oluşturulmaz (rastgele parola
# üretmek sizi kilitlerdi). Üretimde ilk girişten sonra bu satırı silin.
FIKO_BOOTSTRAP_USER=admin
FIKO_BOOTSTRAP_PASSWORD=Admin1234!

MONGO_URI=mongodb://fikoyt:fikoyt1299@localhost:27017/?authSource=admin
MONGO_DATABASE=fiko_ai
MONGO_CONNECT_TIMEOUT=10s

OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=muse-glimmer:30b
# Embedding modeli kurulu (ollama list). Boş bırakılırsa skill araması
# anahtar kelimeye düşer (semantik arama kapalı).
OLLAMA_EMBED_MODEL=qwen3-embedding
OLLAMA_REQUEST_TIMEOUT=90s

# Tool dosya kökü: fs.* araçları bu klasörün dışına çıkamaz (sandbox).
TOOL_FS_ROOT=data/tools

LOG_LEVEL=info
LOG_FORMAT=text

# ---- Internet aramasi: YEREL SearXNG (Docker) ----
# Sorun: DuckDuckGo bu makinede HTTP 202 (bot/engel) donuyordu. Cozum: ayni
# SearXNG ornegini (Docker, host 8181) arama saglayicisi yapmak.
# Not: 8181 -> SearXNG. 8080 llama-ui'ye ait oldugu icin kullanilmaz.
# web.search bu adrese SABITLENIR; web.fetch'in SSRF korumasi gevsmez
# (bkz. cmd/server/tools.go). Bu yuzden TOOL_HTTP_ALLOW_PRIVATE gerekmez.
WEB_SEARCH_PROVIDER=searxng
WEB_SEARCH_URL=http://127.0.0.1:8181
WEB_ENABLED=true
# ---- Ses: konusma tanima (STT) - YEREL, ucretsiz, veri disari cikmaz ----
# Motor: tools/stt_server.py (faster-whisper). Baslatmak icin: start-voice.bat
# NOT (2026-10): sesli giris gecici olarak KAPALI; mikrofon dugmesi otomatik gizlenir.
# Geri acmak icin: asagidaki STT_URL satirindaki # isaretini kaldir, STT_ENABLED
# degerini true yap ve start-voice.bat calistir.
STT_PROVIDER=openai
#STT_URL=http://127.0.0.1:9000/v1/audio/transcriptions
STT_MODEL=small
STT_LANGUAGE=tr
# KAPALI: ses motoru calisiyor degil. Geri acmak: asagida true yap + start-voice.bat
STT_ENABLED=false

# ---- Ses: sesli okuma (TTS) - YEREL, ucretsiz, Turkce (DFKI) ----
# Motor: Piper. Uc adi kodu tarafindan eklenir (/synthesize, 404'te /api/tts denenir).
# NOT (2026-10): Chatterbox sesli okuma gecici olarak KAPALI; hoparlor dugmesi
# otomatik gizlenir. Geri acmak icin: asagidaki TTS_URL satirindaki # isaretini
# kaldir, TTS_ENABLED degerini true yap ve start-voice.bat calistir.
TTS_PROVIDER=openai
#TTS_URL=http://127.0.0.1:5000/v1/audio/speech
TTS_VOICE=
TTS_FORMAT=wav
TTS_ENABLED=false
TTS_TIMEOUT=60s

# Bellekten dusmeyi onler. Kalici hafiza ogrenmesi her mesajda EK bir LLM cagrisidir;
# model bellekten duserse bu cagri load hatasiyla bos doner ve hicbir ani kaydedilmez.
# 30b modeli ~15 GB VRAM'de tutulur; dusurursen her sohbette yeniden yuklenir.
OLLAMA_KEEP_ALIVE=30m
# Tum katmanlari GPU'ya yukle (Otomatik birakilirsa bazi katmanlar CPU'ya duser ve
# bellek yetersizliginde model yuklenemez).
OLLAMA_NUM_GPU=999

#STT_URL=http://127.0.0.1:9000/v1/audio/transcriptions

#TTS_URL=http://127.0.0.1:5000/v1/audio/speech
