VDS’ten Hetzner’e Göç — Coolify, Docker ve Çözülen Sorunlar

Mevcut ortam: Hetzner CX33 (4 vCPU, 8GB RAM, 80GB SSD, ~€5.49/ay), Ubuntu 24.04, Coolify Önceki ortam: Eski VDS (E5-2699-V4, 6GB RAM, 50GB SSD) — sorunlar nedeniyle terk edildi Domain: egebostanci.me (Cloudflare DNS) VPS Public IP: 37.27.25.86 (sadece blog — 80/443) VPS Tailscale IP: 100.90.102.23 (SSH, Coolify ve diğer yönetim servisleri)

2026-04-23 Güncellemesi: Altyapı Tailscale VPN arkasına alındı. Public SSH kapatıldı, Coolify paneli artık sadece Tailscale üzerinden erişilebilir. Blog (80/443) public kalmaya devam ediyor. Detaylar: Altyapı Çalışması — Tailscale VPN ve Quartz Geçişi.

1. Eski VDS’den Hetzner’e Göç — Neden ve Nasıl

Neden göç edildi:

  • Coolify proxy (Traefik) sürekli restart oluyordu
  • Let’s Encrypt sslip.io rate limit
  • Cloudflare 525 SSL handshake hataları
  • Bot’lar ACME challenge’ları engelliyordu
  • VDS provider’ın panel ve destek kalitesi düşüktü

Yedek komutları:

# n8n PostgreSQL
docker exec CONTAINER_NAME pg_dump -U postgres n8n > n8n_backup.sql
 
# Ghost
docker exec GHOST_CONTAINER sh -c 'cd /var/lib/ghost/content && tar czf - .' > ghost_content.tar.gz
 
# Uptime Kuma (SQLite)
docker cp UPTIMEKUMA_CONTAINER:/app/data ./uptimekuma_backup

2. Coolify İlk Kurulum — Optimizasyonlar

Kurulum:

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

İlk iş — Swap ekle (mutlaka):

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Docker log limitleri:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}

Kernel parametreleri:

vm.swappiness = 10
vm.vfs_cache_pressure = 50

3. Cloudflare + Coolify SSL Sorunları

Sorun: “No available server”, Cloudflare 525 hatası.

Kök sebep: Cloudflare proxy (turuncu bulut) + Coolify’ın kendi SSL’i çakışıyor.

Yol 1: Cloudflare proxy KAPALI (önerilen)

  • Cloudflare’de gri bulut (DNS only) kullan
  • Coolify kendi Let’s Encrypt sertifikasını alır

Yol 2: Cloudflare proxy AÇIK

  • Cloudflare SSL/TLS → Full (strict) mod
  • Coolify’da domain için SSL’i aktif et

ACME challenge sorunları için:

docker stop coolify-proxy
rm -rf /data/coolify/proxy/acme.json
rm -rf /data/coolify/proxy/letsencrypt/
docker start coolify-proxy

4. Yeni Servis Eklerken “No Available Server” Hatası

Kontrol listesi:

  1. Cloudflare’de A record var mı?
  2. Cloudflare proxy kapalı mı? (gri bulut)
  3. Coolify’da port doğru mu?
  4. Domain kısmında tam URL doğru mu?
  5. Generate Domain butonuna tıklandı mı?

Debug:

docker ps | grep SERVIS_ADI
docker logs coolify-proxy 2>&1 | grep SUBDOMAIN | tail -20
curl -s http://localhost:PORT/health

5. Docker İzin Sorunu

sudo usermod -aG docker KULLANICI
newgrp docker

6. Kaynak Dağılımı — 4 vCPU / 8GB RAM

ServisRAMNot
Coolify + proxy~512MBYönetim paneli + Traefik
n8n + PostgreSQL~1GBWorkflow’lar + database
Ghost + MySQL~1GBBlog + database (sonradan kaldırıldı)
FreshRSS~256MBRSS okuyucu
Uptime Kuma~256MBMonitoring (SQLite, sonradan kaldırıldı)
Sistem (OS)~1GBUbuntu overhead
Buffer/Swap~4GBOOM koruması

Disk temizliği:

docker system prune -a --volumes
df -h
docker system df

7. Coolify’da Servis Deploy Akışı

  1. New Project → New Resource → Docker Compose veya Template seç
  2. Environment variables ekle
  3. Network sekmesinde portu ayarla
  4. Domain kısmına https://subdomain.egebostanci.me yaz
  5. Generate Domain tıkla (SSL)
  6. Deploy
  7. Cloudflare’de A record ekle: subdomain → 37.27.25.86

Servisler arası iletişim: Aynı proje altında olmalı veya manuel network eklenmeli.

8. Mevcut Servisler

ServisAdresDurum
Coolify Panelhttp://100.90.102.23:8000 (Tailscale)Aktif
n8nn8n.egebostanci.meAktif
Blog (Quartz)egebostanci.meAktif — Ghost’un yerine geçti (2026-04-23)
FreshRSSfreshrss.egebostanci.meAktif

Kaldırılan: Ghost (Quartz’a geçildi), Uptime Kuma, Stirling PDF, Pocketbase, Nextcloud.

9. Coolify vs Dokploy Deneyimi

  • Coolify: Daha büyük topluluk, daha fazla template, Traefik bazen sorunlu ama Hetzner’de stabil.
  • Dokploy: Docker Compose native desteği daha iyi, Cloudflare ile daha uyumlu, daha küçük topluluk.
  • Karar: Hetzner’e geçince Coolify’da kalındı. Sorunlar VDS’den kaynaklanıyordu.

10. SSH Bağlantı Bilgileri

2026-04-23 itibariyle public SSH kapatıldı. Bağlantı yalnızca Tailscale üzerinden:

ssh [email protected]

Eski public endpoint (ssh [email protected]) artık çalışmıyor — UFW/iptables kuralları 22 portunu dış trafiğe kapatıyor.

Önemli dizinler:

/data/coolify/          — Coolify data, proxy config, SSL
/var/lib/docker/        — Docker volumes, images
/opt/quartz/            — Quartz blog (Ghost'un yerine)

İlgili yazılar