# Edge Gateway kurun

> Makinelerin yanındaki bir Linux bilgisayarda Edge Gateway çalıştırın. Merkez sunucu tek satırlık bir komut verir ve kurulumun her aşamasını canlı gösterir.

Kaynak: https://proxus.io/tr/docs/connect/edge-gateways/install-a-gateway

Bu kılavuzu tamamladığınızda tesisteki bir bilgisayarda yeni bir Edge Gateway çalışır. Edge Gateway merkez sunucuya
bağlanır ve cihazları okumaya hazır olur. Edge Gateway, makinelerin yakınında çalışan Proxus yazılımıdır. Makineleri
okur, merkez sunucuya ulaşılamadığında veriyi saklar ve bağlantı gelince iletir.

Merkez sunucunun **SYSTEM** adlı kendi Edge Gateway'i vardır. Ayrı bir Edge Gateway yalnızca iki durumda gerekir: merkez
sunucunun ulaşamadığı makineler varsa ya da merkez sunucuyla bağlantı kesildiğinde de okumanın sürmesi
isteniyorsa.

## Başlamadan önce

Şunlar gerekir:

- Makinelerle aynı ağda bir **Linux bilgisayar** (Ubuntu, Debian, Red Hat Enterprise Linux ya da bir endüstriyel
  PC). Windows henüz desteklenmiyor. Bu sayfada bu bilgisayara saha makinesi denir.
- Saha makinesinde **Compose** eklentisiyle birlikte **Docker** 20.10 veya üstü ve `sudo` çalıştırabilen bir
  kullanıcı.
- Saha makinesinden merkez sunucuya **7422 portu** ve merkez sunucunun HTTPS portu (varsayılan **8443**) üzerinden
  giden erişim. Bağlantıyı Edge Gateway başlatır. Tesis ağına dışarıdan gelen bir port açmanız gerekmez.
- Saha makinesinde **8083**, **1883** ve **8883** portlarının boş olması. Edge Gateway bu portları sırasıyla yerel web
  hizmeti, MQTT sunucusu ve TLS üzerinden MQTT sunucusu için kullanır.
- Edge Gateway imajının indirilebilmesi için saha makinesinden Docker Hub'a erişim. Erişim yoksa imajı önceden
  `docker load` ile saha makinesine yükleyin. Bkz.
  [İnternet erişimi olmadan kurulum](https://proxus.io/tr/docs/operate/offline-install#kapalı-ağa-edge-gateway-kurun).
- Edge Gateway oluşturma yetkisi olan bir kullanıcı rolü.

## Adım 1: Edge Gateway'i merkez sunucuda oluşturun

1. **Bağlantılar > Edge Gateway'ler** ekranını açın ve **Yeni** düğmesini seçin.
2. Bir **Ad** girin, örneğin `Rotterdam Edge 01`. İsterseniz bir **Konum** da girin, örneğin `Rotterdam, dolum
   salonu`. İki alan da **Yapılandırma** bölümündedir.
3. **Kaydet** düğmesini seçin.

İlk kayıttan sonra kurulum penceresi kendiliğinden açılır. Pencereyi daha sonra açmak için Edge Gateway'in sayfasında
**Kur** düğmesini seçin.

## Adım 2: Ortamı seçin

*Ekran görüntüsü: Kurulumun ilk adımı: Linux ve Docker seçili, merkez sunucu adresi belirlenmiş*

1. **Linux ve Docker** seçili gelir. Makinenin işlemci türü kurulum sırasında algılanır.
2. **Merkez sunucu adresi**: saha makinesinin merkez sunucuya ulaşmak için kullanacağı adres. Liste sırasıyla
   şunları önerir: merkez sunucuyu açtığınız adres (`localhost` değilse), kurulum betiğinin bulduğu makine adresi
   ve merkez sunucunun internetteki genel adresi. Edge Gateway başka bir sahadaysa genel adresi seçip 7422 ve 8443
   portlarını merkez sunucuya yönlendirin ya da **Başka bir adres** seçeneğiyle bir DNS adı girin. Komut
   oluşturulurken merkez sunucu bu adresi mesaj sunucusunun sertifikasına ekler. Böylece Edge Gateway'in TLS denetimi
   başarılı olur.

   Liste boşsa merkez sunucu, diğer makinelerin kendisine hangi adresle ulaştığını bulamamıştır. Makinenin IP
   adresini ya da ağdaki adını **Başka bir adres** alanına girin.

**Gelişmiş** bölümünde saha makinesinde kullanılacak portlar, merkez sunucuya giden bağlantı ve Edge Gateway'in
kurulacağı klasör (`/opt/proxus/proxus-edge-<id>`) görünür.

**Devam** düğmesini seçin.

## Adım 3: Komutu saha makinesinde çalıştırın

*Ekran görüntüsü: Komut adımı: saha makinesinde çalıştırılacak curl komutu, Kopyala düğmesi ve gereksinim listesi*

1. Kurulum komutu. Merkez sunucudan bir kurulum betiği indirir ve çalıştırır.
2. **Kopyala**, komutu panoya kopyalar.
3. **Çalıştırmadan önce**: seçtiğiniz merkez sunucu adresiyle birlikte gereksinimler.

Saha makinesinde bir terminal açın, komutu yapıştırın ve çalıştırın. Komut şuna benzer:

```bash
curl -fsSL -k --pinnedpubkey sha256//<pin> https://hub.example.com:8443/edge/<one-time-link> | sudo sh
```

Komut, kurulum betiğini HTTPS üzerinden indirir. Komut, merkez sunucunun HTTPS anahtarına sabitlenmiştir
(`--pinnedpubkey`). Merkez sunucunun sertifikası ne olursa olsun `curl` yalnızca bu anahtara sahip sunucuyu kabul
eder. Bu sayede araya giren biri kurulum betiğini ya da Edge Gateway'in kimliğini değiştiremez. Kurulum betiğinin merkez
sunucuya yaptığı her çağrıda da aynı sabitleme kullanılır. Merkez sunucuda HTTPS kapalıysa komut, önceki
sürümlerde olduğu gibi merkez sunucunun web portunda düz `http://` kullanır.

Bağlantı tek kullanımlıktır ve yalnızca bir saat geçerlidir. Komutta hiçbir gizli bilgi bulunmaz. Edge Gateway kendi
anahtarını saha makinesinde üretir ve merkez sunucuya yalnızca açık anahtarı gönderir.

**Komutu çalıştırdım** düğmesini seçin ya da bekleyin. Saha makinesi kurulum betiğini indirdiğinde pencere
kendiliğinden sonraki adıma geçer.

## Adım 4: Bağlantıyı izleyin

Son adımda kurulum canlı izlenir. Satırlar sırayla yeşile döner:

1. **Kurulum betiği makineye indirildi**
2. **Edge Gateway imajı indirildi**
3. **Edge Gateway'in anahtarı merkez sunucuya kaydedildi**
4. **Edge Gateway başlatıldı**
5. **Bu merkez sunucuya bağlandı**

**Edge Gateway bağlandı** yazısı göründüğünde, bu Edge Gateway'e ilk cihazı eklemek için **Cihaz ekle** düğmesini seçin.
İsterseniz **Kapat** ile pencereyi kapatın. Edge Gateway artık **Bağlantılar > Edge Gateway'ler** ekranında **Çevrim içi**
görünür.

Pencereyi istediğiniz an kapatabilirsiniz. Kurulum saha makinesinde sürer. Edge Gateway'in bağlandığını kendi
sayfasında görebilirsiniz.

## Kurulum betiği neler yapar

Kurulum betiği saha makinesinde şunları yapar:

- Docker'ı, Compose'u ve gereken portların (hizmet portu, `1883` ve `8883`) boş olup olmadığını denetler;
- Edge Gateway'in ayarlarını içeren `/opt/proxus/proxus-edge-<id>` klasörünü oluşturur;
- imajları indirir ve Edge Gateway'in anahtarını üretir;
- açık anahtarı merkez sunucuya kaydeder, makinenin adlarını ve adreslerini merkez sunucuya bildirir;
- Edge Gateway'in merkez sunucuyla bağlantısını TLS olarak kurar. Bu bağlantı, kurulum betiğinin yanında getirdiği
  platform CA'sına göre doğrulanır (yalnızca açık sertifikalar taşınır);
- iki konteyner başlatır: Edge Gateway ve onun yerel mesaj sunucusu. Makine yeniden başladığında ikisi de kendiliğinden
  yeniden başlar.

Kurulum betiği makinedeki başka hiçbir şeye dokunmaz.

## Edge Gateway'in sertifikası

Her Edge Gateway, merkez sunucunun [Sertifika deposu](https://proxus.io/tr/docs/administer/certificates) üzerinden kendi sertifikasını
alır. Sertifikanın adı "*Edge Gateway adı* (gateway *N*)" biçimindedir. Sertifika, kurulum betiğinin bildirdiği adları
ve adresleri kapsar. Edge Gateway bu sertifikayı TLS üzerinden çalışan MQTT sunucusu (port `8883`) ve isteğe bağlı
HTTPS portu için kullanır.

- Edge Gateway sertifikayı açılışta ve günde iki kez ister. Merkez sunucu, süresi dolmadan sertifikayı depoda yeniler.
- Edge Gateway aldığı son sertifikayı saklar. Merkez sunucuya ulaşılamadığı bir anda yeniden başlasa da elinde bir
  sertifika olur.
- Bir Edge Gateway yalnızca kendi sertifikasını alabilir.
- Sertifika yenilendiğinde MQTT sunucusu birkaç saniyeliğine yeniden başlar ve cihazlar yeniden bağlanır.

MQTT cihazları, MQTT sunucusunu platform CA'sına göre doğrular. CA'yı **Güvenlik > Sertifika deposu** ekranında
**CA'yı indir** ile indirip cihazlara yükleyin. Cihazları, sertifikanın kapsadığı bir ada ya da adrese bağlayın.

## Sorun giderme

Bir aşama başarısız olursa pencerede hangi aşamanın başarısız olduğu yazar. Ayrıntılar saha makinesindeki
terminalde görünür. Sorunu giderin, **Yeni komut oluştur** düğmesini seçin ve yeni komutu çalıştırın.

| Mesaj | Yapılacak işlem |
| --- | --- |
| Docker yüklü değil, çalışmıyor ya da bu kullanıcı kullanamıyor. | Docker'ı kurun ya da başlatın, ardından yeni bir komut çalıştırın. |
| Edge Gateway'in ihtiyaç duyduğu bir port (8083, 1883 ya da 8883) makinede kullanımda. | Portu kullanan programı durdurun. Programın adı terminalde yazar. |
| Edge Gateway imajı indirilemedi. | Saha makinesinin Docker Hub'a ulaşabildiğini kontrol edin ya da imajı önceden yükleyin. |
| Edge Gateway anahtarını merkez sunucuya kaydedemedi. | Komut daha önce kullanılmış ya da süresi dolmuş. Yeni bir komut oluşturun. |
| Konteynerler başlatılamadı. | Nedeni saha makinesindeki terminalde yazar. Sorunu giderip yeni bir komut oluşturun. |

`curl` açık anahtarla ilgili bir hata verip durursa, komut oluşturulduktan sonra merkez sunucunun HTTPS
sertifikası değişmiştir. Yeni bir komut oluşturun.

Edge Gateway başladığı hâlde bağlanmıyorsa saha makinesinin merkez sunucuya 7422 portundan ulaşabildiğini kontrol
edin. Daha fazla bilgi için [Edge Gateway sorunlarını giderme](https://proxus.io/tr/docs/troubleshoot/gateways) sayfasına bakın.

## Sonraki adımlar

- [Cihaz ekleyin](https://proxus.io/tr/docs/connect/devices/add-a-device): sihirbazın ilk adımında bu Edge Gateway'i seçin.
- [Edge Gateway'leri yönetin](https://proxus.io/tr/docs/connect/edge-gateways/manage-gateways): durum, günlükler, ara bellek, güncelleme ve
  kaldırma.
