# Proxus'u Docker ile kurun

> Merkez sunucuyu, veritabanlarını, mesaj sunucusunu ve yerleşik Edge Gateway'i Docker Compose ile tek makinede çalıştırın ve oturum açın.

Kaynak: https://proxus.io/tr/docs/get-started/install

Bu kılavuzu bitirdiğinizde Proxus, Docker Compose ile tek bir makinede çalışır durumda olur ve merkez sunucuda
oturum açmış olursunuz. Bu kurulum deneme, demo ya da küçük bir tesis için yeterlidir. Canlı kullanıma geçecekseniz
[Proxus'u Docker ile çalıştırın](https://proxus.io/tr/docs/operate/docker) sayfasını da okuyun.

## Başlamadan önce

Şunlar hazır olmalı:

- **Docker Engine** ve **Docker Compose** eklentisi (`docker compose` komutu) kurulu bir makine. Ayrıntılar için
  [sistem gereksinimleri](https://proxus.io/tr/docs/get-started/system-requirements) sayfasına bakın.
- Kurulum betiği için `proxus.io` adresine internet erişimi. Kurulumu Proxus teslimatıyla gelen bir compose
  dosyasından yapacaksanız o `docker-compose.yml` dosyası hazır olmalı.
- Docker Hub erişimi. Proxus imajları (`proxusplatform/proxus-ui` ve `proxusplatform/proxus-server`) ile
  veritabanı ve mesaj sunucusu imajları Docker Hub'da yayınlanır. İnternet erişimi olmayan bir ağda bunun yerine
  [İnternet erişimi olmadan kurulum](https://proxus.io/tr/docs/operate/offline-install) sayfasını izleyin.
- Makinede şu portların boş olması: `8080`, `8443`, `8083`, `1883`, `8883`, `4222`, `8222`, `7422`, `5442`, `8123`,
  `9000`, `9004` ve `9005`. Her portun ne için kullanıldığı [Ağ portları](https://proxus.io/tr/docs/reference/ports) sayfasında
  yazar.
- Proxus'tan ya da distribütörünüzden aldığınız lisans anahtarı. Anahtarınız yoksa kuruluma yine başlayabilirsiniz.
  Merkez sunucu ilk açılışta bir **Lisans kimliği** gösterir. Bu kimliği lisans için gönderin.

> **İpucu:**
Değerlendirme anahtarı isteyin ya da 30 dakikalık görüşmede Proxus'u kendi verinizle görün.

[30 günlük ücretsiz deneme anahtarı alın](/tr/try#licence) · [Demo talep edin](/tr/demo)

## Compose dosyası hangi servisleri başlatır

| Servis | Görevi |
| --- | --- |
| `proxus-ui` | **Merkez sunucu**. `8443` (HTTPS) ve `8080` (HTTP) portlarında web arayüzünü sunar ve merkez sunucu servislerini çalıştırır. Kullanıcılar, cihazlar ve ayarlar burada yönetilir. |
| `proxus-server` | Merkez sunucunun yanında çalışan **SYSTEM** Edge Gateway'i. Merkez sunucunun bulunduğu ağdaki cihazları okur. Yerleşik MQTT sunucusu `1883` portunu, TLS üzerinden de `8883` portunu dinler. |
| `hub-server` | Merkez sunucu ile Edge Gateway'ler arasında veriyi ve yapılandırmayı taşıyan NATS mesaj sunucusu. Bütün bağlantıları TLS ile şifrelenir. Uzak Edge Gateway'ler bu sunucuya `7422` portundan bağlanır. |
| `postgresql` | Cihazlar, profiller, alarm kuralları ve kullanıcılar gibi yapılandırma bilgilerini tutan PostgreSQL veritabanı. `5442` portunu dinler. |
| `clickhouse` | Proxus'un geçmiş veri deposu olan ClickHouse veritabanı. Bütün değerleri ve sistem günlüklerini saklar. |

Her servis, verisini adı belli bir Docker biriminde tutar (`proxus-db-volume`, `clickhouse_data`, `nats`,
`config`, `proxus_modules`). Bu sayede veri, yeniden başlatmada ya da imaj güncellemesinde kaybolmaz.

## Kurulum betiğiyle kurun

En hızlı yol kurulum betiğidir. Betik, Docker ve Docker Compose'un hazır olduğunu kontrol eder, sayı ve tarih
biçimini ve saat dilimini sorar, yeni bir `proxus-platform` klasörüne `docker-compose.yml` dosyasını yazar ve
onay verirseniz servisleri başlatır.

1. Makinede bir terminal açın ve işletim sistemine uygun komutu çalıştırın:

         ```bash
   curl -fsSL https://proxus.io/install.sh | bash
   ```
         ```powershell
   irm https://proxus.io/install.ps1 | iex
   ```
      
   Docker kurulumunuz gerektiriyorsa komutu Linux'ta `sudo` ile çalıştırın, Windows'ta ise PowerShell'i yönetici
   olarak açın.
2. Betiğin sorularını cevaplayın:
   - **Culture**, sayıların ve tarihlerin nasıl gösterileceğini belirler; örneğin `tr-TR` ya da `en-US`. Betik,
     makinenin kendi ayarını önerir.
   - **Timezone**, konteynerlerdeki ve günlük dosyalarındaki saati belirler; örneğin `Europe/Istanbul`.

   Betik ardından bulduğu makine adresini gösterir ("Address edge gateways use"). Merkez sunucu, Edge Gateway
   kurarken bu adresi önerir. Ayrıntılar için
   [Merkez sunucunun adresini sabit tutun](#merkez-sunucunun-adresini-sabit-tutun) bölümüne bakın.
   - **Start the platform now?** sorusuna `Y` derseniz imajlar indirilir ve servisler hemen başlar. İlk indirme
     yaklaşık 2 ile 3 GB'tır. `n` derseniz servisleri daha sonra `proxus-platform` klasöründe
     `docker compose up -d` komutuyla başlatırsınız.
3. Bütün servislerin çalıştığını ve sağlıklı olduğunu kontrol edin:

   ```bash
   cd proxus-platform
   docker compose ps
   ```

   İlk açılışta sağlık kontrollerinin yeşile dönmesi bir iki dakika sürebilir.

`proxus-platform` klasöründe önceden bir `docker-compose.yml` varsa betik, yenisini yazmadan önce eskisinin bir
kopyasını saklar. Docker kurulu değilse, Docker servisi çalışmıyorsa ya da Docker Compose v2 yoksa betik açık bir
mesajla durur ve hiçbir dosya yazmaz.

Ardından [İlk kez oturum açın](#ilk-kez-oturum-açın) bölümüyle devam edin.

## Compose dosyasından kurun

Proxus teslimatınızla hazır bir compose dosyası geldiyse ya da makine `proxus.io` adresine erişemiyorsa bu yolu
kullanın. Makine Docker Hub'a da erişemiyorsa imajları önce
[İnternet erişimi olmadan kurulum](https://proxus.io/tr/docs/operate/offline-install) sayfasındaki gibi yükleyin.

1. Proxus için bir klasör oluşturun (örneğin `/opt/proxus`) ve `docker-compose.yml` dosyasını bu klasöre kopyalayın.
2. Saat dilimini ayarlayın. Compose dosyasındaki `x-dotnet-env` bloğu, merkez sunucu ve Edge Gateway için `TZ`
   değerini belirler. Bu değeri tesisin bulunduğu saat dilimine göre değiştirin. Örnek:

      ```yaml
   x-dotnet-env: &dotnet-env
     TZ: Europe/Paris
   ```
   
   Merkez sunucu ve Edge Gateway, günlük dosyalarına zamanı bu saat dilimine göre yazar.
3. Klasörün içindeyken servisleri başlatın:

   ```bash
   docker compose up -d
   ```

   Docker ilk çalıştırmada imajları indirir, ardından beş servisi başlatır.
4. Bütün servislerin çalışmasını ve durumlarının `healthy` olmasını bekleyin:

   ```bash
   docker compose ps
   ```

   Merkez sunucu ilk açılışta veritabanı tablolarını, mesaj sunucusunun güvenlik ayarlarını ve platformun
   sertifika otoritesini (**Proxus Platform CA**) oluşturur. Bu nedenle ilk açılış sonrakilerden uzun sürer. Bu
   işlem bitene kadar `hub-server` günlüğünde `Waiting for Proxus UI to create the NATS trust` satırı
   tekrar tekrar görünür. Bu normaldir.
5. Merkez sunucunun yanıt verip vermediğini kontrol edin. Sunucu hazır olduğunda komut `Healthy` yazar:

   ```bash
   curl http://localhost:8080/healthz
   ```

> **Uyarı:**
Compose dosyası, veritabanı ve mesaj sunucusu portlarını ana makinede dışarıya açar ve varsayılan veritabanı
parolalarını kullanır. Test makinesinde bu bir sorun oluşturmaz. Sistemi tesis ağına bağlamadan önce
[Güvenlik sıkılaştırması](https://proxus.io/tr/docs/operate/security) sayfasındaki adımları uygulayın.

## İlk kez oturum açın

*Ekran görüntüsü: Kullanıcı adı ve parola alanlarını ve dil listesini gösteren Proxus oturum açma formu*

1. Tarayıcıda `https://<host>:8443` adresini açın. `<host>` yerine makinenin adını ya da IP adresini yazın
   (makinenin kendisinde `https://localhost:8443`). Merkez sunucunun sertifikası Proxus Platform CA tarafından
   imzalanmıştır. Tarayıcınız bu CA'yı henüz tanımadığı için ilk açılışta uyarı gösterir. Uyarıyı geçip sayfaya
   devam edebilir ya da `http://<host>:8080` adresini kullanabilirsiniz. Uyarının bir daha çıkmaması için platform
   CA'sını bilgisayarınıza yükleyin ([Sertifikalar](https://proxus.io/tr/docs/administer/certificates) sayfasına bakın).
2. Form kendi dilinizde değilse sağ üstteki listeden dilinizi seçin.
3. Kullanıcı adına `Admin` yazın, **Parola** alanını boş bırakın. **Oturum aç** düğmesini seçin.
4. Yeni kurulan merkez sunucunun henüz lisansı olmadığı için **Lisans etkinleştirme** penceresi açılır. Size
   verilen anahtarı yapıştırın ve lisansı etkinleştirin. Anahtar yalnızca bu kurulumda çalışır. Lisans siparişinde
   iletmeniz gereken **Lisans kimliği** de bu pencerede yazar.

   Pencereyi lisansı etkinleştirmeden kapatırsanız oturumunuz kapanır. Lisanslarla ilgili ayrıntılar
   [Lisans](https://proxus.io/tr/docs/administer/license) sayfasındadır.
5. Ekranda **Anlık durum** sayfası açılır.

## İlk hesapları güvenceye alın

İlk açılışta parolası boş olan tek bir yönetici hesabı oluşturulur: `Admin`. Merkez sunucuya başkaları erişmeden
önce bu hesaba güçlü bir parola verin. Bunun için sağ üstteki kullanıcı menüsünü açın, önce **Bilgilerim**'i,
ardından **Parolamı değiştir**'i seçin. API erişimi için **Güvenlik > Kullanıcılar** ekranında ayrı bir
kullanıcı tanımlayın.

Ekip arkadaşlarınız için hesap açmayı [Kullanıcılar ve roller](https://proxus.io/tr/docs/administer/users-and-roles) sayfası anlatır.

## Merkez sunucunun adresini sabit tutun

Her Edge Gateway, kurulum sihirbazında seçtiğiniz merkez sunucu adresiyle kurulur ve yalnızca o adrese bağlanır. Merkez
sunucunun makinesi sonradan yeni bir IP adresi alırsa (örneğin DHCP'den) Edge Gateway'lerin bağlantısı kopar ve her
birinin yeniden kurulması gerekir.

- Üretimde merkez sunucuya sabit bir adres verin: DHCP rezervasyonu ya da sabit IP, daha iyisi
  `proxus.fabrika.local` gibi bir DNS adı. DNS adı kullanırsanız IP değişikliği hiçbir Edge Gateway'i etkilemez.
- Kurulum sihirbazı önce merkez sunucuyu açtığınız adresi, ardından betiğin bulduğu adresi önerir. Doğru adresin
  ilk sırada gelmesi için merkez sunucuyu Edge Gateway'lerin kullanacağı adresle açın.
- Merkez sunucunun önerdiği adresi değiştirmek için `proxus-platform/docker-compose.yml` dosyasında `proxus-ui`
  servisindeki `Service__PublicAddress` satırını düzenleyin (birden çok adres ya da DNS adını virgülle ayırın),
  ardından `docker compose up -d` komutunu çalıştırın. Betiği yeniden çalıştırmak da adresi yeniden bulur.

## Sertifika anahtarını kaybetmeyin

Merkez sunucu, sertifikalarının özel anahtarlarını şifreli olarak saklar. Bu şifrelemenin anahtarı `config`
birimindedir (`keys/STORE/certificate-store.key`). Her yedeğe `config` birimini de ekleyin. Bu anahtar olmadan
geri yüklemeden sonra sertifikalar okunamaz. Ayrıntılar için
[Yedekleme ve geri yükleme](https://proxus.io/tr/docs/operate/backup-and-restore) sayfasına bakın.

## Sonraki adımlar

- [İlk makinenizi bağlayın](https://proxus.io/tr/docs/get-started/first-machine): yerleşik simülatörle ilk cihazı ekleyin.
- [Merkez sunucuda kısa bir tur](https://proxus.io/tr/docs/get-started/tour): her ekranın ne işe yaradığını görün.
- [Proxus'u Docker ile çalıştırın](https://proxus.io/tr/docs/operate/docker): canlı kullanım ayarları, güncellemeler ve yedekleme.
- [Yapılandırma](https://proxus.io/tr/docs/administer/configuration): yapılandırma dosyasının ayarları. Docker kurulumunda bu dosya
  `config` birimindedir. Merkez sunucu dosyayı ilk açılışta varsayılan değerlerle buraya yazar.
