Başlangıç
#Kurulum
Tanık kendi sunucunuzda çalışır. Pilot programında kurulumu birlikte yapıyoruz; bu sayfa adımların tamamını içerir, böylece sonradan yeniden kurabilir ya da ikinci bir ortam açabilirsiniz.
#Gereksinimler
- Docker ve Docker Compose v2 kurulu bir Linux sunucu (x64 ya da arm64). macOS ile de çalışır; üretim için Linux önerilir.
- Disk: imaj yaklaşık 1,5 GB. Denetim kaydı aylık bölümler hâlinde büyür ve saklama süresi tanımlanmadıkça silinmez; başlangıç için 20 GB rahat bir paydır.
- Sağlayıcı anahtarlarınız (OpenAI, Anthropic, Azure…). Tanık bunları sizin adınıza kullanır; uygulamalarınıza bir daha verilmez.
- Ağ geçidi için bir adres. Uygulamalar
http://<sunucu>:8080ile bağlanır; üretimde önüne TLS sonlandıran bir ters proxy koyun ya da yalnız iç ağdan erişilebilir tutun.
#1. Ayar dosyası
git clone <kurulum-paketi>
cd deploy
cp .env.example .env
chmod 600 .env
.env dosyasında en az şunları doldurun; geri kalanının varsayılanı çalışır:
| Değişken | Ne yazacaksınız |
|---|---|
MONGO_ROOT_PASSWORD, MONGO_APP_PASSWORD | Üretilmiş, uzun parolalar |
ADMIN_SESSION_SECRET | openssl rand -base64 48 çıktısı. Boş kalırsa konsol hiç açılmaz; bu güvenli varsayılandır |
ANTHROPIC_API_KEY, UPSTREAM_API_KEY (OpenAI), GEMINI_API_KEY | Kullanacağınız sağlayıcıların anahtarları |
Anahtarı
.env.exampledosyasına değil.envdosyasına yazın. Tanık örnek dosyayı hiç okumaz ve bunu söylemez.
Bütün değişkenlerin açıklaması Ayarlar sayfasındadır.
#2. Ayağa kaldırma
docker compose up -d --build --wait
docker compose ps
İlk derlemede Türkçe isim tespiti modeli (yaklaşık 176 MB) pakete alınır; birkaç dakika sürer. Sonraki derlemeler önbellekten gelir. Çalışma anında hiçbir indirme olmaz.
docker compose ps çıktısında gateway, worker, admin, mongo ve redis için healthy, mongo-provision için exited (0) görmelisiniz. mongo-provision her up komutunda çalışır ve veritabanını bu sürümün beklediği şekle getirir (koleksiyonlar, indeksler, yetkiler); mevcut bir kurulumda hiçbir şeyi değiştirmez.
#3. Sağlık kontrolü
curl -s localhost:8080/readyz
Beklenen alanlar:
| Alan | Beklenen |
|---|---|
status | "ok" |
dependencies.mongo | "ok" |
audit_records_rejected | 0 |
ner_model_loaded | true (değilse derin mod serbest metni taramaz) |
upstreams_configured | Kullanacağınız sağlayıcı için true |
#4. İmza anahtarı
Bu adım atlanırsa sistem çalışır, ama kanıt raporu "bu kaydı bağımsız bir üçüncü taraf doğrulayamaz" der. Kurulumda açın:
docker compose exec -T worker \
node apps/worker/dist/cli/create-signing-key.js --out /var/lib/nev/keys/checkpoint.pem
docker compose up -d worker
Komut yanına bir .pub dosyası da yazar. Denetçiye verilecek dosya odur. Özel anahtar sunucuda kalır ve yedeklenir.
#5. Konsol yöneticisi
Parola komut satırına değil standart girişe yazılır; böylece kabuk geçmişine girmez.
printf '%s' 'GÜÇLÜ-PAROLA' | docker compose exec -T gateway \
node apps/gateway/dist/cli/create-admin.js --email [email protected]
Konsol http://<sunucu>:5173 adresindedir. Konsolu HTTPS arkasına aldığınızda .env içinde ADMIN_COOKIE_SECURE=true yapın; aksi hâlde tarayıcı oturum çerezini kabul etmez ve giriş başarılı görünüp çalışmaz.
#6. İsteğe bağlı: içerik parmak izi
İki şeyi açar: ilgili kişi başvurularında "şu tam metin buradan geçti mi" sorusuna içerik saklamadan cevap, ve onaya bekletme seçeneği.
docker compose exec -T gateway node apps/gateway/dist/cli/create-fingerprint-keyring.js \
--out /var/lib/nev/gateway-keys/fingerprint.json --version k1
Sonra .env içinde CONTENT_FINGERPRINT_KEYRING_PATH=/var/lib/nev/gateway-keys/fingerprint.json yazın ve docker compose up -d gateway ile yeniden başlatın.
.envdeğişiklikleri çalışan konteynere kendiliğinden geçmez. Her değişiklikten sonra ilgili servisidocker compose up -d <servis>ile yeniden başlatın.
#Sonraki adım
İlk istek: bir uygulama anahtarı ve bir sağlayıcı hedefi tanımlayıp ilk isteği geçirin.