Sorun Giderme

Yaygın Sorunlar

Kurulum Problemleri

Port Zaten Kullanımda

Hata: listen tcp :3000: bind: address already in use

Çözüm:

# 3000 portunu kullanan işlemi bul
lsof -i :3000  # Linux/macOS
netstat -ano | findstr :3000  # Windows

# İşlemi sonlandır
kill -9 <PID>  # Linux/macOS
taskkill /PID <PID> /F  # Windows

# Veya farklı port kullan
./gityar web -p 3001

Veritabanı Bağlantısı Başarısız

Hata: Failed to connect to database

Çözümler:

SQLite:

# Yazma izinlerini kontrol et
chmod 755 data/

MySQL:

[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gityar
USER = gityar
PASSWD = correct_password
  • MySQL'in çalıştığını doğrulayın
  • Kimlik bilgilerini kontrol edin
  • Veritabanının var olduğundan emin olun
  • Kullanıcı izinlerini kontrol edin

PostgreSQL:

[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gityar
USER = gityar
PASSWD = correct_password
SSL_MODE = disable
  • PostgreSQL'in çalıştığını doğrulayın
  • Kimlik bilgilerini kontrol edin
  • Veritabanının var olduğundan emin olun

Kimlik Doğrulama Sorunları

Giriş Yapamıyorum

Olası nedenler:

  1. Yanlış kimlik bilgileri: Şifreyi sıfırlayın
  2. Hesap etkinleştirilmedi: Etkinleştirme bağlantısı için e-postayı kontrol edin
  3. Hesap devre dışı: Yönetici ile iletişime geçin

Şifre Sıfırlama:

  1. Giriş sayfasında "Şifremi Unuttum" tıklayın
  2. E-postayı girin
  3. Sıfırlama bağlantısını takip edin
  4. Yeni şifre belirleyin

LDAP Kimlik Doğrulama Başarısız

Çözümler:

  • LDAP sunucusunun erişilebilir olduğunu doğrulayın
  • Bind DN ve şifreyi kontrol edin
  • Kullanıcı arama tabanını doğrulayın
  • LDAP hataları için logları kontrol edin

app.ini içinde:

[auth]
ENABLE_LDAP = true

[ldap]
HOST = ldap.example.com:389
BASE_DN = dc=example,dc=com

Depo Sorunları

Depoya Push Yapamıyorum

Hata: Permission denied

Çözümler:

  1. Depo erişimini kontrol edin:

    • İşbirlikçi misiniz?
    • Yazma erişiminiz var mı?
    • Doğru takımda mısınız?
  2. Kimlik doğrulamayı kontrol edin:

    # SSH test
    ssh -T git@localhost
       
    # HTTP test
    curl -u username:password http://localhost:3000/user/repo.git/info/refs
    
  3. Branch korumasını kontrol edin:

    • Branch korumalı mı?
    • Push izniniz var mı?

Git Clone Başarısız

HTTP:

# URL'yi kontrol et
git clone http://localhost:3000/user/repo.git

# Kimlik bilgileriyle
git clone http://username:password@localhost:3000/user/repo.git

SSH:

# SSH anahtarını kontrol et
ssh -T git@localhost

# Ayrıntılı
GIT_SSH_COMMAND="ssh -v" git clone git@localhost:user/repo.git

Depo Boş Görünüyor

Nedenler:

  1. Henüz commit push edilmedi
  2. Yanlış branch seçildi
  3. Depo başlatılmadı

Çözüm:

cd your-repo
git status
git log --all
git branch -a

# Eğer boşsa, ilk commit'i oluştur
echo "# Benim Projem" > README.md
git add .
git commit -m "İlk commit"
git push origin main

Performans Sorunları

Sayfalar Yavaş Yükleniyor

Çözümler:

  1. Önbelleklemeyi etkinleştir:

    [cache]
    ADAPTER = memory
    INTERVAL = 60
    
  2. Ters proxy kullan:

    • Nginx veya Apache
    • gzip sıkıştırma etkinleştir
  3. Veritabanını optimize et:

    # MySQL
    mysqlcheck -o gityar -u root -p
       
    # PostgreSQL
    vacuumdb -d gityar
    
  4. Kaynakları artır:

    • Daha fazla RAM
    • Daha hızlı CPU
    • SSD depolama

Büyük Depo Yavaş

Çözümler:

  1. Git otomatik çöp toplamayı etkinleştir:

    [repository]
    ENABLE_AUTO_GIT_GC = true
    GC_AUTO_THRESHOLD = 100
    
  2. Sığ clone kullan:

    git clone --depth 50 http://localhost:3000/user/repo.git
    
  3. Büyük dosyalar için LFS'yi etkinleştir

E-posta Sorunları

E-postalar Gönderilmiyor

Yapılandırmayı kontrol et:

[mailer]
ENABLED = true
HOST = smtp.example.com:587
FROM = gityar@example.com
USER = gityar@example.com
PASSWD = password
IS_TLS_ENABLED = true

Bağlantıyı test et:

telnet smtp.example.com 587

Logları kontrol et:

tail -f log/gityar.log | grep mailer

Web Kancası Sorunları

Web Kancaları Tetiklenmiyor

Kontrol listesi:

  • Web kanca aktif
  • URL erişilebilir
  • Etkinlikler yapılandırılmış
  • Güvenlik duvarı engellemiyor
  • SSL sertifikası geçerli

Web kancayı test et:

  1. Web kanca ayarlarına gidin
  2. "Test Teslimatı" tıklayın
  3. Yanıtı kontrol edin

Logları kontrol et:

tail -f log/gityar.log | grep webhook

Log Dosyaları

Konum

log/gityar.log
log/http.log

Log Seviyeleri

app.ini içinde:

[log]
MODE = file
LEVEL = Info  # Trace, Debug, Info, Warn, Error, Critical

Debug Loglarını Etkinleştir

[log]
LEVEL = Debug

gityar'ı yeniden başlatın ve ayrıntılı bilgi için logları kontrol edin.

Veritabanı Sorunları

Yedekleme ve Geri Yükleme

Yedekleme:

# SQLite
cp data/gityar.db gityar-backup.db

# MySQL
mysqldump -u root -p gityar > backup.sql

# PostgreSQL
pg_dump gityar > backup.sql

Geri Yükleme:

# SQLite
cp gityar-backup.db data/gityar.db

# MySQL
mysql -u root -p gityar < backup.sql

# PostgreSQL
psql gityar < backup.sql

Veritabanı Taşıma

SQLite'dan MySQL'e:

  1. SQLite'dan dışa aktar
  2. MySQL veritabanı oluştur
  3. Verileri içe aktar
  4. app.ini güncelle
  5. gityar'ı yeniden başlat

Yaygın Hata Mesajları

"Template Not Found"

Çözüm:

# Templates dizinini kontrol et
ls templates/

# Kaynaktan yeniden derle
go build -o gityar ./cmd/gityar

"Static File Not Found"

Çözüm:

# Public dizinini kontrol et
ls public/

# Yeniden derle veya yeniden başlat
./gityar web

"Session Expired"

Çözüm:

  • Tarayıcı önbelleğini temizleyin
  • Oturum yapılandırmasını kontrol edin
  • gityar'ı yeniden başlatın

Yardım Alma

Kaynaklar

Sorun Raporlarken

Şunları dahil edin:

  1. gityar sürümü
  2. İşletim sistemi
  3. Veritabanı türü ve sürümü
  4. Hata mesajları
  5. Yeniden üretme adımları
  6. Log dosyaları (ilgiliyse)

Önleyici Tedbirler

Düzenli Bakım

  • ✅ Veritabanını düzenli yedekleyin
  • ✅ Disk alanını izleyin
  • ✅ gityar'ı en son sürüme güncelleyin
  • ✅ Logları düzenli gözden geçirin
  • ✅ Eski depoları temizleyin
  • ✅ Performans metriklerini izleyin

Güvenlik En İyi Uygulamaları

  • ✅ gityar'ı güncel tutun
  • ✅ Güçlü şifreler kullanın
  • ✅ 2FA'yı etkinleştirin
  • ✅ Düzenli güvenlik denetimleri
  • ✅ Erişim loglarını izleyin
  • ✅ Düzenli yedekleme yapın

Sonraki Adımlar