Nextcloud Nedir ve Nasıl Çalışır?
Nextcloud, dosya senkronizasyonu, paylaşımı ve iş birliği için açık kaynak bir sunucu yazılımıdır; kurulumdan itibaren “self‑hosting” modeliyle veri kontrolünü tamamen size verir. Benim bir üretim ERP’sinde çalışan birimlerin ortak dosyaları için merkezi bir depo kurmaya karar verdiğimde, ilk adım bir Ubuntu 22.04 sunucu üzerine Nextcloud 27 paketini apt ile kurmak oldu.
apt install nextcloud komutunu çalıştırdıktan sonra /var/www/nextcloud dizininde PHP‑FPM ve Apache2 entegrasyonu otomatik olarak yapılandırıldı. Kurulum sonrasında admin panelinde “External Storage” eklentisiyle NFS ve S3 entegrasyonu yapabildim; bu sayede veri depolama katmanını ayrı bir RAID‑10 dizine yönlendirdim.
Immich Nedir ve Nasıl Çalışır?
Immich, mobil fotoğraf ve video akışını yönetmek üzere tasarlanmış, hafif bir “self‑hosting” çözümüdür; özellikle medya kütüphanesi ve otomatik etiketleme özellikleriyle öne çıkar. Ben, fotoğraf odaklı bir iç iletişim kanalını desteklemek amacıyla Immich’i Docker‑Compose ile denediğimde, docker-compose.yml dosyasına üç servis (server, redis, postgres) ekleyerek hızlı bir kurulum gerçekleştirdim.
services:
server:
image: ghcr.io/immich-app/server:latest
environment:
- DB_USERNAME=immich
- DB_PASSWORD=securepass
ports:
- "3001:3001"
redis:
image: redis:7-alpine
postgres:
image: postgres:15-alpine
environment:
- POSTGRES_USER=immich
- POSTGRES_PASSWORD=securepass
Kurulum tamamlandığında, mobil uygulama üzerinden “Upload” butonuna bastığımda fotoğraf doğrudan server konteynerine aktarılır; Redis, thumbnail oluşturma kuyruğunu yönetirken PostgreSQL, fotoğraf meta verilerini saklar. Immich’in API‑first mimarisi, Nextcloud’tan farklı olarak medya odaklı iş akışlarını basitleştirir.
Performans ve Depolama Karşılaştırması
Performans açısından, Nextcloud büyük dosya transferlerinde Apache’nin mod_proxy_fcgi ve php-fpm yapılandırmasına bağlı olarak bir miktar gecikme yaşayabilir; ben bir 5 GB ISO dosyasını curl -T ile yüklerken ortalama 3 dakikalık bir süre gözlemledim. Immich ise doğrudan bir HTTP POST endpoint’i üzerinden medya akışı sağladığından, aynı boyuttaki bir video dosyası yaklaşık 1,5 dakikada yüklendi. Bu fark, Immich’in “stream‑oriented” tasarımının ve daha hafif bir sunucu yığını (Node.js yerine Go) kullanmasının bir sonucudur.
Aşağıdaki mermaid diyagramı, iki sistemin veri akışını gösteriyor; sadece görselleştirme amaçlıdır.
graph TD; Client["Kullanıcı"] -->|Upload| Nextcloud["Nextcloud (PHP)"]; Client -->|Upload| Immich["Immich (Go)"]; Nextcloud -->|Store| Storage["NFS / S3"]; Immich -->|Store| DB["PostgreSQL"]; Immich -->|Queue| Redis["Redis"];
Depolama açısından, Nextcloud dosya sistemi bazlı bir yaklaşım sergiler; bu, büyük miktarda veri için RAID‑10 ya da ZFS gibi dosya sistemi avantajlarını kullanmanıza izin verir. Immich ise medya meta verilerini PostgreSQL içinde tutar; bu, veritabanı boyutunun artmasıyla birlikte yedekleme ve replikasyon maliyetlerini artırabilir. Ancak fotoğraf ve video gibi büyük ikili nesneler doğrudan diske yazıldığı için, toplam depolama ihtiyacı iki sistem arasında çok farklı değildir.
Güvenlik ve Erişim Kontrol
Güvenlik açısından, Nextcloud “Security & Hardening Guide” dökümanında önerilen mod_security ve security.txt yapılandırmalarıyla birlikte sıkı bir erişim kontrolü sunar; ben fail2ban ile SSH brute‑force saldırılarını engellerken, Nextcloud’da oturum açma denemeleri de aynı şekilde fail2ban tablosuna yönlendirdim. Ayrıca, Nextcloud’un “Two‑factor authentication” (TOTP) entegrasyonu sayesinde kullanıcı başına ek bir kimlik doğrulama katmanı ekleyebildim.
Immich, şu an için yerleşik bir 2FA mekanizması sunmuyor; kimlik doğrulama tamamen OAuth2 / OpenID Connect üzerinden gerçekleşiyor. Bu, dış bir kimlik sağlayıcı (Keycloak gibi) eklemenizi gerektiriyor; ben bir test ortamında Keycloak ile entegrasyon kurarken client_id ve client_secret hatalarına rastladım ve loglarda “Invalid client secret” mesajı gördüm. Ayrıca, Immich’in API‑level rate limiting’i henüz resmi bir özellik olarak sunulmadığından, yoğun fotoğraf yüklemelerinde DDoS riski artabilir.
Yönetim ve Ölçeklenebilirlik
Yönetim açısından, Nextcloud bir web‑tabanlı admin paneliyle kullanıcı, grup ve uygulama ayarlarını tek bir noktadan yönetmenizi sağlar; ben “User Management” sekmesinde LDAP entegrasyonu kurarak şirket içi AD üzerinden tek giriş (SSO) sağladım. Ölçeklenebilirlik ihtiyacı doğduğunda, Nextcloud’u “Multiple Server” mimarisiyle Apache Proxy ve “Redis cache” üzerinden yatayda genişletebilirim.
Immich ise konteyner‑bazlı bir mimariye dayanır; Docker‑Compose dosyasındaki servis sayısını artırarak ya da Kubernetes‑e taşıyarak ölçeklenebilir. Ancak, veri tabanı (PostgreSQL) ve Redis tek bir instance olarak çalıştığı için, yüksek yük altında bu bileşenlerin ayrı ayrı ölçeklendirilmesi gerekir. Ben, bir deneme ortamında Immich’i Kubernetes‑e taşıdığımda postgres podunun CPU kullanımı %70’ın üzerine çıktığını gözlemledim; bu da ayrı bir “read‑replica” eklemenin zorunlu olduğunu gösterdi.
Maliyet ve Toplam Sahiplenme Maliyeti (TCO)
Maliyet açısından, Nextcloud’un lisans maliyeti yoktur; tek ihtiyaç bir Linux sunucu ve depolama alanıdır. Ben, 4 TB HDD ve 16 GB RAM içeren bir orta seviye VPS üzerinde yıllık 120 USD’lık bir hosting ücreti ödeyerek Nextcloud’u çalıştırdım. Immich de aynı lisans modeline sahip, ancak medya iş akışları için ek olarak bir “Redis” ve “PostgreSQL” servisi gerektirdiğinden, aynı donanımda iki ek servis (her biri 1 CPU, 2 GB RAM) çalıştırmak toplam RAM ihtiyacını 6 GB’a çıkardı; bu da aynı VPS planında sınırları zorlayabilir.
Operasyonel bakımda, Nextcloud’un güncellemeleri apt upgrade ile tek bir komutla halledilebilir; Immich ise Docker‑image güncellemeleri ve veritabanı migrasyonları gerektirir. Ben, Immich’in yeni bir sürüm çıkışında docker compose pull && docker compose up -d adımlarını izlerken, veri tabanı migrasyonu sırasında “migration failed” logu alıp manuel müdahale yapmak zorunda kaldım. Bu ek bakım süresi, uzun vadeli TCO’yu artırır.
Sonuç: Hangi Çözüm Daha Uygun?
Net pozisyonum şudur: dosya paylaşımı, belge yönetimi ve geniş eklenti ekosistemi isteyen kurumlar için Nextcloud daha uygun, çünkü sağlam güvenlik, LDAP entegrasyonu ve ölçeklenebilir bir mimari sunar. Fotoğraf ve video akışı, medya etiketleme ve hafif bir hizmet isteyen ekipler ise Immich’i tercih etmeli; ancak güvenlik ve ölçeklenebilirlik gereksinimleri varsa ek bir kimlik sağlayıcı ve veri tabanı yönetimi yatırımı yapmaları gerekir.
Her iki çözüm de “self‑hosting” felsefesine sadık kalır; seçim, iş akışınızın önceliklerine ve mevcut altyapı kaynaklarınıza göre yapılmalıdır. Kendinizi bir karar aşamasında bulduğunuzda, önce gerçek bir senaryoda bir pilot ortam kurup, yük testleri ve güvenlik denetimleri yapmanızı öneririm.