Proje: OkulUp CRM · Hub: OkulUp CRM — Incidents

Semptom

npm run dev (127.0.0.1:4173) + php artisan serve (127.0.0.1:8000) birlikte çalışıyor ama CRM API’ya bağlanamıyor.

Root Cause

src/lib/constants.js içinde fallback:

export const DEFAULT_API_BASE_URL =
  import.meta.env.VITE_API_BASE_URL || "http://127.0.0.1:8080/api";

Varsayılan 8080, ancak kampusapi Laravel artisan serve ile 8000’de açılıyor. .env.local yoksa fallback devreye girip yanlış porta istek atıyor.

.env.example doğru değeri (http://127.0.0.1:8000/api) içeriyor ama .env.local/.env repo’da yok (gitignore).

Çözüm

Backend tarafı iki geçerli seçenek:

A) Sail (önerilen, hali hazırdaki kurulum)

  • Docker Desktop açık → compose.yaml içindeki Sail stack otomatik ayağa kalkar.
  • Laravel container (NGINX) host’ta 127.0.0.1:8080 portunda yayın yapıyor.
  • .env’deki DB_HOST=mysql sadece Sail network’ünden çözülür — bu yüzden php artisan serve host üzerinden koşunca getaddrinfo for mysql failed alınır.
  • CRM .env.local:
    VITE_API_BASE_URL=http://127.0.0.1:8080/api
    
  • php artisan serve’ü kullanma; gerekirse ./vendor/bin/sail up -d ile manuel kaldır/indir.

B) Host’ta php artisan serve (yedek)

  • kampusapi/kampus/.env’de:
    • DB_HOST=127.0.0.1
    • DB_PORT=3307 (Sail MySQL’i host’a bu portla forward ediyor)
  • CRM .env.local:
    VITE_API_BASE_URL=http://127.0.0.1:8000/api
    

Her iki yolda da Vite dev server’ı restart (env sadece startup’ta okunur).

Doğrulama

  • curl -I http://127.0.0.1:8080 → HTTP 200 (Sail NGINX sağlıklı).
  • kampusapi/kampus/config/cors.phpallowed_origins içinde http://127.0.0.1:4173 zaten var; CORS tarafında ek iş yok.
  • supports_credentials: true ve token tabanlı Authorization header akışı uyumlu.

Docker stack portları (Sail, compose.yaml’dan)

ServisContainerHost
laravel.test (NGINX+PHP-FPM)808080
mysql33063307
redis63796380
minio API / konsol9000 / 89009002 / 8901