Immich: VPS üzerinde fotoğraf ve videolarınız için kendi bulutunuzu kurma
Immich, fotoğraf ve videoları saklamak ve otomatik olarak yüklemek için self-hosted bir hizmettir. Mobil uygulamalar, web arayüzü, albümler, akıllı arama ve yüz tanıma sunar; kütüphane ise seçtiğiniz sunucuda kalır.
Aşağıda Immich’in gereksinimlerini, Ubuntu üzerinde Docker Compose ile kurulumunu, HTTPS ayarlarını, telefon bağlantısını ve harici yedekleri ele alacağız.
Immich altı adımda
- Yeterli RAM ve disk alanına sahip bir Linux VPS oluşturun.
photos.example.comgibi bir alt alan adını sunucunun IP adresine yönlendirin.- Docker’ı kurun ve resmî Immich yapılandırmasını indirin.
- Medya kütüphanesinin ve veritabanının yollarını belirtin, ardından container’ları başlatın.
- Dahili portu kapatın ve HTTPS’yi etkinleştirin.
- Mobil uygulamayı kurun ve harici bir yedek yapılandırın.
Immich nedir?
Immich, kendi fotoğraf ve video kütüphanenizi yönetmek için açık kaynaklı bir uygulamadır. Fotoğraflar zaman çizelgesinde görünür, albümlerde gruplanabilir, aramayla bulunabilir ve telefondan sunucuya otomatik olarak yüklenebilir.
Geleneksel bir bulut fotoğraf hizmetinden temel farkı, sunucu tarafı üzerindeki kontroldür. Dosyalar VPS’inizde veya ev sunucunuzda saklanır; ancak boş alan, güncellemeler, güvenlik ve yedeklerden sahibi sorumludur.
| Parametre | Bulut fotoğraf hizmeti | Immich |
|---|---|---|
| Dosyaların saklandığı yer | Sağlayıcının altyapısında | Sunucunuzda |
| Bakım | Sağlayıcı tarafından yapılır | Sahibi tarafından yapılır |
| Maliyetler | Depolama tabanlı paket | VPS, disk alanı ve yedekler |
Immich tek başına bir yedek değildir. Fotoğraflar yalnızca bir VPS’te bulunuyorsa disk arızası veya yanlışlıkla silme arşivi yine de yok edebilir.
Immich’in başlıca özellikleri
- Otomatik yüklemeler. Android ve iOS uygulamaları seçilen albümlerdeki fotoğraf ve videoları yükler. Varsayılan olarak Wi-Fi kullanılır ve mevcut dosyalar checksum’a göre atlanır.
- Akıllı arama. Hizmet kişi, konum, tarih, kamera, görüntüdeki metin ve içerik açıklamasına göre arama yapabilir. Yüzler gruplanır ve ardından isim atanabilir.
- Albümler ve paylaşım. Immich birden fazla kullanıcıyı, ortak albümleri, partner paylaşımını ve parola ile son kullanma tarihi olan herkese açık bağlantıları destekler.
- Harita ve meta veriler. Immich EXIF verilerini okur, fotoğrafın çekildiği yeri gösterir, anılar oluşturur; favorileri, arşivi ve harici kütüphaneleri destekler.
Makine öğrenimi, ilk içe aktarma sırasında CPU ve RAM’e en büyük yükü bindirir. Küçük resimler ve indeksler oluşturulduktan sonra günlük kaynak kullanımı genellikle daha düşüktür.
Immich sunucu gereksinimleri
Güncel sürümler için resmî gereksinimler şunlardır:
- 64 bit Linux veya Unix benzeri sistem;
- en az 2 CPU çekirdeği, 4 çekirdek önerilir;
- en az 6 GB RAM, 8 GB önerilir;
docker composeeklentili Docker Engine;- PostgreSQL veritabanı için yerel SSD;
- orijinal dosyalar, küçük resimler ve dönüştürülmüş videolar için alan.
Makine öğrenimi özellikleri devre dışı bırakılırsa Immich 4 GB RAM’li bir sunucuda çalışabilir. Yüz tanıma ve akıllı arama için başlangıçtan itibaren 8 GB seçmek daha iyidir.
Küçük resimler ve dönüştürülmüş dosyalar medya kütüphanesinin boyutuna ortalama %10–20 ekler. 200 GB’lık bir arşiv için en az 240–260 GB ayırın. DB_DATA_LOCATION veritabanı dizini bir ağ sürücüsünde değil, yerel SSD’de tutulmalıdır.
Pratik başlangıç yapılandırması 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS ve kaynak kütüphaneden %20–30 daha büyük kapasiteli SSD’dir. Özel bir ekran kartı gerekli değildir, ancak büyük bir arşivin işlenmesini hızlandırabilir.
Immich VPS’e nasıl kurulur?
Bu örnekte Ubuntu 24.04 ve photos.example.com alt alan adı kullanılır.
1. DNS’i yapılandırın ve Ubuntu’yu hazırlayın
VPS’in IPv4 adresine işaret eden bir A DNS kaydı oluşturun. Ardından SSH üzerinden bağlanın:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableYeni bir bağlantının çalıştığını doğrulayana kadar mevcut SSH oturumunu kapatmayın.
2. Docker ve Docker Compose’u kurun
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionÖzellikle docker compose komutunu kullanın: eski docker-compose komutu artık proje tarafından desteklenmiyor.
3. Immich’i indirin ve yapılandırın
mkdir -p /opt/immich /srv/immich-data
cd /opt/immich
curl -L -o docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
https://github.com/immich-app/immich/releases/latest/download/example.envDosyayı açın:
nano /opt/immich/.envAna parametreleri değiştirin:
UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORDKendi saat diliminizi girin. PostgreSQL parolası Latin harfleri ve rakamlar içermelidir; openssl rand -hex 24 komutu rastgele bir değer oluşturur. Diğer satırları mevcut example.env dosyasında göründüğü gibi bırakın.
4. Dahili portu kapatın ve container’ları başlatın
docker-compose.yml içinde immich-server hizmetinin portunu bulun:
ports:
- '2283:2283'Şununla değiştirin:
ports:
- '127.0.0.1:2283:2283'Port artık yalnızca VPS’in kendisinden erişilebilir. Hizmeti başlatın:
cd /opt/immich
docker compose up -d
docker compose psTanılama için docker compose logs --tail=200 kullanın.
5. Caddy ile HTTPS’yi etkinleştirin
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
reverse_proxy 127.0.0.1:2283
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyDNS VPS’e işaret ediyor ve 80 ile 443 portlarına erişilebiliyorsa Caddy otomatik olarak sertifika ister. Immich, domain veya alt alan adının kökünde çalışmalıdır; example.com/immich gibi bir adres desteklenmez.
6. Yönetici oluşturun ve telefonunuzu bağlayın
https://photos.example.com adresini açın. İlk kayıt olan kullanıcı yönetici olur ve ek hesaplar oluşturabilir.
Immich’i App Store veya Google Play’den kurun. Oturum açma ekranında /api olmadan adresi girin:
https://photos.example.comAlbümleri seçin ve yedeklemeyi etkinleştirin. İlk içe aktarma biraz zaman alabilir: sunucu küçük resimler oluşturur, yüzleri tanır, arama verilerini indeksler ve videoları işler.
Immich’i güncelleme
Güncellemeden önce, özellikle yeni bir ana sürüme geçerken sürüm notlarını okuyun:
cd /opt/immich
docker compose pull
docker compose up -d
docker image pruneÖnce mobil uygulamaları, ardından sunucuyu güncelleyin. Ayrı talimatlar verilmedikçe veritabanını daha eski bir sürüme geri almak desteklenmeyebilir.
Immich’i yedekleme
Immich otomatik olarak PostgreSQL dökümleri oluşturur; ancak bunlar fotoğraf ve videoları değil, yalnızca veritabanını ve meta verileri içerir. Eksiksiz bir kurtarma için şunları kaydedin:
/srv/immich-datadizininin tamamı;/opt/immich/.envvedocker-compose.yml;- Caddy yapılandırması.
Aynı VPS’teki bir kopya, disk arızasına veya sunucunun silinmesine karşı koruma sağlamaz. Verileri ayrı bir sunucuya, NAS’a veya nesne depolamaya gönderin ve 3-2-1 yedekleme stratejisini uygulayın. Yedek dosyalarının varlığını kontrol etmekle yetinmeyin; düzenli olarak geri yükleme testi yapın.
Immich için hangi VPS seçilmeli?
Yüz tanıma ve akıllı arama ile tüm özellikleri kullanmak için en az 4 vCPU ve 8 GB RAM’e sahip bir VPS seçmek mantıklıdır. Disk boyutunu medya kütüphanesine göre hesaplayın ve küçük resimler, videolar ve arşiv büyümesi için ek kapasite bırakın.
Statik IP adresine ve SSD depolamaya sahip tropic.host Linux VPS’i bu görev için uygundur. 8 GB RAM’li bir yapılandırmayla başlayabilir ve kütüphane büyüdükçe kaynakları artırabilirsiniz. PostgreSQL veritabanını hızlı bir yerel diskte, yedeği ise bu VPS’in dışında tutun.
VPS her ağdan günün her saati erişim için kullanışlıdır. Birkaç terabaytlık arşiv için ev sunucusu daha ucuz olabilir, ancak elektriği, harici erişimi ve yedekliliği kendiniz sağlamanız gerekir.
Immich’in sınırlamaları
Self-hosting güvenilirliği garanti etmez. Zayıf parola, açık 2283 portu, güncel olmayan container’lar veya harici yedek olmaması veri kaybı riski oluşturur.
Immich, Google Photos veya iCloud’un birebir kopyası da değildir: düzenleme ve arka plan senkronizasyonu yetenekleri farklıdır, analiz hızı donanıma bağlıdır. Tek arşivinizi taşımadan önce hizmeti küçük bir kütüphaneyle test edin.
Sonuç
Immich mobil yüklemeler, albümler, yüz tanıma, arama ve paylaşım özellikleriyle kendi fotoğraf galerini oluşturmanızı sağlar. Güncel bir sürüm için 4 çekirdekli, 8 GB RAM’li ve en az %20–30 boş kapasitesi olan SSD’ye sahip bir Linux VPS hazırlamak en iyisidir.
Kurulumdan sonra HTTPS’yi, güncellemeleri ve medya diziniyle birlikte veritabanının harici yedeğini yapılandırın. Fotoğrafları kayba karşı koruyan şey self-hosting’in kendisi değil, yedektir.
FAQ
Immich ücretsiz mi?
Immich sunucusu açık kaynaklıdır ve zorunlu abonelik olmadan çalışabilir. Yine de VPS, alan adı, disk alanı ve yedekler için ödeme yapmanız gerekir.
Immich ne kadar RAM gerektirir?
Resmî minimum RAM 6 GB, önerilen miktar ise 8 GB’tır. 4 GB ile makine öğrenimini devre dışı bırakmanız gerekir.
Immich alan adı olmadan kurulabilir mi?
Teknik olarak evet, ancak telefondan kalıcı erişim için alan adı ve HTTPS kullanmak daha iyidir. Bu, kimlik doğrulama ve dosya aktarımlarını korur.
Immich fotoğraf yedeğinin yerini tutar mı?
Hayır. Medya kütüphanesini ve veritabanını başka bir cihaza veya konuma ayrı ayrı kopyalayın.
Mevcut bir fotoğraf arşivini taşıyabilir miyim?
Evet. Dosyalar web arayüzü veya CLI üzerinden yüklenebilir ya da bir dizin harici kütüphane olarak bağlanabilir. Büyük ölçekli bir içe aktarmadan önce kaynak verilerin bir kopyasını oluşturun.
