Birkaç yıldır çektiğim tüm fotoğrafları telefonumda veya bulut depolama servislerinde dağınık halde tutuyordum; tam olarak neyin nerede olduğunu bulmak imkansız hale gelmişti. Üstelik bu servislerin gizlilik politikaları ve zamanla artan maliyetleri de cabasıydı. Kendi fotoğraf arşivimin kontrolünü tamamen ele geçirme fikri, hem veri güvenliğim hem de uzun vadeli maliyet avantajı açısından beni Immich’i kurmaya yöneltti. Immich, açık kaynaklı ve güçlü bir kişisel bulut depolama çözümü olarak, fotoğraflarınızı ve videolarınızı kendi sunucunuzda güvenle saklamanızı sağlıyor. Bu rehberde, Immich kurulumunu dört temel adımda nasıl tamamlayabileceğinizi anlatacağım.
Bu kurulum süreci, özellikle temel düzeyde Linux ve Docker bilgisine sahipseniz, oldukça yönetilebilir bir hale geliyor. Amacımız, karmaşık kurumsal sistemlerden farklı olarak, kişisel verilerimizin kontrolünü bizde tutmak ve bunu yaparken de modern teknolojinin sunduğu pratiklikten faydalanmak. Gelin, bu yolculuğa birlikte çıkalım ve dijital fotoğraf arşivinizi yeniden canlandıralım.
Neden Immich’i Kendi Sunucunuzda Kurmalısınız?
Ticari bulut depolama servisleri ilk bakışta kolaylık sunsa da, uzun vadede gizlilik ve maliyet gibi konularda ciddi dezavantajlar barındırabilir. Immich gibi kendi kendine barındırılan (self-hosted) çözümler ise bu dezavantajları ortadan kaldırıyor. Kendi fotoğraf bulutunuzu kurmak, kişisel verileriniz üzerinde tam kontrol sahibi olmanızı sağlar; verileriniz asla üçüncü partiler tarafından taranmaz veya reklam amaçlı kullanılmaz.
Ayrıca, uzun vadede düşündüğünüzde, einmalık sunucu maliyeti ve depolama giderleri, aylık veya yıllık abonelik ücretlerine göre çok daha ekonomik hale gelebilir. Immich, sadece depolama sunmakla kalmıyor; akıllı yüz tanıma, obje algılama, otomatik yedekleme ve gelişmiş arama gibi modern bulut depolama servislerinde gördüğünüz tüm özellikleri ücretsiz olarak sunuyor. Bu da onu, veri mahremiyetine önem veren ve bütçesini akıllıca yönetmek isteyen herkes için cazip bir seçenek haline getiriyor.
Bu sistemlerin kurulumu ilk başta göz korkutucu görünse de, doğru adımları izlediğinizde aslında oldukça mantıklı ve yönetilebilir olduklarını göreceksiniz. Teknik derinliği olan bu tür projeler, aynı zamanda Linux sistem yönetimi ve container teknolojileri konusundaki bilginizi de artırma fırsatı sunar.
Adım 1: Hazırlık - Sunucu ve Docker Kurulumu
Immich’i kurmaya başlamadan önce, sisteminizin bazı temel gereksinimleri karşıladığından emin olmalısınız. İlk ve en önemli adım, Immich’i çalıştıracağınız bir sunucu hazırlamak. Bu, evinizde çalışan eski bir bilgisayar, bir Raspberry Pi, bir NAS cihazı ya da bulutta kiralayacağınız bir sanal özel sunucu (VPS) olabilir. Hangi donanımı seçerseniz seçin, bol miktarda depolama alanı, yeterli RAM ve işlemci gücü kritik öneme sahiptir. Fotoğraf arşiviniz büyüdükçe depolama ihtiyacınız da artacaktır, bu yüzden başlangıçta biraz cömert davranmakta fayda var.
Tercihen bir Linux dağıtımı (Ubuntu LTS, Debian gibi) kullanmanızı öneririm. Linux, bu tür server uygulamaları için stabil bir platform sunar ve gerekli araçlara erişimi kolaylaştırır. Sunucunuz hazır olduğunda, temel olarak iki ana teknolojiye ihtiyacımız olacak: Docker ve Docker Compose. Bu araçlar, Immich’in ve tüm bağımlılıklarının (PostgreSQL veritabanı, Redis önbellekleme servisi gibi) izole ortamlarda, kolayca yönetilebilir bir şekilde kurulmasını sağlar.
Eğer sunucunuzda Docker ve Docker Compose kurulu değilse, bunları kurmanız gerekecek. Ubuntu ve Debian tabanlı sistemler için kurulum adımları genellikle şu şekildedir:
-
Docker Kurulumu:
# Gerekli paketleri yükleyin sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common -y # Docker GPG anahtarını ekleyin curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Docker deposunu ekleyin echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Docker CE'yi yükleyin sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -yKurulum sonrası Docker servisini başlatın ve sistem açıldığında otomatik başlamasını sağlayın:
sudo systemctl start docker sudo systemctl enable dockerKullanıcınızın
sudokomutu olmadan Docker komutlarını çalıştırabilmesi için onudockergrubuna ekleyin (bu, komutları daha rahat çalıştırmanızı sağlar):sudo usermod -aG docker $USER # Bu değişikliklerin etkili olması için oturumu kapatıp tekrar açmanız veya 'newgrp docker' komutunu kullanmanız gerekebilir. -
Docker Compose Kurulumu: Güncel Docker sürümlerinde
docker-compose-pluginpaketiyle birlikte gelir. Eğer ayrı yüklemeniz gerekiyorsa, resmi dokümantasyona bakabilirsiniz. Genellikledocker compose versionkomutu ile kontrol edebilirsiniz.
Bu hazırlıklar tamamlandığında, sunucunuz Immich’i kurmaya hazır hale gelmiş demektir. Son olarak, Immich dosyalarınızı ve veritabanını saklamak için sunucunuzda belirgin bir dizin oluşturmak iyi bir pratiktir. Örneğin:
mkdir -p ~/immich/data
Bu dizin, Immich’in kendi yapılandırma dosyaları, veritabanı ve en önemlisi fotoğraf kütüphaneniz için kullanılacaktır. Depolama alanınızın bulunduğu diskin bu dizine bağlanacağından emin olun.
Dosya İzinleri ve Güvenlik Notları
Sunucunuzda Docker’ı kurduktan sonra, güvenlik ve pratiklik açısından bazı önemli noktalara dikkat etmek gerekir. Docker servislerini çalıştıran kullanıcının docker grubunda olması, sudo kullanmadan docker compose gibi komutları çalıştırmanıza olanak tanır. Ancak bu, kullanıcının sistem üzerindeki yetkilerini artırır, bu nedenle bu grubu dikkatli yönetmek önemlidir. Kendi sunucunuzda, bu genellikle kişisel bir kullanım olduğu için sorun teşkil etmez, ancak paylaşımlı bir ortamda daha hassas davranmak gerekebilir.
Ayrıca, Immich’in fotoğraf dosyalarınızla etkileşim kurabilmesi için, sunucunuzdaki fotoğraf arşivinizin bulunduğu dizinin doğru izinlere sahip olması gerekir. Docker konteynerleri varsayılan olarak ana makine (host) sisteminden izole çalışır. Bu izolasyon, Immich konteynerinin host’taki dosya sisteminize erişebilmesi için özel volume mapping’ler gerektirir. Bu mapping’ler sırasında, konteynerin belirttiğiniz dizinlere yazma ve okuma iznine sahip olduğundan emin olmalısınız. Genellikle bu, host’taki dizinin sahibini veya grubunu Docker kullanıcısı veya Docker’ın ihtiyaç duyduğu bir ID ile eşleştirmeyi gerektirir. Bu konu, kurulum sırasında en sık karşılaşılan sorunlardan biridir ve bir sonraki adımda docker-compose.yml dosyasını yapılandırırken daha detaylı ele alınacaktır.
Adım 2: Immich Docker Compose Yapılandırması
Artık sunucumuzda Docker ve Docker Compose kurulu olduğuna göre, Immich’i containerize bir şekilde kurmaya başlayabiliriz. Bu adımda, Immich’in resmi docker-compose.yml dosyasını kullanarak gerekli servisleri (Immich uygulama sunucusu, PostgreSQL veritabanı, Redis önbellekleme servisi) yapılandıracağız. Bu dosya, tüm bağımlılıkların nasıl çalışacağını, hangi portların kullanılacağını ve hangi depolama alanlarının bağlanacağını tanımlar.
İlk olarak, Immich dosyalarınızı saklamak için oluşturduğunuz dizine gidin (örneğin, ~/immich). Ardından, Immich’in GitHub deposundan en güncel docker-compose.yml dosyasını indirin. Bunu curl veya wget komutuyla yapabilirsiniz:
cd ~/immich
curl -L https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -o docker-compose.yml
Bu komut, Immich’in en son yayınlanan sürümüne ait docker-compose.yml dosyasını mevcut dizine indirecektir. Dosyayı indirdikten sonra, bir metin editörü ile açıp kendi ihtiyaçlarınıza göre düzenlemeniz gerekecek.
nano docker-compose.yml
# veya
vim docker-compose.yml
Dosyanın içeriğinde birkaç kritik bölüm bulunmaktadır:
-
servicesBölümü: Burada Immich’in ana servisi (immich-server), veritabanı (immich-db- PostgreSQL) ve önbellekleme servisi (immich-redis) tanımlanır. Bu servislerin hangi Docker imajlarını kullanacağı, hangi portları dışarıya açacağı ve hangi çevre değişkenlerini alacağı belirtilir. -
volumesBölümü: Bu bölüm, verilerinizin kalıcı olmasını sağlamak için önemlidir. Host makinenizdeki dizinlerin, container içindeki ilgili konumlara nasıl bağlanacağını tanımlar../immich-data:/usr/src/app/immich-files: Immich’in medya dosyalarını (fotoğraflar, videolar) depolayacağı yer../immich-db:/var/lib/postgresql/data: PostgreSQL veritabanı dosyaları../immich-redis:/data: Redis veri dosyaları.- Önemli: Kendi fotoğraf kütüphanenizi Immich’e tanıtmak için genellikle bu
immich-filesvolume’ünü kendi fotoğraf arşivinizin bulunduğu bir host dizinine bağlamanız gerekir. Bunudocker-compose.ymliçinde doğrudan yapabileceğiniz gibi, daha sonra Immich arayüzünden de belirtebilirsiniz. Ancak, eğer fotoğraflarınız halihazırda belirli bir dizindeyse, bu dizini doğrudan bağlamak ilk kurulumu kolaylaştırır. Örneğin, fotoğraflarınız~/my-photosdizinindeyse,immich-filesvolume’ünü bu şekilde map edebilirsiniz:./my-photos:/usr/src/app/immich-files. Ancak,docker-compose.yml’deki varsayılan ayarı kullanıp, daha sonra Immich arayüzünden bu dizini “Library” olarak eklemek genellikle daha temiz bir yaklaşımdır.
-
environmentBölümü: Immich sunucusu için gerekli tüm yapılandırma ayarları burada bulunur.IMMICH_ENCRYPTION_KEY: Bu, Immich’in verilerinizi şifrelemek için kullandığı kritik bir anahtardır. Çok güvenli ve karmaşık bir anahtar oluşturmalı ve bu anahtarı güvenli bir yerde saklamalısınız. Anahtarı kaybetmek, Immich’in şifrelediği verilere erişiminizi kaybetmenize neden olabilir. Bir parola yöneticisi veya güvenli bir rastgele anahtar oluşturucu kullanarak bu anahtarı üretebilirsiniz.DB_PASSWORD: PostgreSQL veritabanı için güçlü bir şifre belirleyin.REDIS_PASSWORD: Redis servisi için güçlü bir şifre belirleyin.TZ: Sunucunuzun saat dilimini ayarlayın (örn:Europe/Istanbul).
# Örnek docker-compose.yml düzenlemesi (değiştirmeniz gereken kısımlar)
# Bu sadece bir örnektir, resmi Immich dokümantasyonunu kontrol etmeniz önerilir.
services:
immich-server:
image: immich/immich-server:latest
container_name: immich_server
ports:
- "2283:3001" # Web arayüzü için port
volumes:
- immich-files:/usr/src/app/storage # Fotoğraflarınız buraya depolanacak
- ./configs:/usr/src/app/config # Immich konfigürasyon dosyaları
environment:
- IMMICH_ENCRYPTION_KEY=YOUR_VERY_SECURE_ENCRYPTION_KEY_HERE # Lütfen değiştirin!
- DB_HOST=immich-db
- DB_PORT=5432
- DB_USERNAME=postgres
- DB_PASSWORD=YOUR_SECURE_DB_PASSWORD_HERE # Lütfen değiştirin!
- REDIS_HOST=immich-redis
- REDIS_PORT=6379
- REDIS_PASSWORD=YOUR_SECURE_REDIS_PASSWORD_HERE # Lütfen değiştirin!
- TZ=Europe/Istanbul
depends_on:
- immich-db
- immich-redis
restart: unless-stopped
immich-db:
image: postgres:15 # Veya Immich'in desteklediği güncel versiyon
container_name: immich_db
volumes:
- immich-db:/var/lib/postgresql/data
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=YOUR_SECURE_DB_PASSWORD_HERE # Yukarıdakiyle aynı olmalı
restart: unless-stopped
immich-redis:
image: redis:7-alpine
container_name: immich_redis
volumes:
- immich-redis:/data
command: redis-server --requirepass YOUR_SECURE_REDIS_PASSWORD_HERE # Yukarıdakiyle aynı olmalı
restart: unless-stopped
volumes:
immich-files: # Bu, fotoğraf depolama dizininiz olacak
immich-db:
immich-redis:
Dosyayı Kaydettikten Sonra:
Yapılandırmayı tamamladıktan sonra, dosyayı kaydedip editörden çıkın. Ardından, ~/immich dizinindeyken aşağıdaki komutu çalıştırarak Immich servislerini başlatabilirsiniz:
docker compose up -d
-d bayrağı, servislerin arka planda (detached mode) çalışmasını sağlar. Bu komut, gerekli Docker imajlarını indirecek ve belirttiğiniz yapılandırmaya göre servisleri başlatacaktır. Kurulum sırasında herhangi bir hata alırsanız, docker compose logs -f immich-server gibi komutlarla servis loglarını inceleyebilirsiniz.
Adım 3: İlk Kurulum ve Kütüphane Yapılandırması
Immich servislerini başarıyla başlattıktan sonra sıra geldi ilk yapılandırmayı yapmaya ve fotoğraf kütüphanenizi Immich’e tanıtmaya. Bu, Immich’in sizin için fotoğraflarınızı tarayarak indekslemesini ve yönetilebilir hale getirmesini sağlayan kritik bir adımdır.
Web tarayıcınızı açın ve daha önce docker-compose.yml dosyasında belirttiğiniz Immich sunucu portuna gidin. Genellikle bu, http://<sunucu_ip_adresi>:2283 şeklinde olacaktır. Eğer sunucunuzun IP adresini bilmiyorsanız, terminalde ip a veya hostname -I komutlarını kullanabilirsiniz.
İlk kez Immich’e eriştiğinizde, sizi bir “Admin Account Setup” ekranı karşılayacaktır. Burada Immich yöneticisi olarak kullanılacak e-posta adresi ve şifreyi belirlemeniz istenir. Bu bilgileri güvenli bir şekilde kaydettiğinizden emin olun, çünkü bu hesap Immich üzerindeki tüm yönetici yetkilerine sahip olacaktır.
Hesabınızı oluşturduktan sonra, Immich sizi ana kontrol paneline (dashboard) yönlendirecektir. Burada artık fotoğraf kütüphanenizi tanımlama zamanı. Soldaki menüden “Libraries” (Kütüphaneler) sekmesine gidin. Immich’in varsayılan olarak bir depolama yolu tanımlanmış olabilir, ancak kendi fotoğraflarınızı kullanmak istiyorsanız, “Add Library” (Kütüphane Ekle) butonuna tıklayın.
Karşınıza çıkan pencerede, kütüphaneniz için anlamlı bir isim girin (örn: “Ana Fotoğraflarım”, “2020-2024 Arşivi”). Ardından en önemli alan olan “Path” (Yol) kısmına, sunucunuzdaki fotoğraf arşivinizin bulunduğu dizinin tam yolunu girmeniz gerekmektedir. Bu yol, Docker konteyneri içindeki değil, host makinenizdeki yoldur.
Önemli Not: Dosya İzinleri ve Yol Eşleşmesi
Burada en sık karşılaşılan sorunlardan biri dosya izinleri ve yol eşleşmesidir. Immich konteynerinin, host makinenizdeki bu fotoğraf dizinine okuma ve yazma izni olmalıdır. Eğer docker-compose.yml dosyasında immich-files volume’ünü doğrudan bir host dizinine bağladıysanız (örn: ./my-photos:/usr/src/app/storage), o zaman Immich arayüzünde belirtmeniz gereken yol genellikle konteyner içindeki storage klasörü olacaktır. Ancak, eğer varsayılan immich-files volume’ünü kullandıysanız ve fotoğraflarınız ~/my-photos gibi bir yerdeyse, bu durumda Immich arayüzünden “Add Library” derken, Immich’in kendi içindeki depolama yolunu (örn: /usr/src/app/storage/my-custom-library) belirtmeniz ve bu yolu Docker Compose’da doğru şekilde map etmeniz gerekir.
En temiz yaklaşım genellikle şudur:
docker-compose.ymldosyasındavolumesbölümünde host’unuzdaki ana fotoğraf deponuzu (örn:/home/kullaniciadi/my-photos) Immich’in beklediği bir konuma (örn:/usr/src/app/storage/host-photos) bağlayın.volumes: - /home/kullaniciadi/my-photos:/usr/src/app/storage/host-photos # ... diğer volume'ler- Immich arayüzünden “Add Library” dediğinizde, “Path” olarak
/usr/src/app/storage/host-photosgibi konteyner içindeki yolu belirtin.
Dosya İzinleri Kontrolü:
Eğer Immich fotoğraflarınızı tarayamazsa veya ekleyemezse, ilk bakmanız gereken yer dosya izinleridir. Sunucunuzda, fotoğraf arşivinizin bulunduğu dizine gidin ve Immich konteynerini çalıştıran kullanıcının (genellikle Docker’ın kullandığı bir UID/GID ile eşleşir, bu bazen 1000 olabilir veya docker compose ps ile kontrol edilebilir) okuma ve yazma iznine sahip olduğundan emin olun. Gerekirse sudo chown -R <immich_user_id>:<immich_group_id> /path/to/your/photos komutunu kullanabilirsiniz.
Kütüphaneyi ekledikten ve yolu doğru belirttiğinizden emin olduktan sonra, “Scan Library” (Kütüphaneyi Tara) butonuna tıklayın. Immich artık bu dizindeki tüm fotoğraf ve videoları taramaya başlayacaktır. Bu işlem, kütüphanenizin boyutuna bağlı olarak biraz zaman alabilir. Tarama tamamlandığında, fotoğraflarınız Immich arayüzünde görünmeye başlayacaktır.
Adım 4: Mobil ve Web Arayüzü Bağlantısı ve Kullanım
Artık Immich sunucumuz çalışıyor, veritabanı yapılandırıldı ve fotoğraf kütüphanemiz tanımlandı. Bu son adımda, Immich’e hem web tarayıcısı üzerinden hem de mobil cihazlarımızdan nasıl bağlanacağımızı ve temel kullanım özelliklerini ele alacağız.
Web Arayüzü Erişimi:
Daha önce belirttiğimiz gibi, web tarayıcınızdan http://<sunucu_ip_adresi>:2283 adresine giderek Immich’in web arayüzüne erişebilirsiniz. Burada ilk kurduğunuz admin hesabınızla oturum açın. Karşınıza çıkan dashboard, depolama kullanımını, son yüklenenleri ve sistemin genel durumunu gösterir. Soldaki menüden galerinizi gezebilir, albümler oluşturabilir, fotoğrafları arayabilir ve düzenleyebilirsiniz.
Mobil Uygulama Bağlantısı: Immich’in en güçlü yanlarından biri, mobil cihazlarınızdan otomatik yedekleme yapabilmesidir. Bunun için iOS ve Android platformlarında sunulan Immich mobil uygulamasını indirmeniz gerekir.
- Uygulamayı İndirin: App Store veya Google Play Store’dan “Immich” uygulamasını arayın ve indirin.
- Sunucu Bağlantısını Yapılandırın: Uygulamayı açtığınızda, sizden sunucu adresini girmenizi isteyecektir. Buraya Immich sunucunuzun IP adresini ve yapılandırdığınız portu girin (örn:
http://192.168.1.100:2283). Eğer sunucunuza dışarıdan erişim ayarladıysanız (örneğin bir domain adı ve HTTPS ile), o adresi kullanın. - Giriş Yapın: Ardından, web arayüzünde oluşturduğunuz admin hesabınızın e-posta adresini ve şifresini girerek oturum açın.
- Yedekleme Ayarlarını Yapın: Oturum açtıktan sonra, uygulama sizden yedekleme ayarlarını yapılandırmanızı isteyecektir. Hangi klasörlerin yedekleneceğini (örn: Kamera Rulosu), Wi-Fi üzerinden mi yoksa mobil veri üzerinden mi yedekleme yapılacağını ve ne sıklıkla yedekleme yapılacağını belirleyebilirsiniz. Bu özelliği etkinleştirdiğinizde, telefonunuzdaki yeni fotoğraflar otomatik olarak Immich sunucunuza yüklenecektir.
Ek Özellikler ve İpuçları:
- Güvenlik: Sunucunuzun dışarıdan erişilebilir olması durumunda, mutlaka HTTPS kullanmayı ve güçlü şifreler belirlemeyi unutmayın. Bir ters proxy (Nginx, Caddy gibi) kurarak Immich’inize bir domain adı üzerinden HTTPS ile erişmek en güvenli yoldur.
- Depolama Yönetimi: Fotoğraf arşiviniz büyüdükçe sunucunuzun depolama alanını izleyin. Gerekirse ek diskler ekleyin veya daha büyük diskler kullanın.
- Yedekleme: Immich sunucusunun kendisinin de düzenli olarak yedeklenmesi gerektiğini unutmayın. Hem Immich’in kendi veritabanı hem de fotoğraf dosyalarınızın bulunduğu dizinleri yedeklemek hayati önem taşır.
- Performans: Büyük kütüphanelerde ilk tarama ve indeksleme işlemleri zaman alabilir. Arka planda çalıştırdığınızdan emin olun ve sabırlı olun. Yüz tanıma ve obje algılama gibi özellikler de ek işlem gücü gerektirebilir.
Immich ile kendi fotoğraf bulutunuzu kurmak, sadece fotoğraflarınızı güvenle saklamakla kalmaz, aynı zamanda verileriniz üzerindeki kontrolü size geri verir. Bu dört adım, size bu yolculukta rehberlik edecektir.
Sonuç
Kendi fotoğraf bulutunuzu Immich ile kurmak, kişisel verileriniz üzerindeki kontrolü yeniden kazanmanın güçlü bir yoludur. Bu rehberde ele aldığımız dört adım – sunucu hazırlığı, Docker Compose ile kurulum, kütüphane yapılandırması ve mobil/web arayüzü bağlantısı – bu süreci yönetilebilir hale getirir. Artık fotoğraflarınız ticari servislerin insafına kalmadan, sizin kontrolünüzde, güvenli bir şekilde saklanabilir.
Bu kurulumun ardından, Immich’in sunduğu gelişmiş arama özellikleri, yüz tanıma teknolojisi ve otomatik yedekleme senkronizasyonu gibi özelliklerle dijital anılarınızı daha kolay yönetebilirsiniz. Unutmayın, bu tür self-hosted çözümler, başlangıçta biraz teknik bilgi gerektirse de, uzun vadede sağladığı esneklik, gizlilik ve maliyet avantajları bu emeğe fazlasıyla değer. Eğer verilerinizin kontrolünü elinize almak istiyorsanız, Immich harika bir başlangıç noktasıdır.