> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Dağıtım

> AgentEye Dağıtım belgeleri.

Bu kılavuz, AgentEye sunucusu ve panosunun üretim ortamına dağıtılmasını kapsamaktadır.

***

## Mimari Özeti

```
  [ AI agent makineleri ]                [ Kendi altyapınız ]

    Python SDK
       |  JSONL yazar                       +----------------------+
       v                                +--->| PostgreSQL 15+       |
 agenteye-collector --HTTP--+           |    | (ilişkisel depo)     |
                            |           |    +----------------------+
                            v           |
                       +--------+       |    +----------------------+
                       | Server |<------+--->| ClickHouse 24+       |
                       +--------+       |    | (etkinlikler / analitikler)|
                            ^           |    +----------------------+
                        API |           |
                            |           |    +----------------------+
                      +-----------+     +- - >| Redis 7+ (isteğe bağlı)|
                      | Pano      |           +----------------------+
                      +-----------+
```

* **Sunucu**: Rust HTTP hizmeti; etkinlik toplamalarını alır, ClickHouse'a yazar ve ilişkisel durumu PostgreSQL'de tutar.
* **Pano**: Next.js web uygulaması; sunucu API'si aracılığıyla okur ve yazar.
* **agenteye-collector**: sunucu ana bilgisayarında değil, agent makinelerinde dağıtılır.
* **Postgres 15+**: GEREKLI. (14'ten çok kiracılı sürümde yükseltildi; org-üyelik şeması `ON DELETE SET NULL` yabancı anahtarını kullanan bir sütun listesi kullanır ve bu Postgres 15+ gerektirir. Bu sürümü dağıtmadan önce Postgres'i yükseltin.) OLTP durumunu saklar: `api_keys`, `users`, `sessions`, `evaluation_jobs` (sıra), `dashboards`, `saved_queries`, `otp_codes` ve çok kiracılı tablolar `orgs`, `org_memberships`, `org_settings`.
* **ClickHouse 24+**: GEREKLI. Her alınan etkinlik için analitik deposu. Motor: `ReplacingMergeTree`, aya göre bölümlendirilmiş, `(session_id, ts, dedup_key)` ile sıralanmış. Sunucu `CLICKHOUSE_URL` aracılığıyla bağlanır; paketlenmiş `deploy/base/clickhouse/` performans ayarlı tek düğüm yapılandırması içerir. **Çok kiracılı gereksinim:** paketlenmiş yapılandırma SQL erişim yönetimini etkinleştirir ve `users_without_row_policies_can_read_rows=false` ayarını yapar, böylece sunucu kuruluş başına bir salt okunur ClickHouse kullanıcısı ve satır ilkesi oluşturabilir (SQL editörü ve AI ajanı için motor tarafından zorlanmış izolasyon sınırı). Kendi ClickHouse yapılandırmanızı sağlarsanız bu ayarları aktarın (bkz. `deploy/base/clickhouse/configmap.yaml`).
* **Redis 7+**: *isteğe bağlı* paylaşılan önbellek + hız sınırı arka ucu. Sunucu ve pano her ikisi de `REDIS_URL` aracılığıyla bağlanır. Mevcut değilse, her ikisi de Postgres'e yapılan yollarla incelikle düşer. Aşağıda **Redis (isteğe bağlı önbellek)** bölümüne bakın.

***

## Sunucu

### Görüntüyü çekin

```bash theme={null}
echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin
docker pull ghcr.io/agenteye-enterprise/server:beta-latest
```

> Mevcut yapılar `beta-latest` altında yayımlanır; `latest` yalnızca kararlı sürümlere atanır. Üretim için belirli bir `:v<version>` etiketine sabitle; bkz. [Kullanılabilir Resim Etiketleri](#available-image-tags).

### Ortam değişkenleri

| Değişken                                      | Gerekli                                   | Varsayılan             | Açıklama                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| --------------------------------------------- | ----------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DATABASE_URL`                                | Evet                                      | yok                    | Postgres DSN. Şema `postgres://` ile standart libpq bağlantı dizesi biçimi. `?sslmode=require` ve diğer libpq parametrelerini destekler. Parola `/`, `+` veya `=` içeremez; URL-safe parolalar oluşturmak için `openssl rand -hex` kullanın.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `ADMIN_KEY`                                   | Hayır                                     | yok                    | Önyükleme yöneticisi API anahtarı. Her başlangıçta tüm izinlerle güncelleştirilir. Değeri değiştirerek ve yeniden başlatarak döndürün.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `LISTEN_ADDR`                                 | Hayır                                     | `0.0.0.0:8080`         | Bağlanacak TCP adresi                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `MAX_BODY_BYTES`                              | Hayır                                     | `134217728` (128 MB)   | Maksimum istek gövde boyutu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `ADMIN_EMAIL`                                 | Hayır                                     | yok                    | Önyükleme yöneticisi kullanıcı e-postası. Her başlangıçta tüm izinlerle güncelleştirilir ve korumalı olarak işaretlenir: pano/API aracılığıyla devre dışı bırakılamaz veya izinleri değiştirilemez. Önyükleme yöneticisini döndürmek için `ADMIN_EMAIL` değiştirin ve yeniden başlatın; yeni e-posta korumalı olarak güncelleştirilir ve önceki e-posta el ile veritabanından temizleninceye kadar korumayı tutar.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `ALLOWED_EMAILS`                              | Hayır                                     | yok (hepsi engellenir) | Kullanıcı oluşturma ve oturum açma için izin verilen e-postaların virgülle ayrılmış listesi. Tam adresler (`user@example.com`) ve alan adı joker karakterleri (`*@example.com`) destekler. Ayarlanmamışsa, hiçbir kullanıcı oluşturulamaz veya oturum açamaz. **İlk önyükleme tohumlandırması**: varsayılan org'un izin listesini ilk önyüklemede tohurnlanır; bundan sonra her org'un [`/<org>/settings`](#operational-settings) sayfası gerçeği kaynağıdır ve bu ortam değişkenini değiştirmek etkisi olmaz.                                                                                                                                                                                                                                                                                                                                                  |
| `SMTP_HOST`                                   | Hayır                                     | yok                    | OTP e-postaları göndermek için SMTP sunucusu ana bilgisayar adı. Ayarlanmamışsa, OTP kodları bunun yerine stdout'a kaydedilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `SMTP_PORT`                                   | Hayır                                     | `587`                  | SMTP sunucusu portu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `SMTP_USERNAME`                               | Hayır                                     | yok                    | SMTP kimlik doğrulaması kullanıcı adı                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `SMTP_PASSWORD`                               | Hayır                                     | yok                    | SMTP kimlik doğrulaması parolası                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `SMTP_FROM`                                   | Hayır                                     | yok                    | OTP e-postaları için gönderen e-posta adresi                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `SMTP_TLS`                                    | Hayır                                     | STARTTLS               | STARTTLS açıkça kapatmadığınız sürece kullanılır: `false` veya `0` düz metin gönderir (TLS yok); diğer herhangi bir değer — ayarlanmamış da dahil olmak üzere — STARTTLS'i etkinleştirir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `DASHBOARD_URL`                               | Hayır                                     | yerleşik varsayılan    | OTP-e-posta sihirli bağlantısı ve uyarı bildirimlerindeki olay sihirli bağlantıları oluşturmak için kullanılan pano kaynağı. Ayarlanmamışsa yerleşik varsayılana geri düşer (ve yalnızca OTP için panosundan türetilen istek kökenine ilk olarak geri düşer). Bölünmüş alan kurulumları için ayarlayın, böylece hem e-posta hem de Slack/olay bağlantıları panonuza işaret eder. **E-posta sihirli bağlantı URL'si** bölümüne bakın; çoğu operatör bunu ayarlamaya gerek duymaz.                                                                                                                                                                                                                                                                                                                                                                                |
| `SESSION_TTL_SECS`                            | Hayır                                     | `86400` (24 s)         | Pano oturumu süresi saniye cinsinden. **İlk önyükleme tohumlandırması**: ilk dağıtımdan sonra [`/<org>/settings`](#operational-settings) aracılığıyla org başına düzenleyin.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `OTP_TTL_SECS`                                | Hayır                                     | `600` (10 dak)         | OTP kodu geçerlilik süresi saniye cinsinden. **İlk önyükleme tohumlandırması**: ilk dağıtımdan sonra [`/<org>/settings`](#operational-settings) aracılığıyla org başına düzenleyin.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `REDIS_URL`                                   | Hayır                                     | yok                    | İsteğe bağlı paylaşılan önbellek + hız sınırı arka ucu, örn. `redis://redis:6379/0`. Ayarlandığında sunucu kimliği doğrulanmış API anahtarı aramaları, panonun `/models` toplamsı, oturumlar listesi ve ortam listesi grubunu önbelleğe alır; ayrıca OTP istek hız sınırlamasını Postgres COUNT'tan Redis INCR'ye taşır. Ayarlanmamışsa veya ulaşılamıyorsa, sunucu önbellek olmadan çalışır (OTP sınırı Postgres'e geri düşer, her diğer önbellek çağrısı gerçeği kaynağından düşer). Aşağıda **Redis (isteğe bağlı önbellek)** bölümüne bakın.                                                                                                                                                                                                                                                                                                                |
| `CLICKHOUSE_URL`                              | **Evet**                                  | yok                    | ClickHouse örneğinin temel URL'si, örn. `http://clickhouse:8123`. Sunucu bu veritabanına etkinlik şemasını her başlangıçta uygular ve ClickHouse'a ulaşamıyorsa önyüklemeden kaçınır. Aşağıda **ClickHouse (gerekli analitik deposu)** bölümüne bakın.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `CLICKHOUSE_DATABASE`                         | Hayır                                     | `agenteye`             | ClickHouse veritabanı (şema) adı. Sunucu mevcut değilse başlangıçta oluşturur.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `ORG_CH_SECRET`                               | Hayır (tek kiracılı) / **Evet (çok org)** | geliştirme varsayılanı | Her kuruluşun kiracı başına ClickHouse parolasının türetildiği HMAC anahtarı. SQL editörü ve AI ajanın `run_query` kuruluşun kendi salt okunur ClickHouse kullanıcısı olarak çalışır ve satır ilkesi motorun içinde kiracı izolasyonunu zorlar. Tek kiracılı dağıtımlar yerleşik geliştirme varsayılanı iyi önyüklenir; **ikinci bir org sağlamadan önce güçlü, kararlı bir değer ayarlaMALISINIZ** çünkü `agenteye-orgctl org create` CLI yerleşik geliştirme varsayılanında çalışmayı reddeder. Döndürmek her org'un ClickHouse kullanıcısını yetime bırakır ta ki sonraki başlangıç bunları yeniden sağlayıncaya kadar (önyükleme süresi uzlaştırması bunu otomatik olarak iyileştirir). Gizli tutun ve çoğaltmalar arasında değiştirilmeyecek olarak saklayın. Org sağlaması kendisinin operatörü; aşağıda **Kuruluşlar (çok kiracılılık)** bölümüne bakın. |
| `DEFAULT_ORG_NAME`                            | Hayır                                     | `Default`              | Yerleşik varsayılan org için tohumlandırılan görünen ad. **İlk önyükleme tohumlandırması**, ve yalnızca org hala yeni geçiş genel kimliğini taşırken, başlangıçta uygulanır, sonra yok sayılır. Org'u yeniden adlandırdığınızda (`agenteye-orgctl org rename`) yeniden adlandırma yetkilidir ve bu ortam değişkeninin başka etkisi yoktur.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `DEFAULT_ORG_SLUG`                            | Hayır                                     | `default`              | Yerleşik varsayılan org için URL slugu, pano yolunda yaşadığı (`/<slug>/…`). `DEFAULT_ORG_NAME` ile aynı ilk önyükleme yalnızca / ilkel anlamıdır. `default` tuttuğu sürece geçersiz bir değer yok sayılır. Tek kiracılı kurulumun `/default` yerine örn. `/acme` olarak sunulmasını sağlar, post-dağıtım CLI adımı olmadan.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `RUST_LOG`                                    | Hayır                                     | `info`                 | Günlük ayrıntı düzeyi (`debug`, `warn`, `error`, `agenteye_server=trace`)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `EVALUATOR_ENDPOINT`                          | Hayır                                     | yok                    | Değerlendirici hizmetinizin temel URL'si (örn. `http://evaluator:9000`). Ayarlanmadığında tüm değerlendirme işlem hattı no-op'dir; hiçbir kuyruk satırı yazılmaz, işçi çalışmaz. Bkz. [Değerlendirme Paketi](/tr/agenteye/evaluation-suite).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `EVALUATOR_TOKEN`                             | Hayır                                     | yok                    | Değerlendirici olarak `Authorization: Bearer <token>` gönderilir. **Değerlendirici hizmetinin yapılandırıldığı aynı değere eşit OLMALIDIR.** İsteğe bağlı yalnızca değerlendiriciniz belirteç olmadan yapılandırılmışsa.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `EVALUATOR_WORKERS`                           | Hayır                                     | `2`                    | Eşzamanlılık: sunucu örneği başına değerlendirmeler gönderen işçi görevlerinin sayısı. Yatay olarak ölçeklendirilmiş birden fazla sunucu arasında çalıştırmak güvenlidir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `EVALUATOR_CLAIM_BATCH`                       | Hayır                                     | `4`                    | Tek işçinin bir tik başına talep ettiği maksimum değerlendirme sayısı. Toplu işler **eşzamanlı olarak** gönderilir, bu nedenle değerlendirici uç noktası üzerinde toplam eşzamanlılık `EVALUATOR_WORKERS × EVALUATOR_CLAIM_BATCH` olur.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `EVALUATOR_POLL_IDLE_SECS`                    | Hayır                                     | `2`                    | İşçi hiçbir şey gelmiş olduğunda gönderim denemeleri arasında uyuyacağı süre.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `EVALUATOR_POLLING_INTERVAL_SECS`             | Hayır                                     | `10`                   | `GET /evaluate/{id}` yoklaması için son yedek kadansı (saniye), değerlendirici yanı başına `next_poll_secs` döndürmediğinde ve `GET /config` adresinden `default_poll_interval_secs` bildirmediğinde.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `EVALUATOR_REQUEST_TIMEOUT_MS`                | Hayır                                     | `30000`                | Değerlendirici karşısında HTTP istek başına zaman aşımı (milisaniye).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `EVALUATOR_MAX_ATTEMPTS`                      | Hayır                                     | `5`                    | Bu kadar başarısız denemeden sonra, bir değerlendirme terminal `error` (veya başarısızlıklar istek zaman aşımlarıysa `timeout`) olarak kaydedilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `EVALUATOR_CONFIG_REFRESH_SECS`               | Hayır                                     | `300` (5 dak)          | Sunucu değerlendirici'den `GET /config` öğesini yeniden getirir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `EVALUATOR_MAX_POLL_DURATION_SECS`            | Hayır                                     | `3600` (1 saat)        | Bir oturumun yoklama sırasında kalabileceği maksimum duvar saati süresi, AgentEye bunu `timeout` olarak sonlandırmadan önce. Sonsuza kadar `pending` döndüren bir değerlendiriciyi korur.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `ALERT_WORKERS`                               | Hayır                                     | `1`                    | Eşzamanlılık: sunucu örneği başına uyarı kurallarını değerlendiren işçi görevlerinin sayısı. Bkz. [Uyarılar](/tr/agenteye/alerts).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `ALERT_CLAIM_BATCH`                           | Hayır                                     | `16`                   | Tek işçinin bir tik başına talep ettiği maksimum uyarı sayısı.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `ALERT_POLL_IDLE_SECS`                        | Hayır                                     | `5`                    | Kuyruk boşken uyarılar işçisinin uyuması gereken süre.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `ALERT_REQUEST_TIMEOUT_MS`                    | Hayır                                     | `15000`                | Tetikleyici değerlendirmesi başına zaman aşımı (ClickHouse sorguları + giden kanal HTTP).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `ALERT_MAX_ATTEMPTS`                          | Hayır                                     | `5`                    | Ardışık geçici başarısızlıklar, bir uyarı üstel geri alma yerine normal kadansında yeniden zamanlanıncaya kadar.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `AUDIT_WORKERS`                               | Hayır                                     | `1`                    | Eşzamanlılık: sunucu örneği başına denetimleri yürüten işçi görevlerinin sayısı. Bkz. [Denetimler](/tr/agenteye/audits).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `AUDIT_CLAIM_BATCH`                           | Hayır                                     | `1`                    | Tek işçinin bir tik başına talep ettiği maksimum yürürlükte denetim sayısı. Ajansal bir araştırma tek uzun bir döngüdür, bu nedenle varsayılan 1'dir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `AUDIT_POLL_IDLE_SECS`                        | Hayır                                     | `30`                   | Hiçbir denetim yürürlükte olmadığında denetim işçisinin uyuması gereken süre.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `AUDIT_REQUEST_TIMEOUT_MS`                    | Hayır                                     | `30000`                | ClickHouse karşısında ilke sorgusu başına zaman aşımı (milisaniye).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `AUDIT_LLM_TIMEOUT_MS`                        | Hayır                                     | `1440000`              | AI asistan hizmetine ajansal araştırma çağrısının zaman aşımı. Tam bir ajan döngüsü dakikalar çalışır; bunu sunucunun bırakılmadan önce ajan kısmi bulgularını döndürmesi için ajanın kendi `AGENTEYE_AUDIT_TIMEOUT_MS` değerinin ÜZERİNDE tutun.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `AUDIT_MAX_ATTEMPTS`                          | Hayır                                     | `5`                    | Ardışık geçici başarısızlıklar, bir denetim üstel geri alma yerine normal kadansında yeniden zamanlanıncaya kadar.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `AGENTEYE_AGENT_URL` / `AGENTEYE_AGENT_TOKEN` | Hayır                                     | —                      | Denetimin ajansal araştırması AI asistan `agent` hizmetini çağırır, **asistan ile aynı bağlantıyı yeniden kullanarak** — bu nedenle bunları ikisini **sunucuda** da ayarlayın (paketlenmiş manifestler/compose yapar). Her ikisi ayarlanmış ⇒ denetimler AI araştırmasını çalıştırır; her ikisi ayarlanmamış ⇒ denetimler **yalnızca ilke** çalıştırır (belirlenimci SQL ilkesi geçişi yine de çalışır), per-denetim `llm_enabled` bayrağından bağımsız olarak. Ajanın da bir LLM yapılandırması olmalıdır — bkz. [assistant.md](/tr/agenteye/assistant).                                                                                                                                                                                                                                                                                                       |

**AI asistan hizmeti — denetim + sanal alan ayarları.** Ajansal araştırma ve pod içi Python sanal alanı **ajan hizmetinde** ayarlanır (sunucu değil), hepsi `AGENTEYE_AUDIT_*` önekinde ve hepsi isteğe bağlı:

| Değişken                                                                                                  | Varsayılan                                 | Anlamı                                                                                                      |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| `AGENTEYE_AUDIT_MAX_STEPS`                                                                                | `200`                                      | Araştırma başına maksimum ajan dönüşleri.                                                                   |
| `AGENTEYE_AUDIT_TIMEOUT_MS`                                                                               | `1200000`                                  | Bir araştırma için duvar saati (20 dak). Sunucunun `AUDIT_LLM_TIMEOUT_MS` değerinin **altında** kalmalıdır. |
| `AGENTEYE_AUDIT_MAX_CONCURRENCY`                                                                          | `1`                                        | Ajan başına pod başına eşzamanlı araştırmalar (sohbet asistan bütçesinden ayrı).                            |
| `AGENTEYE_AUDIT_SANDBOX_TIMEOUT_MS` / `_MEM_MB` / `_CPU_SECS` / `_OUTPUT_MAX_BYTES` / `_SCRIPT_MAX_BYTES` | `20000` / `768` / `10` / `64000` / `64000` | Bubblewrap sanal alanı için komut başına sınırlar.                                                          |

**Sanal alan platform gereksinimiş.** Denetim kodu sanal alanı modelin Python'u bir bubblewrap hapishanesinde çalıştırır, bu **ayrıcalıklı olmayan kullanıcı ad alanları** gerektirir. Ajan pod'u `clone()` bayraklarına izin vermelidir — `seccompProfile: Unconfined` ayarlayın (k8s) veya `security_opt: [seccomp:unconfined]` (compose) ajan'da. Düğüm çekirdeğinin ayrıcalıklı olmayan kullanıcı ad alanlarını devre dışı bıraktığı durumlarda (örn. bazı GKE COS görüntüleri), sanal alan **önyükleme başarısız olur ve denetim otomatik olarak yalnızca SQL'e düşer** — hata yok, ajan'ın `/health` üzerinde yalnızca `sandbox_available: false`. |

### Çalıştırma

Ortamda `DATABASE_URL` ayarlayın, ardından konteynera geçirin:

```bash theme={null}
docker run -d --restart unless-stopped \
  --name agenteye-server \
  -e DATABASE_URL="$DATABASE_URL" \
  -e ADMIN_KEY="$ADMIN_KEY" \
  -p 8080:8080 \
  ghcr.io/agenteye-enterprise/server:beta-latest
```

Sunucu, başlangıçta veritabanı geçişlerini otomatik olarak çalıştırır; ayrı geçiş adımı gerekmez.

### Sağlık kontrolü

```
GET /health    # canlılık  - işlem başladıktan sonra her zaman {"status":"ok"}
GET /ready     # hazırlık - Postgres + ClickHouse ulaşıldığında 200, aksi takdirde 503
```

Kimlik doğrulama gerekmez. **Canlılık** yoklamalar için `/health` ve **hazırlık** / yük dengeleyici yoklamaları için `/ready` kullanın. `/ready` sunucunun olmadan hizmet veremeyeceği sert bağımlılıkları kontrol eder (Postgres + ClickHouse), bu nedenle çalışan ancak veritabanına ulaşamayan bir sunucu döndürülmesinin dışında tutulur ve `NotReady` olarak gösterilir; Redis raporlanır ancak asla hazırlığı başarısız yapmaz. Paketlenmiş Kubernetes manifestlerinde hazırlık yoklaması zaten `/ready` adresini işaret eder ve canlılık `/health` üzerinde kalır. Tam resim, Kubernetes-native pod-başarısızlık uyarılarını Slack'e dahil etmek için bkz. [enterprise-docs/health-monitoring.md](/tr/agenteye/health-monitoring).

### E-posta sihirli bağlantı URL'si

OTP oturum açma e-postaları tek dokunuşla **panoyu aç** düğmesi içerir. Tıklamak kullanıcıyı `/login?token=<code>&email=<address>` adresine indirir; pano bu çifti bir oturumla değiştirir ve hiçbir manuel kod yeniden girişi olmadan uygulamaya yönlendirir. Sunucu, bağlantı oluşturmak için kullanılan pano kökenini üç katmanda çözer:

1. **`X-AgentEye-Dashboard-Url` başlığı**: panonun kendi genel kaynağından `/api/auth/otp/request` proxy tarafından otomatik olarak ayarlayır. Aynı kaynak dağıtımında (sunucu ve pano bir ön uç ardında bir ana bilgisayarı paylaşır, proxy başlıklarını iletir), **hiçbir yapılandırma gerekmez**.
2. **`DASHBOARD_URL` ortam değişkeni**: panonuz sunucunun OTP istek uç noktasının gördüğü orijinin farklı bir kaynağında erişilebilirse (bölünmüş `api.example.com` / `app.example.com`), veya ön ucunuz genel ana bilgisayarı pano pod'una yaymıyorsa (bu nedenle `request.nextUrl.origin` aksi takdirde `0.0.0.0:3000` gibi joker bir bağlamaya çözecektir) ayarlayın. Örnek: `DASHBOARD_URL=https://app.example.com`.
3. **Varsayılan**: `https://app.befailproof.ai`, yalnızca yukarıdaki her ikisi yoksa kullanılır.

Başlık değeri doğrulanır: yalnızca `https://*` ve geri döngü (`http://localhost*`, `http://127.0.0.1*`) kaynakları kabul edilir ve joker bağlama adresleri (`0.0.0.0`, `[::]`) `https://` şemasıyla bile reddedilir. Başka bir şey katman 2'ye düşer.

Çalışan bir kümede tek satırlı olarak ayarlayın; dosya yok, kustomize yeniden derlemesi yok:

```bash theme={null}
kubectl set env deployment/server -n agenteye \
  DASHBOARD_URL=https://app.example.com
```

Bu bir dağıtımı tetikler; yeni pod'lar ilk istekte değeri alır. Geçersiz kılmanın yalnızca Dağıtımda yaşadığını unutmayın; sonraki `kustomize build | kubectl apply` ön ek aşılıya karşı, ön ekinizdeki `server-env.yaml` yama aynı ortam değişkenini eklemediniz sürece bunu silecektir.

***

## Pano

### Görüntüyü çekin

```bash theme={null}
docker pull ghcr.io/agenteye-enterprise/dashboard:beta-latest
```

### Ortam değişkenleri

| Değişken                | Gerekli | Varsayılan | Açıklama                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------------- | ------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AGENTEYE_SERVER_URL`   | Evet    | yok        | Sunucunun temel URL'si, örn. `http://localhost:8080`                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `AGENTEYE_API_KEY`      | Evet    | yok        | Panonun sunucuda kimlik doğrulaması yapmak için kullandığı API anahtarı. Tüm izinleri gerektirir (yönetici anahtarı önerilir).                                                                                                                                                                                                                                                                                                                                                     |
| `AE_LOG_LEVEL`          | Hayır   | `info`     | Sunucu tarafı günlük ayrıntı düzeyi: `debug`, `info`, `warn`, `error`. Sorunları tanılarken yukarı akış istek/yanıt satırlarını ve oturum doğrulaması izlerini görmek için `debug` ayarlayın.                                                                                                                                                                                                                                                                                      |
| `AE_LOG_JSON`           | Hayır   | otomatik   | `1` JSON-per-satır çıktısını zorlar; `0` insan tarafından okunabilir çıktıyı zorlar. Ayarlanmadığında, `NODE_ENV=production` ise JSON otomatik olarak etkinleştirilir. Üretimde JSON önerilir, böylece günlükler `jq` veya bir günlük toplayıcı ile temiz biçimde ayrıştırılır.                                                                                                                                                                                                    |
| `AE_ANALYTICS_DISABLED` | Hayır   | yok        | Panonun anonim ürün kullanımı telemetrisini devre dışı bırakmak için `1`/`true` ayarlayın. Aşağıda [Telemetri & Gizlilik](#telemetry--privacy) bölümüne bakın.                                                                                                                                                                                                                                                                                                                     |
| `REDIS_URL`             | Hayır   | yok        | İsteğe bağlı paylaşılan önbellek arka ucu, örn. `redis://redis:6379/0`. Ayarlandığında pano çoğaltmalar arasında `validateSession()` sonuçlarını önbelleğe alır ve gecikme toplama / ortam listesi proxy rotaları için Next.js getirme önbelleğini paylaşır. Edge-side OTP istek ve doğrulama hız sınırları mevcut olduğunda Redis'i kullanır (Redis ulaşılamıyorsa açılır; sunucu tarafı sınırı güvenlik yedeklenidir). Aşağıda **Redis (isteğe bağlı önbellek)** bölümüne bakın. |
| `AGENTEYE_AGENT_URL`    | Hayır   | yok        | İsteğe bağlı AI-asistan `agent` hizmetinin temel URL'si, örn. `http://agent:9100`. **Asistanı tamamen gizlemek için ayarlanmış halde bırakın**: pano asistan balonu görünmez. Bkz. [enterprise-docs/assistant.md](/tr/agenteye/assistant).                                                                                                                                                                                                                                         |
| `AGENTEYE_AGENT_TOKEN`  | Hayır   | yok        | Panonun `agent` hizmetine sunduğu paylaşılan gizli. Ajan'da yapılandırılan `AGENTEYE_AGENT_TOKEN` ile eşleşmeli. Bkz. [enterprise-docs/assistant.md](/tr/agenteye/assistant).                                                                                                                                                                                                                                                                                                      |

### Çalıştırma

```bash theme={null}
docker run -d --restart unless-stopped \
  --name agenteye-dashboard \
  -e AGENTEYE_SERVER_URL="http://your-server-host:8080" \
  -e AGENTEYE_API_KEY="$ADMIN_KEY" \
  -p 3000:3000 \
  ghcr.io/agenteye-enterprise/dashboard:beta-latest
```

### Telemetri & Gizlilik

Pano, **anonim ürün kullanımı analitikleri** Exosphere'in analitik hizmetine (PostHog) gönderir: hangi pano sayfalarının görüntülendiği ve API anahtarı oluşturma veya oturumu yeniden değerlendirme gibi bir avuç UI eylemi. Bu kullanım sinyali hangi özelliklerin önceliklendirildiğini bildiridir.

* **Agent, oturum veya etkinlik verileri hiçbir zaman altyapınızdan ayrılmaz.** Yalnızca pano UI kullanımı raporlanır. Sayfa URL'leri göndermeden önce tanımlayıcılardan çıkarılır ve operatörler asla e-posta tarafından değil, yalnızca opak bir iç kimliği tarafından tanımlanır.
* Telemetri **varsayılan olarak etkindir**. Tamamen kapatmak için panonun konteynerinde `AE_ANALYTICS_DISABLED=1` ayarlayın ve yeniden başlatın.
* Analitikler panonun kendi `/ingest` yoluna gönderilir, pano PostHog'a ters proxy yapar (`https://us.i.posthog.com`). İstekleri birinci taraf olarak tutmak, tarayıcı reklam engelleyicilerin bunları bırakmaması anlamına gelir. **Pano konteyneri** PostHog'a giden erişime ihtiyaç duyar; engellenmişse telemetri sessizce hiçbir şey yapmaz ve pano etkilenmez.

***

## AI Asistanı (isteğe bağlı)

Pano içi AI asistanı, ekibinizin Agent veri hakkında düz dilde soru sormasına (oturumları özetleme, `/queries` editörü için SQL taslakları ve kaydedilmiş sorguları pano kutucuklarına dönüştürme) panodan ayrılmadan izin verir. Bağımsız bir dahili `agent` konteynerinde (Claude Agent SDK'da) çalışır, yalnızca pano ulaşabilir ve **bir LLM uç noktası yapılandırana kadar devre dışı kalır**.

Etkinleştirmek için `agent` hizmetinde bir LLM bağlantısı (**Portkey** aracılığıyla `PORTKEY_API_KEY` + model-katalog sonu `AGENTEYE_AGENT_MODEL=@<slug>/<model>`, doğrudan Anthropic aracılığıyla `ANTHROPIC_API_KEY`, başka bir ağ geçidi aracılığıyla `ANTHROPIC_BASE_URL` veya Bedrock/Vertex), **ayrılmış** bir veri anahtarı ve panola eşleşen paylaşılan `AGENTEYE_AGENT_TOKEN` ayarlayın. Pano kullanıcıları ek olarak `agent:use` izni gerektirir.

Asistanın veri anahtarı için elle hiçbir şey basılmaz: rastgele bir gizli seçin, `agent` üzerinde `AGENTEYE_API_KEY` olarak ve `server` üzerinde `AGENT_API_KEY` olarak ayarlayın ve sunucu başlangıçta bunu sabit bir izin kümesi ile tohurnlanır. Veri erişimi salt okunur (`events:read`, `evaluations:read`, `dashboards:read`, `queries:read`) ve ek olarak onay geçidi yazarlık kapsamları tutar (`dashboards:write`, `queries:write`, `queries:run`) böylece kullanıcının adına kaydedilmiş sorguları ve pano kutucuklarını taslaklandırabilir ve doğrulayabilir; tüm SQL yine de org'un salt okunur ClickHouse rolü aracılığıyla çalışır, bu nedenle bu asistanın hangi veri yazabileceğini yığar, ulaşabileceği verileri değil. Kapsamlar kodda sabitlenmiş ve yapılandırma tarafından genişletilemez. Bu anahtar korunur; API aracılığıyla devre dışı bırakılamaz veya yeniden oluşturulamaz, yalnızca değeri değiştirerek ve yeniden başlatarak döndürülebilir. Yönetici/pano anahtarını hiçbir zaman bu amaç için yeniden kullanmayın.

Tam kurulum, tam ortam değişkeni referansı, telemetri seçenekleri ve güvenlik modeli **[enterprise-docs/assistant.md](/tr/agenteye/assistant)** içindedir.

***

## ClickHouse (gerekli analitik deposu)

ClickHouse yüksek etkinlik birimlerinde panonuları duyarlı tutar ve `/queries` SQL editörü etkinlikleri, değerlendirmeleri ve oturumları tek mağazada birleştirmeyi sağlar. Bu, her alınan etkinlik, her terminal değerlendirme sonucu ve türetilmiş oturum başına toplamaların gerekli kanonik deposudur. PostgreSQL ilişkisel / değişebilir durum tablolarını tutar (api\_keys, users, otp\_codes, evaluation\_jobs, dashboards, saved\_queries); analitik yüzey ClickHouse'ta yaşar, böylece panonun açılmış işlemleri ve kendi SQL sorgularınız bunu yerel olarak tarayabilir ve birleştirebilir, veritabanları arası gidiş dönüş olmadan. Sunucu `CLICKHOUSE_URL` olmadan önyüklemeden kaçınır.

### Şema

Üç ClickHouse nesnesi sunucu başlangıcında oluşturulur, tüm idempotenttir (`CREATE IF NOT EXISTS`):

* **`agenteye.events`**: `ReplacingMergeTree(ingested_at)`, `toYYYYMM(ts)` ile bölümlendirilmiş, `(session_id, ts, dedup_key)` ile sıralanmış. Yinelenen eklenmeler (toplayıcı yeniden denemeleri) birleştirme zamanında tek satıra çöker; sunucu her etkinlik için belirlenimci bir SHA-256 `dedup_key` hesaplar, böylece yeniden denenmeler güvenlidir.
* **`agenteye.evaluations`**: `ReplacingMergeTree(ingested_at)`, `toYYYYMM(finished_at)` ile bölümlendirilmiş, `(session_id, finished_at, dedup_key)` ile sıralanmış. Her terminal değerlendirme sonucu için değerlendirici ardışık düzen tarafından bir kez yazılır. `events` ile aynı dedup-anahtar modeli.
* **`agenteye.agent_sessions`**: fiziksel bir tablo değil, `agenteye.events` üzerindeki bir **VIEW**. Her sütun türetilmiş (`started_at = min(ts)`, `last_event_at = max(ts)`, `ended_at = max(if event_type='agent_end', ts, NULL)`, `event_count = count()`, vb.). Etkinlik başına upsert yok ve ayrı backfill yok; görünüm otomatik olarak `events` içinde ne varsa yansıtır.

Öncek uyumluluk için `analytics.evaluations` / `analytics.sessions` başvuran kaydedilmiş sorgularla, sunucu ayrıca `agenteye.*` tablolarında görünümler içeren `analytics` ClickHouse veritabanını oluşturur; `analytics.events`, `analytics.evaluations`, `analytics.agent_sessions`, `analytics.sessions` hepsi doğru şekilde çözülür.

### Yapılandırma

Paketlenmiş docker-compose ve `deploy/base/clickhouse/` AgentEye iş yükü için ayarlanmış bir ClickHouse hizmeti içerir:

* 2 GiB istenen / 4 GiB limit bellek paketlenmiş temel ön ek (küçük POC/hazırlık düğümlerine sığmak için boyutlandırılmış); üretim müşterileri ön ek tekrar olmalıdır — önerilen alt sınır 2c / 4Gi istek, 6c / 8Gi sınırıdır. `max_server_memory_usage_to_ram_ratio=0.9`
* 5 GiB mark önbellek + 8 GiB sıkıştırılmamış önbellek
* `background_pool_size=16`, `background_merges_mutations_concurrency_ratio=2`
* MergeTree: `parts_to_throw_insert=3000`, `parts_to_delay_insert=1500`, `non_replicated_deduplication_window=1000`
* `local_io_method=auto` (desteklenen çekirdeklerde io\_uring)
* `fsync_metadata=0`: at-least-once alım + ReplacingMergeTree dedup nedeniyle kabul edilebilir
* `query_log` 30 günlük TTL etkinleştirilmiş; `query_thread_log` kaldırılmış (yüksek QPS'de pahalı)
* `max_execution_time=30` kullanıcı tarafı sorguları için
* StatefulSet şablonunda 100 GiB PVC (müşteri ön ekleri üretim için hızlı SSD depolama sınıfına geçersiz kılmalıdır)

### Yedeklemeler

Tam veri setin tek bir geri yüklenebilir arşivde her gece yakalanır, bu nedenle küme veya depolama kaybı kurtarılabilir. ClickHouse günlük `agenteye-backup` CronJob'u tarafından otomatik olarak yedeklenir, bu da bir geçişte hem PostgreSQL hem de ClickHouse'u döker. ClickHouse HTTP API'si üzerinden okunur: `agenteye.events` ve `agenteye.evaluations` ClickHouse-native biçiminde dökerlenmiştir (görünümler ve satır ilkeleri sunucu başlangıcında yeniden oluşturulur, böylece tablo verileri tam resimdir) ve Postgres dökümü ile nesne depolamaya yüklenen tek bir sıkıştırılmış arşive birleştirilmiş.

Hedef bucket ve bulut kimlik bilgileri ön ek başına yapılandırılır. Yükleme yapılandırması ve geri yükleme adımları için [enterprise-docs/kubernetes-deployment.md](/tr/agenteye/kubernetes-deployment) **Yedeklemeler** bölümüne bakın.

***

## Redis (isteğe bağlı önbellek)

Redis, sunucu ve pano tarafından kullanılan **isteğe bağlı** bir paylaşılan önbellek + hız sınırı arka ucu. Redis dağıtılırken ve `REDIS_URL` her iki hizmette ayarlandığında:

* **Sunucu** kimliği doğrulanmış API anahtarı aramaları, `/events/environments` + `/evaluations/environments` listeleri, `/events/latency_aggregate` açılmış (panonun yokladığı en ağır sorgu), `/sessions` listesi önbelleğe alır ve OTP istek hız sınırlamasını Postgres `COUNT(*)` adresinden Redis `INCR + EXPIRE` adresine değiştirir.
* **Pano** `validateSession()` sonuçlarını çoğaltmalar arasında önbelleğe alır, böylece tipik sayfa yükü sorunları olan 10-20 authed API çağrısı tüm bir yukarı akış oturumu kontrolü paylaşır. Ayrıca panonun kenarında OTP istek ve OTP doğrulama hız sınırı tutar.

**Her iki hizmet de Redis ulaşılamıyorsa incelikle düşer.** Her önbellek çağrısı sınırlı bir zaman aşımı içinde `Err` döndürür ve çağıran gerçeği kaynağına geri düşer (sunucuda Postgres, panonun yukarı akış Rust sunucusu). OTP hız sınırı sunucuda Postgres `COUNT(*)` yoluna geri düşer (güvenlik özelliği korunur); panonun kenar OTP sınırı Redis ulaşılamıyorsa açılır, sunucu tarafı sınırı hala tutar. Redis kapalı olduğunda gecikmeyi düşürür, doğruluk değil.

### Yapılandırma

docker-compose paket zaten Redis hizmetini ve `REDIS_URL=redis://redis:6379/0` sunucu ve panoyu içerir. Harici Redis kullanmak için `REDIS_URL` uç noktanız olarak ayarlayın ve compose dosyasından `redis` hizmetini kaldırın.

### Bellek + kalıcılık

Paketlenmiş Redis görüntüsü `--appendonly yes --appendfsync everysec --maxmemory 256mb --maxmemory-policy allkeys-lru` ile çalışır. AOF kalıcılığı, önbelleğin kapsayıcı yeniden başlatmalarından kurtulması anlamına gelir; `everysec` doğru dayanıklılık/perf dengesidir çünkü son saniyelik önbellek yazmaları kaybı zararsızdır. LRU tahliye bellek büyümesini sınırlar.

### Redis dağıtmamak için

* Tek örnek geliştirme/QA. Sunucuda işlem içi önbellekler tek başına çoğu per-çoğaltma avantajını teslim eder; Redis, tek örnek kurulumları gereken çapraz çoğaltma paylaşımını ekler.
* Bir hizmeti daha çalıştırmanın operasyonel maliyeti gecikme kazancından daha ağır olan hava geçitli kurulumlar.

***

## Docker Compose (önerilen)

`agenteye-enterprise/releases` deposunda bir `docker-compose.yml` mevcuttur. Postgres, sunucusu ve panosu tek komutla getirtir.

```bash theme={null}
GITHUB_TOKEN=$AGENTEYE_TOKEN gh release download \
  --repo agenteye-enterprise/releases \
  --pattern 'docker-compose.yml' \
  --dir ./agenteye
cd agenteye
```

**`.env` aracılığıyla varsayılanları geçersiz kılın:**

```
# URL-safe parolalar kullanın (/, +, veya = karakterleri yok).
# Oluştur: openssl rand -hex 24
POSTGRES_PASSWORD=your-db-password
ADMIN_KEY=your-admin-secret

# Pano kimlik doğrulması
ADMIN_EMAIL=admin@yourcompany.com
ALLOWED_EMAILS=*@yourcompany.com

# OTP e-postaları için SMTP (OTP kodlarını stdout'a kaydetmek için atla)
# SMTP_HOST=smtp.yourprovider.com
# SMTP_PORT=587
# SMTP_USERNAME=your-smtp-user
# SMTP_PASSWORD=your-smtp-password
# SMTP_FROM=noreply@yourcompany.com

RUST_LOG=info
```

```bash theme={null}
docker compose up -d
```

**Dur (veri birimini tutar):**

```bash theme={null}
docker compose down
```

**Dur ve tüm verileri sil:**

```bash theme={null}
docker compose down -v
```

***

## İşletimsel ayarlar

Ortam değişkenleri tarafından sabitlenmiş küçük bir operasyonel düğme seti artık panonun **`/<org>/settings`** sayfasından kuruluş başına düzenlenebilir; her org kendi yapılandırır. Değişiklikler saniyeler içinde etkili hale gelir, yeniden başlatma yok ve yeniden dağıtma yok.

| Ayar                             | Önyükleme ortam değişkeni  | Ne denetler                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| İzin verilen oturum açmalar      | `ALLOWED_EMAILS`           | OTP almalarına izin verilen e-postalar (veya `*@domain.com` joker karakterleri) ve kullanıcı olarak eklenir                                                                                                                                                                                                                                                                                                                                                                       |
| Varsayılan kullanıcı izinleri    | `DEFAULT_USER_PERMISSIONS` | Bir yönetici **+ yeni kullanıcı** açtığında önceden seçilen virgülle ayrılmış izin jetonları. Her jeton [API anahtarı izinleri](/tr/agenteye/api-keys) altında listelenen dizelerden biri olmalıdır. `standard` ön ayarına varsayılan: salt okunur erişim ve günlük gündüz eylem (değerlendirmeleri yeniden tetikleme, sorgular çalıştırma, olayları onaylama, asistanı kullanma).                                                                                                |
| Oturum yaşam süresi              | `SESSION_TTL_SECS`         | Pano oturum açması yeniden kimlik doğrulamadan önce ne kadar geçerli kalır. Pano yukarı akış oturumunu her 5 saniyede yeniden kontrol eder, bu nedenle `/<org>/users` üzerindeki izin güncellemesi etkilenen kullanıcının sonraki isteğinde, yeniden oturum açılmadan etkili olur.                                                                                                                                                                                                |
| Tek kullanımlık kod yaşam süresi | `OTP_TTL_SECS`             | OTP / sihirli bağlantı ne kadar süreyle kullanılabilir kalır                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Uyarı bildirim kanalları         | `ALERTS_ENABLED_CHANNELS`  | Uyarı göndericisinin kullanmasına izin verilen kanal türlerinin virgülle ayrılmış listesi: `email`, `slack`, `webhook`. Per-uyarı yapılandırması hala `/<org>/alerts/<id>` üzerinde yazılır, ancak göndericisi bu küme aracılığıyla her giden teslimi filtreler; burada devre dışı bırakılan bir kanal `skipped_disabled` denetim satırı ile kısa devreye girer. `dashboard` kanalı (yerel denetim ekleme) her zaman izin verilir. Üçünün tümü açılmış olarak varsayılan ayarlar. |

### Önyükleme nasıl çalışır

Ayarlar kuruluş başına `org_settings` içinde depolanır. İlk önyüklemede, sunucu varsayılan org'un eksik satırlarını eşleşen ortam değişkeninden (veya ortam değişkeni ayarlanmadığında akla yatkın bir varsayılandan) tohurnlanır. Bundan sonra, **depolanmış değer gerçeği kaynağı ve ortam değişkeni yok sayılır**; ortam değişkenini daha sonraki yeniden başlatmada değiştirmek canlı org'un değerini etkilemez ve ek org'lar varsayılanlardan başlayıp kendi yapılandırır.

Bu anlamına gelir:

* Yeni bir dağıtım için, ortam değişkenlerini yukarıda gösterildiği gibi ayarlayın ve varsayılan org ilk önyüklemede onları okur.
* Bir değeri daha sonra değiştirmek için panonuya giriş yapın ve `/<org>/settings` altında düzenleyin. Değişiklik saniyeler içinde tüm sunucu çoğaltmaları arasında etkili olur; yeniden başlatma gerekmez.
* Bir başlangıç günlük satırı ne tohurnlandığını ve ne zaten var olduğunu kaydeder, böylece önyüklemenin etkili olduğunu doğrulayabilirsiniz:

  ```text theme={null}
  INFO settings bootstrap: seeded default-org row key=allowed_sign_ins env_var=ALLOWED_EMAILS seeded_from_env=true
  ```

#### Kuruluşlar arasında oturum açma anlambilimi

Oturum ve OTP, tek org'a değil küreseldir, bu nedenle iki kural oturum açma zamanında per-org ayarlarını uzlaştırır:

* **Oturum / OTP yaşam süresi**: en katı (en kısa) yaşam süresi kullanıcının ait olduğu org'lar arasında kazanır.
* **İzin verilen oturum açmalar**: kapı VEYA'lar her org'un izin listesi kuruluş üyeliğiyle: bir kullanıcı herhangi bir org'un izin listesi e-postalarını kabul ederse OTP isteyebilir **veya** zaten herhangi bir org'un üyeleri.

### İzinler

`/<org>/settings` sayfasına erişim iki izin tarafından kapılır:

* `settings:read`: sayfayı görmek ve geçerli değerleri.
* `settings:write`: değişiklikleri kaydet.

Önyükleme yöneticisi kullanıcısı (önyükleme `ADMIN_EMAIL` adresinde) otomatik olarak her diğer izinle birlikte her ikisini alır. Gerektiğinde diğer kullanıcılara `/<org>/users` adresinden verin.

***

## Kuruluşlar (çok kiracılılık)

Tek bir dağıtım birden fazla izole **kuruluş** (kiracı) sunabilir; her veri satırı tam olarak bir org'a aittir ve izolasyon veritabanı motorunda uygulanır. Tek kiracılı kurulum buna gerek duymaz; tüm veriler yerleşik `default` org'da yaşar. (Bu org'a daha uygun bir ad ve URL sunu verebilirsiniz, böylece `default` yerine örn. `/acme` adresinde yaşar, ilk önyüklemeden önce `DEFAULT_ORG_NAME` / `DEFAULT_ORG_SLUG` ayarlayarak veya herhangi bir zamanda `agenteye-orgctl org rename` ile yeniden adlandırarak.)

**Kiracı sağlaması yalnızca operatördür.** Kuruluşlar ve üyelikleri **`agenteye-orgctl`** CLI ile oluşturulur ve yönetilir, bu **sunucu görüntüsünün içinde gemi** (`agenteye-server` yanında) ve **mevcut sunucu pod içinde** çalışır; **ayrı pod/Job, HTTP API ve pano düğmesi yok**. Sunucunun `DATABASE_URL`, `CLICKHOUSE_URL` ve `ORG_CH_SECRET` yeniden kullanır.

```bash theme={null}
# Docker Compose - çalışan sunucu hizmetine exec:
docker compose exec server agenteye-orgctl org create --slug acme --name "Acme Corp"
docker compose exec server agenteye-orgctl member add --org acme --email alice@acme.example --set admin

# Kubernetes - çalışan sunucu Dağıtımı içine exec:
kubectl -n agenteye exec deploy/server -- agenteye-orgctl org list
```

Kullanılabilir fiiller: `org create | list | rename | delete | purge` ve `member add | list | update | remove`, yerleşik izin kümesi `admin`, `standard` ve `read-only` ile. Eklenen üyeler ilk pano girişinde OTP alır.

**İkinci bir org oluşturmadan önce:** güçlü, kararlı `ORG_CH_SECRET` ayarlayın (`org create` komutu yerleşik geliştirme varsayılanında çalışmayı reddeder) ve Postgres'in **15+** olmasını sağlayın. **Değiştirilmemiş:** per-org API anahtarları hala pano/API tarafından org üyeleri tarafından basılır; yalnızca org + üyesi yaşam döngüsü CLI'ye taşındı. Tam komut referansı ve çalışılan örnek: **[enterprise-docs/tenant-management.md](/tr/agenteye/tenant-management)**.

***

## Bağlam penceresi doldurma

Her `model_response` etkinliği bir **bağlam dolgu hapı** gösterir — o modelin bağlam penceresinin yüzdesi olarak giriş artı çıkış jetonları. Bantlar `healthy` (0–24%), `watch` (25–49%), `compacting` (50–74%) ve `reset context` (75–100%) olur. AgentEye yaygın model kimliklerini otomatik olarak çözer, bu nedenle hiçbir ilk yapılandırma gerekmez.

Bir kuruluşun gönderdiği her model Ayarlar → model bağlam pencereleri altında görünür. `settings:write` izni olan kullanıcılar pencereyi geçersiz kılabilir veya özel/proxy model ekleyebilir (0–1.000.000 jeton); `0` "bilinmiyor" anlamına gelir ve hapı bastırır. Değişiklikler yeni alınan etkinliklere uygulanır. `settings:read` izni olan kullanıcılar listeyi görüntüleyebilir.

Yeni etkinlikler yükseltmede anı alır. Ayrıca mevcut dağıtım için **tarihsel** etkinlikleri doldurmak için (ve per-model listeyi), bir kez çalıştırılan backfill çalıştırın — sunucu görüntüsünün içinde gemi (`agenteye-orgctl` gibi) ve mevcut sunucu pod'unda çalışır:

```bash theme={null}
# ön izleme (per-org mutasyonu yazdırır, hiçbir şey değişmez):
kubectl -n agenteye exec deploy/server -- agenteye-backfill-context-window --dry-run
# uygula:
kubectl -n agenteye exec deploy/server -- agenteye-backfill-context-window
# docker compose:
docker compose exec server agenteye-backfill-context-window
```

Eğersiz (yeniden çalıştırmak güvenlidir) ve pod'dan `DATABASE_URL` / `CLICKHOUSE_URL` / `REDIS_URL` yeniden kullanır. Model pencereleri düzenledikten sonra varolan etkinlikleri yeniden hesaplamak istiyorsanız yeniden çalıştırın.

***

## Üretim Hususları

* **Postgres**: Yönetilen Postgres hizmetini veya düzenli yedeklemeleri olan ayrılmış bir örneği kullanın. `DATABASE_URL` `sslmode=require` dahil olmak üzere tüm standart libpq parametrelerini destekler, şifreli bağlantılar için.
* **TLS**: Sunucu ve panoyu TLS'yi sonlandıran ters proxy'nin (nginx, Caddy, Traefik) ardına koyun.
* **Güvenlik duvarı**: Sunucu portu (varsayılan 8080) yalnızca toplayıcı makinelerinden ve pano ana bilgisayarından erişilebilir olmalıdır, genel İnternet'ten değil.
* **Yönetici anahtarı**: `ADMIN_KEY` güçlü rastgele gizli ayarlayın. Önyüklemeden sonra, yönetici anahtarını her yerde kullanmak yerine toplayıcılar ve pano için ayrılmış kapsamlı anahtarlar oluştu
