Coolify Kurulumu: Self-Hosted PaaS ile Uygulama Deployment
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Self-hosting nedir, neden yapılır, popüler self-hosted uygulamalar (Nextcloud, Vaultwarden, Jellyfin, Gitea, n8n), Docker kurulumu ve bulut hizmetleriyle karşılaştırma.
Self-hosting, normalde bulut hizmetleri (Google Drive, Dropbox, Netflix, GitHub vb.) aracılığıyla kullandığınız uygulamaları kendi sunucunuzda çalıştırmanızdır. Verileriniz üzerinde tam kontrol sahibi olursunuz, aylık abonelik ücretlerinden kurtulursunuz ve gizliliğinizi korursunuz.
Bulut hizmetleri verilerinizi analiz eder, reklam profili oluşturur ve üçüncü taraflarla paylaşabilir. Self-hosting ile verileriniz yalnızca sizin sunucunuzda kalır.
Bulut vs Self-Hosting Veri Kontrolü:
Google Drive: Google verilerinizi tarar ve analiz eder
Dropbox: Dosyalarınıza erişim hakkı saklıdır
Netflix: İzleme alışkanlıklarınız takip edilir
Self-Hosted: Verileriniz yalnızca sizin kontrolünüzde
Uzun vadede self-hosting, bulut aboneliklerine göre çok daha ekonomik olabilir.
Aylık Maliyet Karşılaştırması (yaklaşık):
Bulut Hizmetleri:
- Google One 2TB: ~$10/ay
- Dropbox Plus: ~$12/ay
- Netflix Standard: ~$15/ay
- GitHub Pro: ~$4/ay
- Notion Plus: ~$8/ay
Toplam: ~$49/ay
Self-Hosted (REXE VDS):
- Sunucu maliyeti: ~$15-30/ay
- Tüm hizmetler dahil
Tasarruf: ~$20-35/ay
Bulut hizmetleri size sınırlı özelleştirme seçeneği sunar. Self-hosting ile uygulamayı istediğiniz gibi yapılandırabilirsiniz.
Bulut hizmetleri kapanabilir, fiyatlarını artırabilir veya özelliklerini kaldırabilir. Self-hosting ile bu risklerden bağımsızsınız.
# Docker ile Nextcloud kurulumu
docker run -d \
--name nextcloud \
-p 8080:80 \
-v nextcloud_data:/var/www/html \
-e MYSQL_HOST=db \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=sifre \
nextcloud:latest
Nextcloud özellikleri:
# Docker ile Vaultwarden kurulumu
docker run -d \
--name vaultwarden \
-p 8080:80 \
-v vaultwarden_data:/data \
-e DOMAIN=https://vault.example.com \
-e SIGNUPS_ALLOWED=false \
vaultwarden/server:latest
Vaultwarden özellikleri:
# Docker ile Jellyfin kurulumu
docker run -d \
--name jellyfin \
-p 8096:8096 \
-v /path/to/media:/media \
-v jellyfin_config:/config \
jellyfin/jellyfin:latest
Jellyfin özellikleri:
# Docker ile Gitea kurulumu
docker run -d \
--name gitea \
-p 3000:3000 \
-p 222:22 \
-v gitea_data:/data \
gitea/gitea:latest
Gitea özellikleri:
# Docker ile Uptime Kuma kurulumu
docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v uptime_kuma_data:/app/data \
louislam/uptime-kuma:latest
Uptime Kuma özellikleri:
# Docker ile n8n kurulumu
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=sifre \
n8nio/n8n:latest
# Docker ile Ghost kurulumu
docker run -d \
--name ghost \
-p 2368:2368 \
-v ghost_content:/var/lib/ghost/content \
-e url=https://blog.example.com \
ghost:latest
# docker-compose.yml
version: '3.8'
services:
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${DB_PASSWORD}
depends_on:
- db
vaultwarden:
image: vaultwarden/server:latest
ports:
- "8081:80"
volumes:
- vaultwarden_data:/data
environment:
- DOMAIN=https://vault.example.com
- SIGNUPS_ALLOWED=false
jellyfin:
image: jellyfin/jellyfin:latest
ports:
- "8096:8096"
volumes:
- /media:/media:ro
- jellyfin_config:/config
uptime-kuma:
image: louislam/uptime-kuma:latest
ports:
- "3001:3001"
volumes:
- uptime_kuma_data:/app/data
db:
image: mariadb:latest
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
nextcloud_data:
vaultwarden_data:
jellyfin_config:
uptime_kuma_data:
db_data:
# /etc/nginx/sites-available/self-hosting
server {
listen 443 ssl http2;
server_name cloud.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
| Kullanım Senaryosu | CPU | RAM | Depolama |
|---|---|---|---|
| Temel (Vaultwarden + Uptime Kuma) | 1 vCPU | 1 GB | 10 GB |
| Orta (+ Nextcloud + Gitea) | 2 vCPU | 2-4 GB | 50+ GB |
| Tam Stack (+ Jellyfin + n8n) | 4 vCPU | 4-8 GB | 100+ GB |
| Medya Ağırlıklı (4K streaming) | 4+ vCPU | 8+ GB | 500+ GB |
Self-hosting'e başlamak için REXE'nin VDS planları idealdir. 2 vCPU ve 4 GB RAM ile Nextcloud, Vaultwarden, Gitea ve Uptime Kuma'yı rahatça çalıştırabilirsiniz.
Self-hosting, teknik meraklılar ve gizliliğine önem verenler için mükemmel bir seçenektir. Başlangıç için Vaultwarden ve Uptime Kuma gibi basit uygulamalarla başlayın, deneyim kazandıkça daha karmaşık uygulamalara geçin.
Temel Linux komut satırı bilgisi ve Docker'ın nasıl çalıştığını anlamak yeterlidir. Docker Compose ile çoğu uygulama birkaç komutla kurulabilir. Başlangıç için Portainer gibi görsel Docker yönetim araçları da kullanabilirsiniz. Zamanla deneyim kazandıkça daha karmaşık yapılandırmalar yapabilirsiniz.
Doğru yapılandırıldığında evet. Temel güvenlik önlemleri: SSL/TLS sertifikası kullanın, güçlü parolalar belirleyin, 2FA etkinleştirin, düzenli güncellemeler yapın, güvenlik duvarı yapılandırın ve gereksiz portları kapatın. Vaultwarden gibi hassas uygulamalar için ek güvenlik katmanları ekleyin.
Nextcloud, Google Drive'ın tüm temel özelliklerini sunar (dosya depolama, senkronizasyon, paylaşım, takvim, kişiler) ancak verileriniz kendi sunucunuzda kalır. Google Drive'da Google verilerinizi analiz edebilir. Nextcloud ücretsiz ve açık kaynaklıdır, depolama alanı yalnızca sunucunuzun disk kapasitesiyle sınırlıdır.
Başlangıç için Vaultwarden (şifre yöneticisi) ve Uptime Kuma (izleme) önerilir. Bu uygulamalar az kaynak kullanır, kurulumu kolaydır ve hemen pratik fayda sağlar. Deneyim kazandıktan sonra Nextcloud, Gitea ve Jellyfin gibi daha kapsamlı uygulamalara geçebilirsiniz.
Evet, özellikle KVKK uyumluluğu açısından. Türkiye'deki bir sunucuda barındırılan veriler, Türk veri koruma mevzuatına uygun şekilde yönetilir. Ayrıca Türkiye'deki kullanıcılar için düşük gecikme süresi sağlar. REXE'nin İstanbul veri merkezi, self-hosting için ideal bir altyapı sunar.
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Nextcloud kurulumu Docker ile, Apache/Nginx yapılandırması, veritabanı kurulumu, SSL sertifikası, dosya senkronizasyonu, uygulama mağazası ve performans optimizasyonu.
Portainer CE kurulumu, Docker ve Kubernetes yönetimi, stack deployment, volume/network yönetimi, kullanıcı yetkilendirme, webhook ve GitOps entegrasyonu.