3.0 KiB
3.0 KiB
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
-
DATABASE_URL Environment Variable Kontrolü
Dokploy'da environment variables bölümünde
DATABASE_URLdeğerini kontrol edin:# 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 -
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ı)
-
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
-
Connection String Formatı
# ✅ 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 -
Schema Belirtme
Eğer
publicdışında bir schema kullanıyorsanız:DATABASE_URL=postgresql://user:password@host:port/dbname?search_path=your_schema
Dokploy'da Environment Variables Ayarlama
- Dokploy dashboard'a giriş yapın
- Projenizi seçin
- "Environment Variables" bölümüne gidin
DATABASE_URLdeğerini kontrol edin/güncelleyin- Değişikliklerden sonra container'ı yeniden başlatın
Test Komutları
Container içinden bağlantıyı test etmek için:
# 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
# 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:
# db.ts dosyasında pool.on('error') event handler'ı logları gösterir
# Container loglarını kontrol edin:
docker logs image-api-app