Immich Kurulumu: Self-Hosted Fotoğraf ve Video Yedekleme
Immich Docker kurulumu, fotoğraf ve video otomatik yedekleme, yüz tanıma, harita görünümü, paylaşılan albümler, mobil uygulama ve Google Photos alternatifi self-hosted çözüm.
İçindekiler
Immich Kurulumu: Self-Hosted Fotoğraf ve Video Yedekleme
Immich, Google Photos'a açık kaynaklı bir alternatif olarak geliştirilen self-hosted fotoğraf ve video yedekleme platformudur. Mobil uygulamalar ile otomatik yedekleme, yüz tanıma, harita görünümü ve paylaşılan albümler gibi modern özellikler sunar.
Immich Nedir?
Immich, fotoğraf ve video koleksiyonunuzu kendi sunucunuzda barındırmanızı sağlar:
- Otomatik yedekleme: iOS ve Android uygulamaları ile arka plan yedekleme
- Yüz tanıma: Makine öğrenmesi ile otomatik yüz algılama ve gruplama
- Harita görünümü: GPS verisi ile fotoğrafları harita üzerinde görüntüleme
- Paylaşılan albümler: Aile ve arkadaşlarla albüm paylaşımı
- Zaman çizelgesi: Kronolojik fotoğraf tarayıcı
- Arama: Nesne, sahne ve metin bazlı akıllı arama
Sistem Gereksinimleri
- Docker ve Docker Compose
- Minimum 4 GB RAM (8 GB önerilir — ML modelleri için)
- Yeterli disk alanı (fotoğraf/video koleksiyonuna göre)
- PostgreSQL 14+ (Docker Compose ile otomatik kurulur)
Docker ile Kurulum
docker-compose.yml
version: '3.8'
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- "2283:2283"
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: redis:6.2-alpine
restart: always
healthcheck:
test: redis-cli ping || exit 1
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
healthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1
interval: 10s
timeout: 5s
retries: 5
volumes:
pgdata:
model-cache:
.env Dosyası
# .env
UPLOAD_LOCATION=/data/immich/upload
DB_PASSWORD=GucluSifre123!
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
Kurulumu Başlatma
# Dizin oluştur
mkdir -p /data/immich/upload
# Container'ları başlat
docker compose up -d
# Logları kontrol et
docker logs immich_server -f
# Durumu kontrol et
docker compose ps
Immich web arayüzüne http://SUNUCU_IP:2283 adresinden erişebilirsiniz. İlk girişte admin hesabı oluşturmanız gerekir.
İlk Yapılandırma
Admin Hesabı Oluşturma
http://SUNUCU_IP:2283adresine gidin- "Getting Started" butonuna tıklayın
- Admin e-posta ve şifre belirleyin
- Depolama yolunu onaylayın
Kullanıcı Yönetimi
Administration → User Management
- Yeni kullanıcı ekle (e-posta, ad, şifre)
- Depolama kotası belirle
- Harici kütüphane erişimi ver
Nginx Reverse Proxy
server {
listen 80;
server_name photos.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name photos.example.com;
ssl_certificate /etc/letsencrypt/live/photos.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/photos.example.com/privkey.pem;
client_max_body_size 50000M; # Büyük video yüklemeleri için
location / {
proxy_pass http://127.0.0.1:2283;
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;
# WebSocket desteği
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Büyük dosya yükleme timeout
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}
Mobil Uygulama Kurulumu
iOS / Android
- App Store veya Google Play'den "Immich" uygulamasını indirin
- Sunucu URL'sini girin:
https://photos.example.com - Kullanıcı adı ve şifre ile giriş yapın
- Otomatik yedekleme ayarlarını yapılandırın:
- Arka plan yedekleme: Etkin
- Wi-Fi'da yedekle: Etkin
- Mobil veride yedekle: İsteğe bağlı
- Video yedekleme: Etkin/Devre dışı
Harici Kütüphane
Mevcut fotoğraf koleksiyonunuzu Immich'e eklemek için:
# docker-compose.yml'e volume ekle
services:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /mnt/photos:/mnt/photos:ro # Harici kütüphane (salt okunur)
Administration → External Libraries
- Import Path: /mnt/photos
- Scan frequency: Her 24 saatte bir
- Exclusion patterns: *.tmp, Thumbs.db
Makine Öğrenmesi Ayarları
Administration → Machine Learning
- Yüz tanıma: Etkin
- Akıllı arama (CLIP): Etkin
- Nesne algılama: Etkin
- Minimum yüz güven skoru: 0.7
ML modelleri ilk çalıştırmada indirilir ve önbelleğe alınır. İlk tarama büyük koleksiyonlarda saatler sürebilir. model-cache volume'u sayesinde yeniden başlatmalarda tekrar indirilmez.
Yedekleme
# Veritabanı yedeği
docker exec immich_postgres pg_dumpall -U postgres | \
gzip > /backups/immich-db-$(date +%Y%m%d).sql.gz
# Upload dizini yedeği (büyük olabilir!)
rsync -avz /data/immich/upload/ /backups/immich-upload/
# Otomatik yedekleme
cat > /etc/cron.daily/immich-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/immich"
mkdir -p $BACKUP_DIR
docker exec immich_postgres pg_dumpall -U postgres | \
gzip > $BACKUP_DIR/db-$(date +%Y%m%d).sql.gz
find $BACKUP_DIR -name "db-*.sql.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/immich-backup
Güncelleme
# Yedek al
docker exec immich_postgres pg_dumpall -U postgres > immich-backup.sql
# Yeni imajları indir
docker compose pull
# Container'ları yeniden başlat
docker compose up -d
# Logları kontrol et
docker logs immich_server -f
Immich henüz aktif geliştirme aşamasındadır. Büyük sürüm güncellemelerinde breaking change olabilir. Güncelleme öncesi mutlaka veritabanı yedeği alın ve release notlarını okuyun.
Sonuç
Immich, Google Photos'a güçlü bir self-hosted alternatiftir. Fotoğraf ve videolarınızı kendi sunucunuzda güvenle saklayabilir, yüz tanıma ve akıllı arama gibi modern özelliklerden yararlanabilirsiniz. REXE sunucularında 8 GB RAM ile binlerce fotoğrafı sorunsuz yönetebilirsiniz.
İlgili Makaleler
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.
Nextcloud Kurulumu: Self-Hosted Bulut Depolama ve İşbirliği
Nextcloud kurulumu Docker ile, Apache/Nginx yapılandırması, veritabanı kurulumu, SSL sertifikası, dosya senkronizasyonu, uygulama mağazası ve performans optimizasyonu.
Portainer ile Docker Yönetimi: Web Arayüzlü Konteyner Kontrolü
Portainer CE kurulumu, Docker ve Kubernetes yönetimi, stack deployment, volume/network yönetimi, kullanıcı yetkilendirme, webhook ve GitOps entegrasyonu.