# Yapılandırma

> Merkez sunucunun yapılandırma dosyasının yeri, Yapılandırma düzenleyici ile değiştirilmesi ve ortam değişkenlerinin dosyayı geçersiz kılması.

Kaynak: https://proxus.io/tr/docs/administer/configuration

Bu kılavuzda merkez sunucunun bir ayarını değiştirecek ve merkez sunucuyu bu ayarla çalıştıracaksınız. Proxus'ta
tanımladığınız şeylerin çoğu (cihazlar, alarm kuralları, kullanıcılar) veritabanında saklanır ve değişiklikler
hemen geçerli olur. Merkez sunucunun ve Edge Gateway'in başlarken ihtiyaç duyduğu, sayıca daha az olan ayarlar ise tek bir
dosyada tutulur: `Proxus-config.toml`. Bağlantı noktaları, veritabanı bağlantıları, günlük düzeyleri ve parola
kuralları bu ayarlara örnektir.

## Başlamadan önce

- **Administrators** rolündeki bir kullanıcıyla oturum açın.
- Kısa bir kesinti planlayın. Değiştirilen ayar ancak yeniden başlatmadan sonra geçerli olur.
- Değiştireceğiniz anahtarı belirleyin. Tüm anahtarlar [Yapılandırma anahtarları](https://proxus.io/tr/docs/reference/configuration)
  sayfasında listelenir.

## Dosyanın yeri

| Kurulum | Konum |
| --- | --- |
| Docker (ürünle gelen `docker-compose.yml`) | `proxus-ui` ve `proxus-server` konteynerlerinde `/app/config/Proxus-config.toml`. İki konteyner de aynı `config` birimini kullandığı için aynı dosyayı okur. |
| Kubernetes | Her pod'un yapılandırma biriminde `/app/config/Proxus-config.toml`. Merkez sunucunun ve her Edge Gateway'in ayrı birimi vardır. |
| Konteynersiz kurulum | Merkez sunucunun ya da Edge Gateway'in program dosyalarıyla aynı klasörde. |

Proxus başlarken dosyayı bulamazsa varsayılan değerlerle yeni bir dosya oluşturur. Sürüm yükseltmesi mevcut dosyanın
üzerine yazmaz.

Merkez sunucunun kendisi için oluşturduğu anahtarlar da aynı klasördedir. Bunlardan biri
`keys/STORE/certificate-store.key` dosyasıdır. [Sertifika deposundaki](https://proxus.io/tr/docs/administer/certificates) özel
anahtarlar bu anahtarla şifrelenir ve çözülür. Bu yüzden yalnızca yapılandırma dosyasını değil, klasörün tamamını yedekleyin.
Bkz. [Yedekleme ve geri yükleme](https://proxus.io/tr/docs/operate/backup-and-restore).

## Dosyanın yapısı

Dosya TOML biçimindedir. Bölüm adları köşeli parantez içinde yazılır, her bölümün altında `Key = value` satırları bulunur.
`#` işareti yorum başlatır.

```toml
[Logging]
Loglevel = 3        # 0 Trace, 1 Debug, 2 Information, 3 Warning, 4 Error, 5 Critical
LogToFile = true

[Security]
Lockout.MaxFailedAccessAttempts = 3
```

Başlıca bölümler:

| Bölüm | Belirlediği ayarlar |
| --- | --- |
| `[Service]` | Merkez sunucunun ve Edge Gateway'in bağlantı noktaları ve adresleri, HTTPS bağlantı noktaları ve merkez sunucu sertifikalarının kapsadığı adlar. |
| `[NATS]` | Merkez sunucunun ve Edge Gateway'in mesajlaşma sistemine nasıl bağlandığı ve TLS sertifikasının ek adları. |
| `[Database]`, `[ClickHouse]` | Yapılandırma veritabanının ve telemetri veritabanının bağlantı ve saklama süresi ayarları. |
| `[Security]`, `[Security.Password]` | Hatalı parola denemelerinden sonra hesap kilitleme ve parola kuralları. |
| `[Rules.DeviceNaming]` | Cihaz adları için isteğe bağlı adlandırma kuralı. |
| `[Data]` | Ekrandaki listeler ve günlükler için zaman aralıkları ve sınırlar. |
| `[EdgeGateway]` | Edge Gateway'in ID'si, adı ve çalışma modu. |
| `[Fieldbus]`, `[Browse]` | Cihazların nasıl okunacağı ve keşfedileceği. |
| `[MQTTBroker]`, `[UNS]` | Yerleşik MQTT sunucusu (TLS bağlantı noktası dahil) ve ortak veri modeli (UNS) konuları. |
| `[ScheduledDelivery]` | Raporların e-postayla gönderilmesi. |
| `[Logging]`, `[Metrics]`, `[Tracing]`, `[Otlp]` | Günlükler, metrikler ve bunların dışa aktarılması. Bkz. [İzleme](https://proxus.io/tr/docs/operate/monitoring). |
| `[MCP]` | Yapay zekâ ajanlarının erişimi. Bkz. [MCP](https://proxus.io/tr/docs/develop/mcp). |

### HTTPS ve sertifika ayarları

Bu anahtarlar, merkez sunucuya TLS üzerinden nasıl erişileceğini belirler. Anahtarların açıklamaları
[Yapılandırma anahtarları](https://proxus.io/tr/docs/reference/configuration#service) sayfasındadır.

```toml
[Service]
UI-HTTPS-Port = "8443"               # empty turns HTTPS off
# RedirectHttpToHttps = "false"      # "true" sends HTTP to HTTPS and turns on HSTS
# PublicHttpsPort = "8443"           # the port others reach HTTPS on, if published differently
# PublicHostNames = "proxus.plant.example, 203.0.113.10"

[NATS]
# TlsHostNames = "nats.plant.example"

[MQTTBroker]
TlsPort = 8883                       # 0 turns MQTT over TLS off
PlainEnabled = true                  # false accepts TLS only
```

Kullanıcıların ya da Edge Gateway'lerin merkez sunucuya erişirken kullandığı tüm adları ve adresleri `PublicHostNames`
anahtarına ekleyin. Böylece merkez sunucunun HTTPS ve NATS sertifikaları bu adları da kapsar. Edge Gateway kurulum
komutu oluştururken seçtiğiniz adresler NATS sertifikasına otomatik olarak eklenir.

## Ayarı Yapılandırma düzenleyici ile değiştirin

1. **Yönetim > Yapılandırma düzenleyici** ekranını açın. Dosyanın tamamı metin olarak açılır.
2. Anahtarı bulun ve değerini değiştirin.
3. **Kaydet** düğmesine tıklayın.
4. **Yapılandırma değişikliklerini onayla** uyarısını onaylayın. Dosya kaydedilir.
5. Proxus, **Platformu yeniden başlatmayı onayla** penceresini açar. Hemen yeniden başlatmak için **Yeniden başlat**
   düğmesine tıklayın. İsterseniz daha sonra kendiniz yeniden başlatabilirsiniz.

*Ekran görüntüsü: Proxus-config.toml dosyasının üst kısmı, Kaydet ve Kaydet ve kapat düğmeleri işaretli Yapılandırma düzenleyici*

1. **Kaydet**, dosyayı kaydeder ve düzenleyiciyi açık bırakır.
2. **Kaydet ve kapat**, dosyayı kaydeder ve düzenleyiciyi kapatır.

> **Uyarı:**
Düzenleyici dosyanın sözdizimini denetlemez. Eksik bir tırnak işareti gibi küçük bir yazım hatası, yeniden başlatmadan sonra merkez sunucunun açılmasını engelleyebilir. Büyük bir değişiklikten önce dosyanın kopyasını alın (düzenleyicinin sağ üst köşesindeki kopyalama düğmesi metnin tamamını kopyalar) ve her seferinde tek bir değişiklik yapın. Merkez sunucu açılmıyorsa dosyayı birim üzerinde düzeltin ve sunucuyu yeniden başlatın.

**Yeniden başlat**, `proxus` adlı Docker Compose projesinin konteynerlerini yeniden başlatır. Merkez sunucu en son
başlatılır. Bu komut yalnızca Docker kurulumlarında ve yığın bu proje adıyla başlatıldıysa çalışır (bkz.
[Docker](https://proxus.io/tr/docs/operate/docker)). Diğer durumlarda yığını kendiniz yeniden başlatın:

```bash
docker compose -p proxus restart
```

Her kayıt işleminde [sistem günlüklerine](https://proxus.io/tr/docs/administer/system-logs), kullanıcı adınızı içeren bir uyarı
yazılır.

## Anahtarı varsayılan değerine döndürün

Varsayılan değerler dosyada yorum satırı olarak yer alır. Bir değeri silmek ya da yeniden yorum satırına çevirmek
varsayılan değeri geri getirmez. Varsayılan değeri açıkça yazın, kaydedin ve yeniden başlatın.

## Ortam değişkenleri dosyadaki değerleri geçersiz kılar

Her anahtar ortam değişkeni olarak da tanımlanabilir. Değişken adı, bölüm adıyla anahtar adı iki alt çizgiyle
birleştirilerek oluşturulur. Örnekler:

| Dosyada | Ortam değişkeni olarak |
| --- | --- |
| `[Logging]` `Loglevel` | `Logging__Loglevel` |
| `[NATS]` `BrokerUrl` | `NATS__BrokerUrl` |
| `[Service]` `UI-HTTPS-Port` | `Service__UI-HTTPS-Port` |
| `[Service]` `PublicHostNames` | `Service__PublicHostNames` |

Ortam değişkeni, dosyadaki değeri geçersiz kılar. Ürünle gelen `docker-compose.yml` dosyası bazı değişkenleri
zaten tanımlar. Örneğin merkez sunucuda `Logging__Loglevel: "3"` ve iki konteynerde de `NATS__BrokerUrl`. Bu
anahtarları Yapılandırma düzenleyicide değiştirmek tek başına yetmez. Compose dosyasındaki değişkeni de değiştirin
ya da kaldırın.

`PROXUS_CERTIFICATE_STORE_KEY` ortam değişkeninin dosyada karşılığı yoktur. Sertifika deposunun anahtarını
`keys/STORE/certificate-store.key` dosyası yerine dışarıdan, örneğin bir Kubernetes Secret'tan vermek için bu
değişkeni kullanın (32 baytlık base64 değer). Değeri güvenli bir yerde saklayın. Bu anahtar olmadan saklanan
sertifikalar okunamaz.

> **İpucu:**
Parolalar ve bağlantı noktaları gibi kuruluma özel değerleri compose dosyasında ya da Kubernetes Secret'larında tutun, yapılandırma dosyasını varsayılan hâliyle bırakın. Böylece sürüm yükseltmeleri ayarlarınızı hiç etkilemez.

## Sonraki adımlar

- [Tüm yapılandırma anahtarları](https://proxus.io/tr/docs/reference/configuration): her anahtarın varsayılan değerine ve anlamına bakın.
- [Kurulumu güvenli hâle getirin](https://proxus.io/tr/docs/operate/security): HTTPS ve parola ayarlarını kurulumunuza göre sıkılaştırın.
