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_backup2. 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/fstabDocker 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-proxy4. Yeni Servis Eklerken “No Available Server” Hatası
Kontrol listesi:
- Cloudflare’de A record var mı?
- Cloudflare proxy kapalı mı? (gri bulut)
- Coolify’da port doğru mu?
- Domain kısmında tam URL doğru mu?
- 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/health5. Docker İzin Sorunu
sudo usermod -aG docker KULLANICI
newgrp docker6. Kaynak Dağılımı — 4 vCPU / 8GB RAM
| Servis | RAM | Not |
|---|---|---|
| Coolify + proxy | ~512MB | Yönetim paneli + Traefik |
| n8n + PostgreSQL | ~1GB | Workflow’lar + database |
| Ghost + MySQL | ~1GB | Blog + database (sonradan kaldırıldı) |
| FreshRSS | ~256MB | RSS okuyucu |
| Uptime Kuma | ~256MB | Monitoring (SQLite, sonradan kaldırıldı) |
| Sistem (OS) | ~1GB | Ubuntu overhead |
| Buffer/Swap | ~4GB | OOM koruması |
Disk temizliği:
docker system prune -a --volumes
df -h
docker system df7. Coolify’da Servis Deploy Akışı
- New Project → New Resource → Docker Compose veya Template seç
- Environment variables ekle
- Network sekmesinde portu ayarla
- Domain kısmına
https://subdomain.egebostanci.meyaz - Generate Domain tıkla (SSL)
- Deploy
- 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
| Servis | Adres | Durum |
|---|---|---|
| Coolify Panel | http://100.90.102.23:8000 (Tailscale) | Aktif |
| n8n | n8n.egebostanci.me | Aktif |
| Blog (Quartz) | egebostanci.me | Aktif — Ghost’un yerine geçti (2026-04-23) |
| FreshRSS | freshrss.egebostanci.me | Aktif |
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
- Altyapı Çalışması — Tailscale VPN ve Quartz Geçişi — bu altyapının güncel hali (Tailscale + Quartz)
- arsiv.egebostanci.me — Windows’ta HFS + Cloudflare Tunnel — aynı domain altında çalışan Windows tarafı self-host servis