services:
  postgres:
    image: pgvector/pgvector:pg18
    environment:
      POSTGRES_DB: nivq
      POSTGRES_USER: nivq
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?.env içinde POSTGRES_PASSWORD ayarlayin — guclu herhangi bir deger}
    volumes:
      - nivq-pg:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U nivq"]
      interval: 5s
      retries: 10

  redis:
    image: redis:7-alpine
    volumes:
      - nivq-redis:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      retries: 10

  nivq:
    image: ghcr.io/nivorbit/images/nivq:0.2.6
    depends_on:
      postgres: { condition: service_healthy }
      redis: { condition: service_healthy }
    env_file: .env          # ayarları buradan okur — aşağıdaki örneğe bakın
    environment:
      # Yukarıdaki POSTGRES_PASSWORD'ü yeniden kullanır — iki değil tek parola.
      NIVQ_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
      # Zorunlu değerler .env boş kaldığında crash-loop yerine net bir mesajla
      # hemen durur. Değerleri burada değil .env içinde doldurun.
      NIVQ_ENCRYPTION_KEY_V1: ${NIVQ_ENCRYPTION_KEY_V1:?.env icinde NIVQ_ENCRYPTION_KEY_V1 ayarlayin — openssl rand -base64 32 ile uretin}
      NIVQ_PLATFORM_LLM_API_KEY: ${NIVQ_PLATFORM_LLM_API_KEY:?.env icinde NIVQ_PLATFORM_LLM_API_KEY ayarlayin — LLM saglayici API anahtariniz}
      NIVQ_BOOTSTRAP_ADMIN_PASSWORD: ${NIVQ_BOOTSTRAP_ADMIN_PASSWORD:?.env icinde NIVQ_BOOTSTRAP_ADMIN_PASSWORD ayarlayin — ilk kurulum admin parolasi}
    ports:
      - "8080:8080"
    restart: unless-stopped

  # Tarayıcı arayüzü. API'ye yönlendirilmiş statik bir uygulama; ayrıntı için bkz. Web istemcisi.
  nivq-web:
    image: ghcr.io/nivorbit/images/nivq-web:0.2.8
    depends_on: [nivq]
    environment:
      # API URL'i, tarayıcıdan erişildiği haliyle (BACKEND_URL ile eşleşmeli).
      NIVQ_API_BASE_URL: http://localhost:8080
    ports:
      - "3000:8080"          # arayüzü FRONTEND_URL'de servis et (http://localhost:3000)
    restart: unless-stopped

volumes:
  nivq-pg:
  nivq-redis:
