Debian paketi ile Liman üzerinde çalışacak envanter sunucusu kurulumu
Published: 2024-03-18 06:13:59

İlk olarak [Inventory Server Releases](https://github.com/limanmys/inventory-server/releases/) adresinden envanter sunucumuzun, [Report Engine Releases](https://github.com/limanmys/fastapi-report-engine/releases) adresinden report engine'in son versiyonunu indiriyoruz. Yazım itibari ile en son sürüm envanter-29 ve report-engine-54 olduğundan bu dokümanda bu 2 paket kullanılacaktır.

```bash
wget https://github.com/limanmys/inventory-server/releases/download/release.29/inventory-server-29-x64.deb 
wget https://github.com/limanmys/fastapi-report-engine/releases/download/release.54/report-engine-54-x64.deb
```


Paketlerimizi indirdikten sonra ilk olarak postgres veritabanı sistemimizde bir kullanıcı ve veritabanı oluşturmamız gerekli. Kullanıcı oluşturmak ile başlayalım. 

`sudo -u postgres createuser adinventory -P`

komutu girildiğinde oluşturulacak kullanıcı için bir şifre istenecek. Güvenli ve kaybetmeyeceğimiz bir şifre oluşturup girelim. Bu dokümanda örnek olarak "limanenvanter" şifresi kullanılacak.

```
Enter password for new role: limanenvanter
Enter it again: limanenvanter
```
Kullanıcımızı oluşturduktan sonra bu kullanıcın üzerine bir de veritabanı oluşturalım.

`sudo -u postgres createdb dbinventory -O adinventory`

Daha sonra indirdiğimiz report engine ve envanter sunucusu paketlerini kuralım.

```
sudo apt update
sudo apt install ./report-engine-54-x64.deb ./inventory-server-29-x64.deb
```
Envanter sunucumuz kurulduğunda "/opt/inventory-server/" dizinine bir .env dosyası oluşturacak. Bu .env dosyasısının ilk satırında da bir APP_KEY değişkeni olacak. Bu değişkene dokunmadan daha önce girdiğimiz kullanıcı bilgileri ile aşağıdaki komudu girip şekildeki gibi doldurabiliriz:

`sudo nano /opt/inventory-server/.env`

```yaml
APP_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
DB_DRIVER=postgres
DB_HOST=127.0.0.1 
DB_PORT=5432
DB_USER=adinventory
DB_PASS=limanenvanter
DB_NAME=dbinventory
REPORT_ENGINE_URL=localhost:8001
```

Envanter sunucumuzu artık çalıştırabiliriz.

`sudo systemctl restart inventory-server@admin`

Sunucunun çalışıp çalışmadığını aşağıdaki komut ile görebiliriz:

`journalctl -u inventory-server@admin`

Eğer sunucu doğru bir biçimde çalışıyorsa çıktı aşağıdakine benzer olacaktır:


![jctl](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/485jsx5y4bal2ifu0f2q.png)

Şimdi envanter eklentimizin limana kurulumu kısmına geçelim.

Öncelikle envanter eklentisinin son sürümünü https://github.com/limanmys/liman-inventory/releases adresinden indiriyoruz. Ayarlar -> Eklentiler -> Yükle aracılığı ile eklentimizi Limana ekliyoruz. Ardından sunucumuzu Limana ekleyerek devam ediyoruz.

![eklenti1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vy5vmhh0si2gd0aikgja.png)

Şekilde 1 ile gösterilen boşluğa envanterin kurulu olduğu sunucunun IP adresini giriyoruz (Eğer envanter, Liman ile aynı sunucuya kurulu ise localhost olan 127.0.0.1 adresi girilmelidir). Sunucu bağlantımız olarak ssh ve ssh'ın varsayılan 22 portunu seçip ilerliyoruz.

![eklenti2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6as5fqxtkkhjciuytjvq.png)

1 ile gösterilen yerde Sunucuya uygun bir ad veriyoruz ve 2'de GNU Linux seçerek devam ediyoruz.

![Eklenti3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qzaloem7loqz3o97dkt.png)

Bu aşamada sunucumuza ssh ile bağlanmak için gerekli kullanıcı adı ve şifreyi giriyoruz. İlerleyerek sunucumuzu limana eklemiş oluyoruz.


![Eklenti4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s0d4p86mry4x97eg3dyn.png)

Daha sonra 1 ile işaretlenmiş yerden sunucunun eklentileri kısmına gelip 2 ile işaretlenmiş yere basıyoruz.


![Eklenti5](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bxxbwp89fik929tix2j9.png)

Açılan pencereden "Envanter Keşif" eklentisini seçip ekliyoruz. Eğer eklenti başarılı bir şekilde eklendiyse aşağıdaki gibi bir menü, sunucu sayfasında görülecektir.


![Eklenti7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ab4lv6dfywxn95ev8jvq.png)