DEV Community

AtillaAk
AtillaAk

Posted on

Docker Imajı ile Liman üzerine Envanter Sunucusu kurma

Kurulumu yapmamız için sistemde dockerın kurulu olması gerekiyor.

Dockerı indirmek için bu linke tıklayabilirsiniz

Dockerı yükledikten sonra dockerhub'da hazır halde bulunan liman, envanter gibi imajları çekip kurulumumuzu yapacağız.

Kullanacağımız docker compose dosyası şu şekilde:

docker-compose.yaml:

version: '3.8'
services:
  limancore:
    image: aciklab/liman:latest
    depends_on:
      db:
        condition: service_healthy
    restart: always
    environment:
      # Redis settings
      - REDIS_HOST=liman-redis
      - REDIS_PASS=${DB_PASS}
      - REDIS_PORT=6379
      # DB settings
      # For using Patroni or another Postgresql Cluster
      - DB_HOST=liman-db
      - DB_DATABASE=liman
      - DB_USERNAME=liman
      - DB_PORT=5432
      - DB_PASS=${DB_PASS}
      # Nginx settings
      - NGINX_PORT=443
    container_name: liman-core
    tty: true
    ports:
      - '443:443'
      - '3000:3000'
    volumes: 
      - core:/liman
      - certs:/usr/local/share/ca-certificates
    networks:
      - liman-net
      - internal-net
    dns:
      - 127.0.0.1
      - ${DNS}
      # Add active directory DNS(s) for using Domain extension and LDAP on Liman
  db:
    image: postgres:15
    container_name: liman-db
    restart: always
    environment:
      - POSTGRES_USER=liman
      - POSTGRES_PASSWORD=${DB_PASS}
      - POSTGRES_DB=liman
    volumes: 
      - db:/var/lib/postgresql/data
    healthcheck :
      test: [ "CMD", "pg_isready", "-q", "-d", "liman", "-U", "liman" ]
      interval : 5s
      timeout : 5s
      retries : 5
    networks:
      - liman-net
  redis:
    image: redis
    container_name: liman-redis
    environment:
      - REDIS_PASSWORD=${DB_PASS}
      - REDIS_DISABLE_COMMANDS=CONFIG
    command: > 
      --requirepass ${DB_PASS} --protected-mode yes
    networks:
      - liman-net
  webssh:
    image: limanmys/webssh:latest
    restart: always
    container_name: liman-webssh
    networks:
      - liman-net
  inventory_server:
    image: aciklab/inventory-server:latest
    depends_on:
      inventory_db:
        condition: service_healthy
    restart: always
    env_file:
      - .env
    environment:
      # DB settings
      # For using Patroni or another Postgresql Cluster
      - DB_HOST=inventory-db
      - DB_NAME=inventory
      - DB_USERNAME=inventory
      - DB_PORT=5432
      - DB_PASS=${DB_PASS}
      - DB_DRIVER=postgres
      - REPORT_ENGINE_URL=http://report-engine:8001
    container_name: inventory-server
    tty: true
    volumes: 
      - core:/liman
      - certs:/usr/local/share/ca-certificates
    networks:
      - internal-net
      - liman-net
    dns:
      - 127.0.0.1
      - ${DNS}
      # Add active directory DNS(s) for using Domain extension and LDAP on Liman
  report_engine: 
    image: aciklab/report-engine:latest
    restart: always
    container_name: report-engine
    tty: true
    networks:
      - internal-net
      - liman-net
  inventory_db:
    image: postgres:15
    container_name: inventory-db
    restart: always
    environment:
      - POSTGRES_USER=inventory
      - POSTGRES_PASSWORD=${DB_PASS}
      - POSTGRES_DB=inventory
    volumes: 
      - inventory_db:/var/lib/postgresql/data
    healthcheck :
      test: [ "CMD", "pg_isready", "-q", "-d", "inventory", "-U", "inventory" ]
      interval : 5s
      timeout : 5s
      retries : 5
    networks:
      - liman-net
volumes:
  # Persistent Postgresql Database
  db:
    driver: local
  inventory_db: 
    driver: local
  # Persist Core Files
  core:
    driver: local
  # Persist Linux System Certificates
  certs:
    driver: local
networks:
  internal-net:
    name: internal-net
    driver: overlay
    internal: true
    attachable: true
  liman-net:
    name: liman-net
    driver: bridge
Enter fullscreen mode Exit fullscreen mode

docker compose dosyamızın yanında bir de aynı dizinde ortam değişkenlerinin tutulacağı .env dosyası gerekiyor. Örnek bir .env dosyası aşağıda verilmiştir.

.env:

APP_KEY="93610254060735082929523103547063"
DB_DRIVER="postgres"
DB_HOST="inventory-db"
DB_PORT="5432"
DB_USER="inventory"
DB_PASS="ChangeMe"
DB_NAME="inventory"
DNS=""
REPORT_ENGINE_URL="http://report-engine:8001"
Enter fullscreen mode Exit fullscreen mode

Buraya kadarki kısımları düzgün yaptıysak sistemi ayağa kaldırabiliriz. Dosyaların bulunduğu dizinden:

docker compose up -d

komutunu kullanıyoruz. İmajların dockerhubdan çekilmesi ve sistemin ilk kurulumu biraz zaman alacaktır. Bütün containerlar ayağa kalktıysa "localhost" adresinden limana erişebiliyor olmamız gerekli. Limana giriş yapmak için ise bir şifreye ihtiyacımız var. Onu da

docker exec -it liman-core limanctl administrator

komutu ile elde edebiliriz. Limana erişimi sağladıktan sonra envanter eklentimizi kuralım. Eklentiyi kurduktan sonra ise sunucumuzu ekleyelim.

Öncelikle yeni bir sunucu ekleme sayfasına gidiyoruz

UI2

Daha sonra kırmızı ile gösterilen yerlere sunucumuzun adresini (yani docker ağında çalıştığı için containerın ismini) ve 7825 portunu giriyor ve ilerliyoruz.

UI3

Bu adımda Sunucumuza koymak istediğimiz ismi giriyor işletim sistemini GNU/LINUX seçip devam ediyoruz.

UI4

Son adımda ise Anahtarsız girişi seçiyoruz ve ilerleyip eklemeyi sonlandırıyoruz.
Şimdi eklentiyi sunucumuza eklememiz gerekiyor.

UI5

Kırmızı ile işaretlenen yere basıp sunucumuzun menüsünü açıyoruz.

Eklenti 4

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

Eklenti 5

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.

Eklenti 7

Şimdi eklentinin ayarlarını yapmamız gerekiyor. Tekrardan eklentiler kısmına gelelim.

UI6

Kırmızı ile belirtilen kısma basarak eklenti ayarları sekmesine girelim.

UI7

API Adresini şekildeki gibi girdikten sonra kaydederek kurulumu tamamlayabiliriz.

Top comments (1)

Collapse
 
harunkaya profile image
Harun KAYA

liman nedir? liman.havelsan.com.tr/