# Güvenlik

> Bir PentAGI kurulumunun kimlik bilgileri, HTTPS, oturum açma ve ağa açıklığı.

## [Varsayılanları değiştirin](https://pentagi.com/tr/docs/configuration/security/#change-the-defaults)

Yeni bir kurulum, `admin` parolasıyla `admin@pentagi.com` yerel yöneticisini oluşturur; bu parola ilk oturum açmada değiştirilmelidir. Parola kaybolursa, hesap hâlâ `admin@pentagi.com` adresini kullanıyorsa yükleyicinin bakım menüsü parolayı sıfırlar.

İlk başlatmadan önce `.env` dosyasındaki bu değerleri ayarlayın; yükleyici salt ve parolaları sizin için oluşturur. PostgreSQL ve Neo4j, kimlik bilgilerini yalnızca veri birimlerini oluştururken alır, bu nedenle bunları daha sonra değiştirmek bağlantıyı bozar:

| Değişken                                             | Amaç                                                                                                           |
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `COOKIE_SIGNING_SALT`                                | Oturum çerezlerini ve API belirteçlerini imzalar — rastgele bir değer atayın                                   |
| `PENTAGI_POSTGRES_USER`, `PENTAGI_POSTGRES_PASSWORD` | PostgreSQL kimlik bilgileri                                                                                    |
| `NEO4J_PASSWORD`                                     | [Knowledge graph](https://pentagi.com/tr/docs/glossary/#knowledge-graph) için Neo4j parolası; `NEO4J_USER` `neo4j` olarak kalmalıdır |
| `PUBLIC_URL`                                         | Kullanıcıların açacağı URL, örneğin `https://pentagi.example.com`                                              |

Çalışan bir kurulumda, önce PostgreSQL veya Neo4j içinde bir veritabanı parolasını değiştirin, ardından `.env` içinde değiştirin.

## [HTTPS](https://pentagi.com/tr/docs/configuration/security/#https)

PentAGI, 8443 portunda kendinden imzalı bir sertifikayla HTTPS hizmeti sunar. Kendi sertifikanızı kullanmak için `SERVER_SSL_CRT` ve `SERVER_SSL_KEY` değişkenlerini ayarlayın ve ilgili dosyaları `docker-compose.yml` içinde bağlayın.

## [Kullanıcılar ve oturum açma](https://pentagi.com/tr/docs/configuration/security/#users-and-sign-in)

Kayıt formu bulunmamaktadır. Yöneticiler yerel kullanıcıları, oturum açmış bir tarayıcı oturumundan Users API (`/api/v1/users/`) üzerinden yönetir — burada bir API token'ı 403 hatası alır — ve roller her kullanıcının neleri görebileceğini ve değiştirebileceğini kısıtlar. Yerel kullanıcılar e-posta ve şifrelerini **Settings → Account** altında değiştirir.

GitHub veya Google ile oturum açma yapılandırıldığında, sağlayıcı tarafından doğrulanan e-posta adresi mevcut bir hesapla (yerel hesaplar dahil) eşleşen bir oturum açma işlemi, o hesaba ve rolüne giriş yapar; diğer tüm oturum açma işlemleri varsayılan kullanıcı rolüne sahip yeni bir hesap oluşturur. Her kurulum `admin@pentagi.com` yöneticisi ile başlar, bu nedenle oturum açmayı etkinleştirmeden önce **Settings → Account** altında kontrolünüzdeki bir adrese taşıyın ve bunu yalnızca yeni hesapların kabul edilebilir olduğu durumlarda, örneğin alan adınızla sınırlı bir Google Workspace uygulamasında etkinleştirin.

GitHub ve Google ile oturum açma OAuth üzerinden kullanılabilir. `${PUBLIC_URL}/api/v1/auth/login-callback` geri çağırma adresiyle bir uygulama kaydedin ve kimlik bilgilerini ekleyin:

```bash
PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secret
```

## [Ağ erişilebilirliği](https://pentagi.com/tr/docs/configuration/security/#network-exposure)

Varsayılan olarak PentAGI web arayüzü yalnızca `127.0.0.1` üzerinde dinler. Diğer makinelerden erişmek için:

```bash
PENTAGI_LISTEN_IP=0.0.0.0
PENTAGI_LISTEN_PORT=8443
PUBLIC_URL=https://192.168.1.100:8443
CORS_ORIGINS=https://localhost:8443,https://192.168.1.100:8443
```

`PUBLIC_URL` ve `CORS_ORIGINS` içinde gerçek adresi kullanın, asla `0.0.0.0` kullanmayın. Konteynerleri `docker compose up -d --force-recreate` komutuyla yeniden oluşturun ve güvenlik duvarında 8443 portunu açın.

Bir ters proxy arkasında, `TRUSTED_PROXIES` değerini virgülle ayrılmış şekilde proxy’nin adresine veya CIDR bloğuna ayarlayın. Aksi takdirde her istek proxy’den geliyormuş gibi görünür ve adres başına oturum açma sınırı — beş dakika içinde 30 başarısız deneme, ardından 15 dakikalık kilitlenme — tüm kullanıcılar tarafından paylaşılır.

Her [flow](https://pentagi.com/tr/docs/glossary/#flow)'un [sandbox](https://pentagi.com/tr/docs/glossary/#sandbox) konteyneri ayrıca ters kabuklar gibi bant dışı geri aramalar için iki bağlantı noktası yayımlar. Bunlar, `DOCKER_PORTS_BASE` adresinden başlayan (varsayılan `28000`) 2000 bağlantı noktasından gelir ve [agent](https://pentagi.com/tr/docs/glossary/#agent)'ların hedeflere de geri arama yapmaları için verdiği adres olan `DOCKER_PUBLIC_IP` adresine bağlanır.

Varsayılan olarak `DOCKER_PUBLIC_IP`, `0.0.0.0` şeklindedir: portlar Docker ana bilgisayarının her arayüzünde dinleme yapar ve agent'lar genel adreslerini kendileri bulur. Ana bilgisayar bu adrese sahipse ve hedefler buna erişebiliyorsa yalnızca belirli bir adres ayarlayın; NAT arkasında varsayılanı koruyun. Docker'ın yayınladığı portlar ana bilgisayardaki ufw ve firewalld kurallarını atladığından, aralığı ana bilgisayarın önündeki bir güvenlik duvarı (örneğin bir bulut güvenlik grubu) veya Docker'ın `DOCKER-USER` zincirindeki kurallarla kısıtlayın.

`PROXY_URL`, arka ucun model sağlayıcılarına, yerleştirme sağlayıcısına, arama API'lerine ve güncelleme denetimine yönelik çağrılarını bir vekil sunucu üzerinden yönlendirir; bu, kurulumu harici ağlardan izole etmeye yardımcı olur. Ollama, vLLM veya SearXNG gibi kendi kendine barındırılan uç noktalar da bunun üzerinden geçer; çünkü `NO_PROXY` istisnası yoktur, dolayısıyla vekil sunucunun bunlara erişebilmesi gerekir. Agent'ların komutlarını çalıştırdığı flow'ların sandbox kapsayıcıları, tarayıcı aracı için web sayfalarını açan kazıyıcı ve Graphiti hizmeti bunu kullanmaz; bu nedenle giden trafiğini ağ düzeyinde kısıtlayın. GitHub veya Google ile oturum açma ve paketlenmiş yığınların dışındaki bir Langfuse ya da OpenTelemetry uç noktasına yapılan çağrılar da bunu kullanmaz; Docker daemon ise görüntüleri kendi vekil sunucu ayarlarıyla çeker.

## [Güncelleme denetimi](https://pentagi.com/tr/docs/configuration/security/#update-check)

Sunucu, başlatıldıktan sonraki iki dakika içinde ve ardından her üç saatte bir `update.pentagi.com` adresine daha yeni bir yapının mevcut olup olmadığını sorar. İstek; kurulum kimliğini, ayarlanmışsa lisans anahtarını, sürümü ve platformu ile kurulumun bir özetini taşır: yapılandırılmış provider ve oturum açma türleri, birkaç özellik anahtarı, kullanıcı, flow, [task](https://pentagi.com/tr/docs/glossary/#task), kapsayıcı, prompt, API token ve [tool call](https://pentagi.com/tr/docs/glossary/#tool-call) sayıları ile provider türü başına token ve maliyet toplamları — isimler, adresler, prompt veya flow içeriği yer almaz. `UPDATE_CHECK_INTERVAL=0` bunu kapatır. Yükleyici her başladığında ve Apply Changes, Update, Start veya Stop gibi çalıştırdığı her eylemden sonra, yüklü imajları ve her yığının durumunu gönderir; PentAGI çalışırken aynı özeti de ekler. `UPDATE_CHECK_INTERVAL` bunu etkilemez.

> [!WARNING]
> `pentagi` konteyneri, Docker soketi aracılığıyla konteynerleri yönettiği için root olarak çalışır. Daha güçlü bir yalıtım için [tools](https://pentagi.com/tr/docs/glossary/#tool)'u ayrı bir [worker node'da](https://pentagi.com/tr/docs/deployment/worker-node/) çalıştırın.