# Yükseltme

> Bir kurulumu yeni bir sürüme güncelleme ve 2.1.0'dan 2.2.0'a geçerken nelerin değiştirileceği.

Bir güncelleme, PentAGI imajlarını ve sürüm bunları değiştirdiğinde compose dosyalarını değiştirir. `.env` ve veri birimleriniz korunur ve PentAGI başladığında veritabanı geçişleri çalışır.

## [Başlamadan önce](https://pentagi.com/tr/docs/deployment/upgrade/#before-you-start)

* Çalıştırdığınız sürümden sonraki her sürümün [sürüm notlarını](https://pentagi.com/changelog/) okuyun; 2.1.0'dan beri yükseltme notları içermektedirler.
* Veritabanını yedekleyin. Yükleyici de PentAGI de bunu yapmaz ve geçişler veri kaybı olmadan geri alınamaz. Varsayılan `PENTAGI_POSTGRES_USER` ve `PENTAGI_POSTGRES_DB` ile:

  ```bash
  docker exec pgvector pg_dump -U postgres -Fc pentagidb > pentagi-backup.dump
  ```

  `.env` ve compose dosyalarının kopyalarını da saklayın: yükleyici yedek almadan compose dosyalarını değiştirir.
* Artık ihtiyaç duymadığınız [flow](https://pentagi.com/tr/docs/glossary/#flow)'ları tamamlayın. Hâlâ çalışan bir [sandbox](https://pentagi.com/tr/docs/glossary/#sandbox), oluşturulduğu sürümün ayarlarıyla, oluşturulduğu şekilde yeniden kullanılır.
* 2.1.0 sürümünden geliyorsanız, yeni sürüm başlamadan önce `.env` ve yanındaki dosyalarda [2.1.0'dan 2.2.0'a](#from-210-to-220) bölümündeki değişiklikleri yapın. Google veya GitHub ile oturum açma özelliği açıksa, `OAUTH_GOOGLE_CLIENT_ID` ve `OAUTH_GITHUB_CLIENT_ID` alanlarını şimdi boş bırakın; bölüm bunun nedenini açıklar.

## [Docker Compose](https://pentagi.com/tr/docs/deployment/upgrade/#docker-compose)

1. Yeni sürümün compose dosyalarını `.env` yanınıza indirin: `docker-compose.yml` ve çalıştırdığınız her isteğe bağlı yığının dosyası. PentAGI konteyneri yalnızca compose dosyasında listelenen değişkenleri alır, bu nedenle `.env` içindeki yeni ayarlar eski bir dosya arkasında etkili olmaz.

   ```bash
   cd ~/pentagi
   curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose.yml
   # and the file of each optional stack you run, for example:
   curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose-langfuse.yml
   ```

2. İmajları çekin ve yığını başlattığınız aynı `-f` dosyalarıyla yeniden başlatın. `pull` olmadan, `up -d` ana makinede zaten bulunan imajları korur.

   ```bash
   docker compose pull && docker compose up -d
   ```

3. Flow'ları çalıştıran Docker ana makinesindeki sandbox imajını yenileyin; `docker compose pull` bunu yapmaz. Bundan sonra oluşturulan flow'lar bunu kullanır.

   ```bash
   docker pull vxcontrol/kali-linux
   ```

`latest` imaj etiketi ana dalı takip eder. Tek bir sürümde kalmak için `.env` içinde `PENTAGI_IMAGE=vxcontrol/pentagi:<version>` ayarlayın.

## [Yükleyici](https://pentagi.com/tr/docs/deployment/upgrade/#installer)

1. Yeni sürümün yükleyicisini [Hızlı başlangıç](https://pentagi.com/tr/docs/getting-started/quickstart/) sayfasından indirin ve `.env` ile çalıştırın. 2.1.0 yükleyicisi kendini güncelleyemez.
2. Compose dosyalarını değiştirmek için menüde **Apply Changes** görünmesi için bir ayarı değiştirin, onu seçin ve yükleyici güncel olmayan dosyaları listelediğinde `y` yanıtını verin.
3. Bakım menüsünde, yeni imajları çekmek için **Update PentAGI** ve sunulduğunda **Update Worker Image** çalıştırın. Tek başına **Update PentAGI** eski compose dosyalarını korur.

## [2.1.0'dan 2.2.0'a](https://pentagi.com/tr/docs/deployment/upgrade/#from-210-to-220)

### [Dosyalar](https://pentagi.com/tr/docs/deployment/upgrade/#files)

* Compose dosyası, yanına `example.bedrock.provider.yml` bağlar. Yükleyici bunu oluşturur; manuel kurulumda kendiniz oluşturun, boş bir dosya yeterlidir: `touch example.bedrock.provider.yml`.
* Langfuse çalıştırıyorsanız `docker-compose-langfuse.yml` dosyasını değiştirin: 2.1.0 dosyası artık yayınlanmayan `minio/minio` imajını adlandırır, bu nedenle `docker compose pull` bununla başarısız olur. `.env` `MINIO_IMAGE=minio/minio:…` ayarlarsa bu satırı kaldırın.
* [Knowledge graph](https://pentagi.com/tr/docs/glossary/#knowledge-graph) için, depodaki `examples/neo4j` dosyasını `./neo4j` konumuna koyun — Graphiti bunun APOC eklentisine ihtiyaç duyar — ve model ön ayarları için [Bellek ve bilgi](https://pentagi.com/tr/docs/concepts/memory/#knowledge-graph-optional) bölümüne bakın. `GRAPHITI_MODEL_NAME` artık okunmaz.
* İlk başlatmada sekiz veritabanı geçişi çalışır. Tamamlandığında `docker compose logs pentagi` "Database schema updated successfully" mesajını gösterir.

### [Oturum açma ve erişim](https://pentagi.com/tr/docs/deployment/upgrade/#sign-in-and-access)

* Herkes tekrar oturum açar: 2.1.0'daki oturumlar reddedilir. API token'ları çalışmaya devam eder ve betikler `POST /api/v1/auth/logout` ile çıkış yapar.
* Bir API token'ı, REST `/users`, `/roles` ve `/tokens` rotalarında 403 hatası alır: hesapları, rolleri ve token'ları oturum açmış bir tarayıcı oturumundan yönetin.
* Google ve GitHub ile oturum açma artık o adrese sahip mevcut hesaba (yerel hesaplar dahil), o hesabın rolüyle sağlayıcı tarafından doğrulanmış bir e-posta ile giriş yapar. 2.1.0 bir hesabın e-postasını değiştiremez, bu nedenle oturum açma açıksa, `OAUTH_GOOGLE_CLIENT_ID` ve `OAUTH_GITHUB_CLIENT_ID` boş olarak yükseltme yapın, `admin@pentagi.com` adresini **Settings → Account** altında kontrol ettiğiniz bir adrese taşıyın, ardından oturum açmayı tekrar açın. Yükleyicinin **Reset Admin Password** özelliği yöneticiyi yalnızca `admin@pentagi.com` ile bulur.
* Ters proxy arkasında `TRUSTED_PROXIES` ayarlayın, aksi takdirde her kullanıcı proxy'nin adresini paylaşır ve başarısız oturum açma denemelerinden oluşan tek bir patlama herkesi 15 dakika boyunca kilitleyerek dışarıda bırakır — bkz. [Ağ maruziyeti](https://pentagi.com/tr/docs/configuration/security/#network-exposure).

### [Sandbox'lar](https://pentagi.com/tr/docs/deployment/upgrade/#sandboxes)

* `DOCKER_INSIDE=true` ile — 2.1.0 `.env` şablonu ve yükleyici varsayılanı — 2.1.0 ana makine Docker soketini her sandbox'a bağlardı. 2.2.0 [agent](https://pentagi.com/tr/docs/glossary/#agent)'lara Docker'ı yalnızca `DOCKER_INSIDE_HOST` içindeki ayrı bir daemon setinden verir; bunun olmadan hiçbirine erişemezler ve günlükte `sandbox DISABLED` yazar. `DOCKER_INSIDE_HOST` ile, `DOCKER_SOCKET=` boş bırakın, aksi takdirde şablonun `/var/run/docker.sock` hâlâ bağlanır. Bkz. [Worker node](https://pentagi.com/tr/docs/deployment/worker-node/).
* 2.1.0 üzerinde başlatılan flow'ları tamamlayın: sandbox'ları flow tamamlanana kadar eski soket bağlantısını ve yeteneklerini korur.
* `TENANT_ID` boş bırakın: mevcut bir kurulumda PentAGI'yı yeni, boş bir şemaya yönlendirir.

### [Modeller ve istemler](https://pentagi.com/tr/docs/deployment/upgrade/#models-and-prompts)

* Özel [provider](https://pentagi.com/tr/docs/glossary/#provider) için `LLM_SERVER_KEY` gerekir: boş bir anahtarla devre dışı kalır, bu nedenle kimlik doğrulaması olmayan bir sunucu için boş olmayan herhangi bir değer ayarlayın.
* `LLM_SERVER_LEGACY_REASONING` kaldırıldı. Özel provider `reasoning_effort` gönderir ve bir `reasoning.max_tokens` bütçesini çaba seviyesine dönüştürür; Kimi K2, 5.2 öncesi GLM ve MiniMax M modellerinde bir bütçe artık çağrıyı başarısız kılar, bu nedenle bunları bu agent'lardan kaldırın.
* Provider yapılandırma dosyalarında, `max_tokens`, `temperature`, `top_p` veya `n` alanlarını boş bırakan bir agent girişi artık hiçbir şey göndermek yerine provider türünün varsayılanlarını alır.
* Bedrock hariç her provider için yerleşik varsayılan modeller değişti; **Settings → Providers** içinde kaydedilen provider'lar modellerini korur. İmaja paketli beş yapılandırma modeli değiştirdi — `openrouter`, `deepinfra`, `ollama-cloud`, `moonshot` ve `deepseek`. `LLM_SERVER_CONFIG_PATH` veya `OLLAMA_SERVER_CONFIG_PATH` `/opt/pentagi/conf/` altında bunlardan birini gösteriyorsa, 2.1.0 dosyasını ana makinede tutun ve özel veya Ollama yapılandırması olarak bağlayın.
* OpenAI'nin sunucusu dışında bir sunucuda `EMBEDDING_URL` ile, `EMBEDDING_KEY` ayarlayın: `OPEN_AI_KEY` artık oraya gönderilmez.
* Agent'lar tek bir `web_search` aracı üzerinden arama yapar. `{{.GoogleToolName}}` ve diğer motor başına değişkenlere sahip özel istemler, `{{.WebSearchToolName}}` kullanana kadar günlükte bir uyarıyla birlikte yok sayılır; özel searcher ve pentester istemlerini yeni varsayılanlara göre yeniden temellendirin.

### [Diğer değişiklikler](https://pentagi.com/tr/docs/deployment/upgrade/#other-changes)

* Başlatıldıktan sonraki iki dakika içinde ve ardından her üç saatte bir, PentAGI sürümünü ve kurulumun özetini `update.pentagi.com` bildirir; [Güncelleme kontrolü](https://pentagi.com/tr/docs/configuration/security/#update-check) ne gönderdiğini listeler ve `UPDATE_CHECK_INTERVAL=0` bunu kapatır.
* Profilleyici, `PPROF_ADDR` ayarlanmadıkça artık 7777 portunu dinlemez.
* Yeni isteğe bağlı ayarlar arasında `LLM_FALLBACK_PROVIDER` ile [provider başarısızlık durumu](https://pentagi.com/tr/docs/configuration/llm-providers/#failover), [birkaç örnek](https://pentagi.com/tr/docs/deployment/production/#several-instances-tenant_id) için `DOCKER_PORTS_BASE`, `DOCKER_IMAGE_SELECTION_MODE` ve `DOCKER_ALLOWED_IMAGES`, dahili [search engine](https://pentagi.com/tr/docs/glossary/#search-engine) `WEB_SEARCH_INTERNAL_ENABLED` ve Mistral, xAI, MiniMax ve Firecrawl anahtarları bulunur.

## [Yedekleme ve geri alma](https://pentagi.com/tr/docs/deployment/upgrade/#back-up-and-roll-back)

PentAGI geçişleri asla geriye doğru çalıştırmaz ve bunları elle çalıştırmak verileri siler, bu nedenle 2.1.0'a dönüş yolu yedektir. Veritabanını kullanan servisleri durdurun, veritabanını yeniden oluşturun ve dökümü geri yükleyin:

```bash
docker compose stop pentagi pgexporter
docker exec pgvector dropdb -U postgres pentagidb
docker exec pgvector createdb -U postgres pentagidb
docker exec -i pgvector pg_restore -U postgres -d pentagidb < pentagi-backup.dump
```

Ardından kaydedilen `.env` ve compose dosyalarını geri koyun, `PENTAGI_IMAGE=vxcontrol/pentagi:2.1.0` ayarlayın ve yığını başlatın. Yeni `docker-compose-langfuse.yml`'yi koruyun: 2.1.0 dosyasının MinIO imajı artık çekilemez.