Self-Hosting Immich: Privé foto cloud
Uw foto's op een zelfgehoste AI-gedreven back-up
Immich is een revolutionaire open-source, zelfgehost oplossing voor het beheren van foto’s en video’s die je volledige controle geeft over je herinneringen. Met functies die concurreren met Google Photos - waaronder AI-gestuurde gezichtsherkenning, slimme zoekfuncties en automatische mobiele back-up - terwijl je data privé en veilig blijft op je eigen server.
Net zoals Persoonlijk Kennisbeheer je helpt om je gedachten en informatie te organiseren en te bewaren, helpt Immich je om je visuele herinneringen te organiseren en te bewaren.

Wat is Immich?
Immich is een open-source, zelfgehost alternatief voor proprietaire cloud foto diensten zoals Google Photos en iCloud. Gemaakt met moderne technologieën zoals TypeScript, PostgreSQL en machine learning, biedt Immich een functierijke platform voor het back-uppen, organiseren en browsen van je foto- en videocollectie.
Belangrijke functies
Privacy-First Design: Alle je foto’s blijven op je infrastructuur. Geen derde partij servers, geen data mining, geen privacy zorgen. Je herinneringen behoren tot jou.
Automatische mobiele back-up: Native iOS en Android apps bieden automatische achtergrond back-up, vergelijkbaar met Google Photos. Je foto’s zijn beveiligd kort na het nemen ervan.
AI-gestuurde zoekfunctie: Met behulp van machine learning modellen zoals CLIP en gezichtsherkenning, stelt Immich semantische zoekfunctie mogelijk. Zoek naar “strand zonsondergang”, “hond speelt” of specifieke personen zonder handmatige taggen.
Gezichtsherkenning: Automatische detectie en clustering van gezichten in je foto’s. Immich herkent personen over je hele bibliotheek, waardoor het gemakkelijk is om foto’s van specifieke personen te vinden.
Moderne webinterface: Mooie, responsieve webinterface voor het browsen, organiseren en delen van je foto’s vanaf elk apparaat met een browser.
Multi-gebruikersondersteuning: Maak accounts aan voor familieleden, elk met hun eigen privé bibliotheek. Deel geselecteerde albums terwijl je persoonlijke foto’s privacy behouden.
Live Photo ondersteuning: Volledige ondersteuning voor iOS Live Photos en Android Motion Photos, waardoor zowel de still foto als de video component behouden blijven.
Metadata behouden: EXIF data inclusief locatie, camera instellingen en tijdstempels worden behouden. Bekijk je foto’s op een kaart gebaseerd op GPS coördinaten.
Externe bibliotheek ondersteuning: Importeer bestaande foto bibliotheek van externe opslag zonder bestanden te kopiëren, wat schijf ruimte bespaart. Net zoals tools zoals Obsidian helpen bij het beheren en organiseren van tekstgebaseerde kennis, biedt Immich krachtige organisatie voor visuele media.
Waarom zelfhosten je foto’s?
Volledige privacy controle
Wanneer je commerciële cloud diensten gebruikt, worden je foto’s op servers opgeslagen die je niet controleert. Ze kunnen worden geanalyseerd voor reclame, opgenomen in machine learning training data of toegankelijk gemaakt voor derde partijen. Met Immich blijven je foto’s je server verlaten tenzij je ze expliciet deelt.
Geen opslag limieten
Cloud diensten factureren op basis van opslag niveaus. Met zelfhosting is je enige limiet je hardware capaciteit. Een 10TB harde schijf kost minder dan twee jaar van premium cloud opslag.
Kostenefficiëntie
Na de initiële hardware investering heeft zelfhosting minimale aanhoudende kosten. Geen maandelijkse abonnementen, geen onverwachte kosten wanneer je opslag limieten overschrijdt.
Data duurzaamheid
Cloud diensten kunnen voorwaarden veranderen, prijzen verhogen of volledig sluiten. Je zelfgehoste oplossing blijft onder jouw controle onbepaald.
Leer mogelijkheid
Zelfhosten van Immich biedt hands-on ervaring met Docker, reverse proxies, SSL certificaten, database beheer en server administratie - waardevolle vaardigheden voor elke ontwikkelaar of DevOps professional.
Architectuur overzicht
Immich volgt een microservices architectuur met verschillende componenten:
Immich Server: Hoofd API server die authenticatie, foto uploads en database operaties verwerkt. Gemaakt met Node.js en TypeScript.
Immich Machine Learning: Afzonderlijke Python service die TensorFlow modellen draait voor gezichtsherkenning, object detectie en CLIP gebaseerde semantische zoekfunctie.
Immich Web: React gebaseerde webinterface die de gebruikersgeoriënteerde toepassing biedt.
PostgreSQL: Relationele database die metadata, gebruikersinformatie en relaties tussen foto’s, personen en albums opslaat.
Redis: In-memory cache voor sessiebeheer en job queue coördinatie.
TypeSense (optioneel): Zoekmachine voor verbeterde zoekfunctionaliteit en prestaties.
Alle componenten draaien als Docker containers, georchestreerd met Docker Compose voor vereenvoudigde implementatie en beheer.
Hardware vereisten
Minimum specificaties
- CPU: 2 cores (x86_64 of ARM64)
- RAM: 4GB (8GB aanbevolen)
- Opslag: 10GB voor toepassing + foto bibliotheek grootte
- Netwerk: 100 Mbps voor lokale toegang
Aanbevolen specificaties
- CPU: 4+ cores met goede single-thread prestaties
- RAM: 8-16GB (meer voor grotere bibliotheek)
- Opslag: SSD voor database en toepassing, HDD voor foto opslag
- GPU: Optioneel maar versnelt ML taken aanzienlijk (NVIDIA met CUDA ondersteuning)
Opslag overwegingen
Plan voor ongeveer 1,15x je huidige foto bibliotheek grootte om rekening te houden met miniatures en meerdere resoluties. Gebruik SSD opslag voor de PostgreSQL database voor betere prestaties.
Voor grote bibliotheek (100.000+ foto’s), overweeg:
- NAS met RAID voor data redundantie
- Afzonderlijke SSD voor database
- NVMe cache laag voor vaak toegankelijke foto’s
Installatie handleiding
Voorwaarden
Voor de installatie van Immich, zorg ervoor dat je hebt:
- Linux Server: Ubuntu 22.04 LTS of Debian 12 aanbevolen (zie onze uitgebreide gids over Hoe Ubuntu 24.04 te installeren & nuttige tools voor gedetailleerde setup instructies)
- Docker: Versie 20.10 of nieuwer
- Docker Compose: Versie 2.0 of nieuwer
- Domeinnaam: Optioneel maar aanbevolen voor externe toegang
- Reverse Proxy: Nginx of Caddy voor SSL afhandeling
Stap-voor-stap installatie
1. Installeer Docker en Docker Compose
# Update systeem pakketten
sudo apt update && sudo apt upgrade -y
# Installeer Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Voeg gebruiker toe aan docker groep
sudo usermod -aG docker $USER
# Installeer Docker Compose
sudo apt install docker-compose-plugin
Voor meer details over curl commando’s en opties, zie onze cURL Cheat Sheet. Als je nieuw bent met Docker, biedt onze Docker Cheat Sheet essentiële commando’s en concepten.
2. Maak Immich directory structuur aan
# Maak toepassingsdirectory aan
mkdir -p ~/immich/{library,database,machine-learning}
cd ~/immich
# Download docker-compose.yml
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# Download omgevings sjabloon
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Als je nieuw bent met bash scripting en command-line operaties, biedt onze Bash Cheat Sheet nuttige referentie voor veelvoorkomende commando’s en directory operaties.
3. Configureer omgevingsvariabelen
Bewerk de .env bestand met je instellingen:
# Database configuratie
DB_PASSWORD=your_secure_password_here
DB_DATABASE_NAME=immich
DB_USERNAME=postgres
# Upload locatie
UPLOAD_LOCATION=./library
# Machine Learning
MACHINE_LEARNING_ENABLED=true
# Tijdzone
TZ=America/New_York
# Publieke URL (voor externe toegang)
IMMICH_SERVER_URL=https://photos.yourdomain.com
Belangrijk: Genereer een sterke willekeurige wachtwoord voor DB_PASSWORD:
openssl rand -base64 32
4. Start Immich
# Start alle diensten
docker compose up -d
# Controleer dienst status
docker compose ps
# Bekijk logs
docker compose logs -f
Dit zijn slechts de basis - voor een uitgebreide referentie van Docker Compose commando’s en operaties, zie onze Docker Compose Cheat Sheet.
5. Toegang tot webinterface
Navigeer naar http://your-server-ip:2283 en maak je admin account aan. Deze eerste account wordt het systeem administrator.
Instellen van externe toegang
Voor veilige externe toegang, configureer een reverse proxy:
Nginx configuratievoorbeeld
server {
listen 443 ssl http2;
server_name photos.yourdomain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
client_max_body_size 50000M;
location / {
proxy_pass http://localhost: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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}
Caddy configuratievoorbeeld (Eenvoudiger met automatische HTTPS)
photos.yourdomain.com {
reverse_proxy localhost:2283
@uploads {
path /api/upload/*
}
request_body @uploads {
max_size 50GB
}
}
Mobile App Setup
iOS
- Download Immich van de App Store
- Voer je server URL in (https://photos.yourdomain.com)
- Meld je aan met je referenties
- Schakel automatische back-up in instellingen
- Kies welke albums je wilt back-uppen (of alle foto’s)
- Configureer back-up instellingen (alleen via WiFi, alleen bij opladen, etc.)
Android
- Download Immich van Google Play Store of F-Droid
- Voer server URL en referenties in
- Verleen foto/video toegang permissies
- Configureer automatische back-up instellingen
- Schakel foreground service in voor betrouwbare achtergrond back-up
Back-up configuratie tips
- Alleen via WiFi: Schakel in om mobiele data kosten te vermijden
- Alleen bij opladen: Voorkom batterijverbruik bij grote uploads
- Inclusief video’s: Video’s verbruiken aanzienlijke opslag en bandbreedte
- Achtergrond app vernieuwing: Schakel in op iOS voor betrouwbare synchronisatie
- Foreground service: Schakel in op Android voor consistente back-up
Machine Learning functies
Gezichtsherkenning
Immich’s gezichtsherkenning herkent en groepeert gezichten automatisch over je bibliotheek:
- Initiële verwerking: Na upload, analyseert de ML service elke foto op gezichten
- Gezichtsgroepering: Gelijke gezichten worden gegroepeerd
- Handmatige toewijzing: Bekijk groepen en toon namen aan personen
- Continue leerproces: Naarmate je meer foto’s tagt, verbetert de nauwkeurigheid
Configuratie:
# In docker-compose.yml, ML service omgeving
MACHINE_LEARNING_MODEL_CACHE=/cache
MACHINE_LEARNING_WORKERS=1 # Verhoog met meer CPU cores
Object detectie en CLIP zoekfunctie
Immich gebruikt CLIP (Contrastive Language-Image Pre-training) voor semantische zoekfunctie:
- Zoek naar concepten zonder tags: “berg landschap”, “verjaardags taart”, “rode auto”
- Natuurlijke taal queries begrijpen context en relaties
- Werkt over talen (hoewel Engels meestal de beste resultaten oplevert)
GPU versnelling
Voor aanzienlijk snellere ML verwerking, schakel GPU ondersteuning in:
NVIDIA GPU met CUDA
# In docker-compose.yml, ML service
services:
immich-machine-learning:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
Zorg ervoor dat je NVIDIA Container Toolkit geïnstalleerd hebt:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker
Back-up strategieën
Hoewel Immich je foto’s back-uppt van mobiele apparaten, moet je Immich zelf ook back-uppen:
Wat te back-uppen
- Foto bibliotheek: De
UPLOAD_LOCATIONdirectory met originele foto’s - Database: PostgreSQL database met metadata en relaties
- Configuratie:
.envbestand endocker-compose.yml
Database back-up
Automatische dagelijkse back-up script
#!/bin/bash
# sla op als ~/immich/backup.sh
BACKUP_DIR=~/immich-backups
DATE=$(date +%Y%m%d_%H%M%S)
# Maak back-up directory aan
mkdir -p $BACKUP_DIR
# Back-up PostgreSQL database
docker exec -t immich-postgres pg_dumpall -c -U postgres | \
gzip > $BACKUP_DIR/immich_db_$DATE.sql.gz
# Bewaar alleen de laatste 30 dagen van back-ups
find $BACKUP_DIR -name "immich_db_*.sql.gz" -mtime +30 -delete
echo "Back-up voltooid: $BACKUP_DIR/immich_db_$DATE.sql.gz"
Maak uitvoerbaar en plannen met cron:
chmod +x ~/immich/backup.sh
crontab -e
# Voeg regel toe: 0 2 * * * ~/immich/backup.sh
Voor meer informatie over bash scripting, automatisering en cron jobs, verwijzen wij naar onze uitgebreide Bash Cheat Sheet.
Foto bibliotheek back-up
Je foto bibliotheek moet apart back-uppen naar een andere locatie:
Optie 1: Rsync naar NAS
rsync -avz --delete ~/immich/library/ nas:/backups/immich-photos/
Optie 2: Cloud back-up (versleuteld)
# Gebruik rclone met encryptie
rclone sync ~/immich/library/ remote:immich-backup-encrypted/ --encrypt
Optie 3: Lokale externe schijf
rsync -avz --delete ~/immich/library/ /mnt/backup-drive/immich/
Onderhoud en updates
Regelmatige onderhoud taken
Monitor schijfruimte
# Controleer schijfgebruik
df -h ~/immich/library
df -h ~/immich/database
# Controleer Docker volumes
docker system df
Monitor prestaties
# Bekijk resourcegebruik
docker stats
# Controleer specifieke service logs
docker compose logs immich-server --tail=100
docker compose logs immich-machine-learning --tail=100
Immich updaten
Immich wordt vaak bijgewerkt met nieuwe functies en bugfixes. Werk regelmatig bij:
cd ~/immich
# Back-up database voor het updaten
docker exec -t immich-postgres pg_dumpall -c -U postgres > backup_pre_update.sql
# Haal nieuwste images op
docker compose pull
# Stop en verwijder oude containers
docker compose down
# Start met nieuwe images
docker compose up -d
# Controleer logs op eventuele problemen
docker compose logs -f
Database onderhoud
Periodiek database onderhoud zorgt voor optimale prestaties:
# Vacuum en analyseer database
docker exec -it immich-postgres psql -U postgres -d immich -c "VACUUM ANALYZE;"
# Controleer database grootte
docker exec -it immich-postgres psql -U postgres -d immich -c \
"SELECT pg_size_pretty(pg_database_size('immich'));"
Prestatie optimalisatie
Opslag optimalisatie
Gebruik SSD voor database: PostgreSQL profiteert aanzienlijk van SSD opslag. Overweeg:
volumes:
pgdata:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/ssd/immich-db
Afscheiden foto opslag: Houd grote foto bibliotheek op HDD terwijl database op SSD blijft:
UPLOAD_LOCATION=/mnt/hdd/immich-photos
Database prestatie tuning
Voor bibliotheek met 50.000+ foto’s, tune PostgreSQL:
# In docker-compose.yml, postgres service omgeving
POSTGRES_SHARED_BUFFERS=256MB
POSTGRES_EFFECTIVE_CACHE_SIZE=1GB
POSTGRES_MAINTENANCE_WORK_MEM=64MB
POSTGRES_CHECKPOINT_COMPLETION_TARGET=0.9
POSTGRES_WAL_BUFFERS=16MB
POSTGRES_DEFAULT_STATISTICS_TARGET=100
Machine Learning prestatie
Batch verwerking: Verwerk meerdere foto’s tegelijk:
MACHINE_LEARNING_WORKERS=4 # Match CPU core count
GPU versnelling: Zoals eerder vermeld, biedt GPU versnelling 5-10x snelheidstoename voor ML taken.
Beveiligingsbest practices
Authenticatie en toegangscontrole
- Sterke wachtwoorden: Gebruik wachtwoordmanager om complexe wachtwoorden te genereren en op te slaan
- Twee-factor authenticatie: Schakel 2FA in voor admin account (indien ondersteund in jouw versie)
- Regelmatige toegangscontrole: Periodiek overzicht van gebruikersaccounts en verwijder ongebruikte accounts
Netwerkbeveiliging
Reverse proxy met SSL: Nooit Immich direct blootstellen aan internet zonder HTTPS:
# Gebruik Let's Encrypt voor gratis SSL certificaten
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d photos.yourdomain.com
Firewall configuratie:
# Stel alleen benodigde poorten in
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP (omleiden naar HTTPS)
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
VPN of Tailscale: Voor maximale beveiliging, toegang tot Immich via VPN:
- Installeer Tailscale op je server en apparaten
- Toegang via Tailscale IP (100.x.x.x)
- Geen poorten blootgesteld aan het publieke internet
Container beveiliging
Regelmatige updates: Houd Docker images up-to-date om beveiligingsproblemen te patchen
Rootloos uitvoeren: Configureer Docker rootloos modus voor extra isolatie
Resource limieten: Voorkom DoS aanvallen door container resources te beperken:
services:
immich-server:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
Probleemoplossing van veelvoorkomende problemen
Upload mislukkingen
Symptoom: Foto’s falen om te uploaden vanaf mobiele app
Oplossingen:
- Controleer server schijfruimte:
df -h - Controleer reverse proxy
client_max_body_sizeinstelling - Controleer server logs:
docker compose logs immich-server - Zorg dat mobiele app de nieuwste versie heeft
Machine Learning niet verwerken
Symptoom: Gezichtsherkenning of zoekfunctie werkt niet
Oplossingen:
- Controleer ML container status:
docker compose ps immich-machine-learning - Bekijk ML logs:
docker compose logs immich-machine-learning - Herstart ML service:
docker compose restart immich-machine-learning - Controleer of modelbestanden gedownload zijn:
ls ~/immich/machine-learning/cache/
Database verbinding fouten
Symptoom: Webinterface toont database verbinding fouten
Oplossingen:
- Controleer of PostgreSQL container draait:
docker compose ps immich-postgres - Controleer database logs:
docker compose logs immich-postgres - Controleer juiste wachtwoord in
.envbestand - Test verbinding:
docker exec -it immich-postgres psql -U postgres
Snelheid problemen
Symptoom: Webinterface of zoekfunctie is traag
Oplossingen:
- Controleer systeem resources: CPU, RAM, schijf I/O
- Voer database vacuum uit:
VACUUM ANALYZE; - Herstart diensten:
docker compose restart - Bekijk PostgreSQL prestatie instellingen
- Overweeg hardware upgrade (SSD, meer RAM)
Mobiele app niet synchroniseren
Symptoom: Foto’s worden niet back-upped vanaf mobiele apparaat
Oplossingen:
- Controleer of achtergrond vernieuwing ingeschakeld is (iOS)
- Schakel foreground service in (Android)
- Controleer WiFi-only instellingen als op mobiele data
- Controleer of server URL toegankelijk is vanaf mobiele netwerk
- Bekijk app permissies voor foto toegang
- Wis app cache en herlog in
Migreren van andere diensten
Van Google Photos
Exporteer je data:
- Ga naar Google Takeout (takeout.google.com)
- Selecteer Google Photos
- Kies export formaat en grootte
- Download archieven
Importeer naar Immich:
- Pak gedownloade archieven uit
- Gebruik Immich CLI tool of web upload
- Metadata wordt behouden van JSON sidecar bestanden
# Gebruik Immich CLI (installeer vanuit releases)
immich upload --recursive /path/to/google-photos-export/
Van iCloud Photos
Export:
- Bezoek iCloud.com
- Selecteer foto’s om te downloaden
- Of gebruik iCloud voor Windows/Photos app export
Import: Zelfde als Google Photos, upload via webinterface of CLI tool
Van lokale opslag
Externe bibliotheek functie: In plaats van uploaden, wijst Immich naar bestaande foto directory:
- Navigeer naar Beheer > Externe bibliotheek
- Voeg bibliotheek pad toe (moet toegankelijk zijn vanaf Docker container)
- Immich scant en indexeert zonder bestanden te kopiëren
- Bespaart aanzienlijke schijfruimte en tijd
# In docker-compose.yml, voeg volume mount toe
volumes:
- /mnt/existing-photos:/mnt/external-library:ro
Community en ondersteuning
Officiële bronnen
- GitHub: https://github.com/immich-app/immich
- Documentatie: https://immich.app/docs
- Discord: Actieve community voor real-time hulp
- Reddit: r/immich voor discussies en tips
Bijdragen
Immich is open-source en welkom bijdragen:
- Bugrapporten: Indien gedetailleerde issue rapporten op GitHub
- Functie-aanvragen: Bespreek op Discord of GitHub Discussies
- Code bijdragen: Indien pull requests volgens bijdrage richtlijnen
- Documentatie: Verbeter documentatie voor betere gebruikerservaring
- Vertalingen: Help Immich te lokaliseren naar jouw taal
Alternatieve tools
Als Immich niet aan jouw behoeften voldoet, overweeg:
- PhotoPrism: Meer rijp, functierijk, andere architectuur
- Piwigo: Traditionele galerij-stijl interface
- Nextcloud Photos: Deel van groter Nextcloud ecosystem
- Photoview: Simpler, lichtgewicht alternatief
- LibrePhotos: Een ander alternatief voor Google Photos met AI functies
Conclusie
Zelfhosten van Immich biedt een krachtige, privé alternatief voor commerciële cloud foto diensten. Hoewel het een initiële technische setup en aanhoudend onderhoud vereist, maken de voordelen van volledige privacy controle, geen opslag limieten en vrijheid van abonnementskosten het waard voor veel gebruikers.
De combinatie van automatische mobiele back-up, AI-gestuurde zoekfunctie, gezichtsherkenning en moderne interface creëert een ervaring vergelijkbaar met commerciële aanbiedingen terwijl je data onder jouw controle blijft. Of je nu een privacy enthousiast, kostenefficiënte gebruiker met grote foto bibliotheek of technisch professional die hands-on infrastructuur ervaring wil, biedt Immich een overtuigende oplossing.
Begin klein met een thuis server of VPS, test met een subset van je foto bibliotheek en migreer geleidelijk terwijl je comfortabel wordt met het systeem. De actieve community en frequente updates zorgen ervoor dat Immich blijft verbeteren en functies toevoegen.
Je herinneringen zijn kostbaar - neem controle over ze met Immich.
Handige links
- Officiële website: https://immich.app
- GitHub-opslagplaats: https://github.com/immich-app/immich
- Documentatie: https://immich.app/docs/overview/introduction
- Installatiehandleiding: https://immich.app/docs/install/docker-compose
- Discord-gemeenschap: https://discord.gg/immich
- Mobiele apps:
- Docker Hub: https://hub.docker.com/r/ghcr.io/immich-app
- Release-aantekeningen: https://github.com/immich-app/immich/releases
- Awesome Immich: https://github.com/varun-raj/awesome-immich (Gemeenschapsbronnen)
- r/immich: https://reddit.com/r/immich