# Dokploy Troubleshooting Guide ## PostgreSQL Bağlantı Sorunları ### Hata: `ECONNREFUSED` veya `Failed query` Bu hata, uygulamanın PostgreSQL sunucusuna bağlanamadığını gösterir. ### Kontrol Listesi 1. **DATABASE_URL Environment Variable Kontrolü** Dokploy'da environment variables bölümünde `DATABASE_URL` değerini kontrol edin: ```bash # Doğru format: DATABASE_URL=postgresql://user:password@host:port/database?search_path=public # Örnek: DATABASE_URL=postgresql://cloud:gg7678290@10.80.80.70:5432/image_api?search_path=public ``` 2. **Network Erişimi** - Dokploy container'ından PostgreSQL sunucusuna erişilebilir olmalı - Eğer PostgreSQL farklı bir network'teyse, network yapılandırmasını kontrol edin - Firewall kurallarını kontrol edin (port 5432 açık olmalı) 3. **IP Adresi ve Port** - Hata mesajında görünen IP/port ile DATABASE_URL'deki IP/port eşleşmeli - Eğer farklıysa, Dokploy'da environment variable'ı güncelleyin 4. **Connection String Formatı** ```bash # ✅ Doğru postgresql://user:password@10.80.80.70:5432/dbname # ❌ Yanlış postgres://user:password@10.80.80.70:5432/dbname # postgres yerine postgresql kullanın postgresql://user:password@10.80.80.70/dbname # Port eksik ``` 5. **Schema Belirtme** Eğer `public` dışında bir schema kullanıyorsanız: ```bash DATABASE_URL=postgresql://user:password@host:port/dbname?search_path=your_schema ``` ### Dokploy'da Environment Variables Ayarlama 1. Dokploy dashboard'a giriş yapın 2. Projenizi seçin 3. "Environment Variables" bölümüne gidin 4. `DATABASE_URL` değerini kontrol edin/güncelleyin 5. Değişikliklerden sonra container'ı yeniden başlatın ### Test Komutları Container içinden bağlantıyı test etmek için: ```bash # Container'a bağlan docker exec -it image-api-app sh # PostgreSQL bağlantısını test et psql $DATABASE_URL -c "SELECT version();" ``` ### Yaygın Hatalar ve Çözümleri **Hata:** `ECONNREFUSED 10.0.1.215:5455` - **Sebep:** DATABASE_URL yanlış IP/port içeriyor - **Çözüm:** Dokploy'da DATABASE_URL'i doğru IP ve port ile güncelleyin **Hata:** `timeout expired` - **Sebep:** Network erişim sorunu veya firewall - **Çözüm:** Network yapılandırmasını ve firewall kurallarını kontrol edin **Hata:** `password authentication failed` - **Sebep:** Yanlış kullanıcı adı/şifre - **Çözüm:** DATABASE_URL'deki credentials'ları kontrol edin ### Örnek Doğru DATABASE_URL ```bash # Local PostgreSQL DATABASE_URL=postgresql://postgres:password@localhost:5432/image_api?search_path=public # Remote PostgreSQL DATABASE_URL=postgresql://cloud:gg7678290@10.80.80.70:5432/image_api?search_path=public # SSL ile DATABASE_URL=postgresql://user:pass@host:5432/dbname?sslmode=require ``` ### Debug Modu Daha detaylı hata mesajları için: ```bash # db.ts dosyasında pool.on('error') event handler'ı logları gösterir # Container loglarını kontrol edin: docker logs image-api-app ```