Självhosting av Immich: Privat fotomoln
Dina foton på självvärd AI-drivet säkerhetskopiering
Immich är en revolutionerande open-source, självhostad lösning för hantering av foton och videoklipp som ger dig full kontroll över dina minnen. Med funktioner som konkurrerar med Google Photos - inklusive AI-drivet ansiktsigenkänning, smart sökning och automatisk mobilbackup - allt medan dina data förblir privata och säkra på din egen server.
Precis som Personlig kunskapshantering hjälper dig att organisera och bevara dina tankar och information, hjälper Immich dig att organisera och bevara dina visuella minnen.

Vad är Immich?
Immich är en open-source, självhostad alternativ till kommersiella molntjänster för fotohantering som Google Photos och iCloud. Byggd med moderna tekniker inklusive TypeScript, PostgreSQL och maskininlärning, erbjuder Immich en funktionell plattform för att säkerhetskopiera, organisera och bläddra i dina foton och videoklipp.
Nyckelfunktioner
Privatskyddsdesign: Alla dina foton förblir på din infrastruktur. Inga tredjepartsservrar, inget datamining, inga integritetsproblem. Dina minnen tillhör dig.
Automatisk mobilbackup: Nativa iOS- och Android-appar erbjuder automatisk bakgrundssäkerhetskopiering, liknande Google Photos. Dina foton säkerhetskopieras några sekunder efter att de tagits.
AI-drivet sök: Med hjälp av maskininlärningsmodeller inklusive CLIP och ansiktsigenkänning, möjliggör Immich semantisk sökning. Sök efter “strand solnedgång”, “hund som leker” eller specifika personer utan manuell märkning.
Ansiktsigenkänning: Automatisk detektering och gruppering av ansikten i dina foton. Immich identifierar personer i hela ditt bibliotek, vilket gör det enkelt att hitta foton av specifika individer.
Modern webbgränssnitt: Vackert, responsivt webbgränssnitt för att bläddra, organisera och dela dina foton från vilken enhet som helst med webbläsare.
Multi-användarstöd: Skapa konton för familjemedlemmar, var och en med sitt eget privata bibliotek. Dela utvalda album medan du bibehåller privatliv för personliga foton.
Live Photo-stöd: Fullt stöd för iOS Live Photos och Android Motion Photos, vilket bevarar både stillbild och videokomponent.
Metadatabevarande: EXIF-data inklusive plats, kamerainställningar och tidsstämplar bevaras. Visa dina foton på en karta baserat på GPS-koordinater.
Stöd för externa bibliotek: Importera befintliga fotobibliotek från extern lagring utan att kopiera filer, vilket sparar utrymme. Liksom hur verktyg som Obsidian hjälper till att hantera och organisera textbaserad kunskap, erbjuder Immich kraftfull organisation för visuella medier.
Varför självhosta dina foton?
Full kontroll över privatliv
När du använder kommersiella molntjänster lagras dina foton på servrar du inte kontrollerar. De kan analyseras för reklam, inkluderas i maskininlärningsträningsdata eller åtkommas av tredjeparter. Med Immich lämnar dina foton aldrig din server om du inte explicit delar dem.
Inga lagringsbegränsningar
Molntjänster debiterar baserat på lagringsnivåer. Med självhosting är din enda begränsning din hårdvarukapacitet. En 10TB-hårddisk kostar mindre än två års premiummolnlagring.
Kostnadseffektivitet
Efter initial investering i hårdvara har självhosting minimala löpande kostnader. Inga månadskostnader, inga överraskningsavgifter när du överskrider lagringsgränserna.
Datamängd
Molntjänster kan ändra villkor, höja priser eller lägga ner helt. Din självhostade lösning förblir under din kontroll oavsett.
Lärandeupplevelse
Självhosting av Immich ger praktisk erfarenhet av Docker, omvända proxys, SSL-certifikat, databashantering och serveradministration - värdefulla färdigheter för någon utvecklare eller DevOps-professionell.
Arkitekturoversikt
Immich följer en mikrotjänstarkitektur med flera komponenter:
Immich Server: Huvud-API-server som hanterar autentisering, fotouppladdning och databashantering. Byggd med Node.js och TypeScript.
Immich Maskininlärning: Separat Python-tjänst som kör TensorFlow-modeller för ansiktsigenkänning, objektdetektering och CLIP-baserad semantisk sökning.
Immich Web: React-baserat webbgränssnitt som tillhandahåller användargränssnittet.
PostgreSQL: Relational databas som lagrar metadata, användarinformation och relationer mellan foton, personer och album.
Redis: Minneskarta för sessionshantering och jobbköhantering.
TypeSense (valfritt): Sökmotor för förbättrad sökkapacitet och prestanda.
Alla komponenter körs som Docker-containrar, orkestrerade med Docker Compose för förenklad distribution och hantering.
Hårdvarukrav
Minimikrav
- CPU: 2 kärnor (x86_64 eller ARM64)
- RAM: 4GB (8GB rekommenderas)
- Lagring: 10GB för applikation + storlek på fotobibliotek
- Nätverk: 100 Mbps för lokal åtkomst
Rekommenderade specifikationer
- CPU: 4+ kärnor med god enkeltrådsprestanda
- RAM: 8-16GB (mer för större bibliotek)
- Lagring: SSD för databas och applikation, HDD för fotolagring
- GPU: Valfritt men accelererar betydligt ML-uppgifter (NVIDIA med CUDA-stöd)
Lagringsöverväganden
Planera för cirka 1,15 gånger storleken på ditt nuvarande fotobibliotek för att räkna med miniatyrbilder och flera upplösningar. Använd SSD-lagring för PostgreSQL-databasen för bättre prestanda.
För stora bibliotek (100 000+ foton), överväg:
- NAS med RAID för dataduplicering
- Separat SSD för databas
- NVMe-cachelager för frekvent åtkomna foton
Installationsguide
Förutsättningar
Innan du installerar Immich, se till att du har:
- Linux-server: Ubuntu 22.04 LTS eller Debian 12 rekommenderas (se vår omfattande guide på Hur man installerar Ubuntu 24.04 & användbara verktyg för detaljerade installationsinstruktioner)
- Docker: Version 20.10 eller nyare
- Docker Compose: Version 2.0 eller nyare
- Domännamn: Valfritt men rekommenderas för extern åtkomst
- Omvänd proxy: Nginx eller Caddy för SSL-avslutning
Steg-för-steg-installation
1. Installera Docker och Docker Compose
# Uppdatera systempaket
sudo apt update && sudo apt upgrade -y
# Installera Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Lägg till användare till docker-gruppen
sudo usermod -aG docker $USER
# Installera Docker Compose
sudo apt install docker-compose-plugin
För mer detaljer om curl-kommandon och alternativ, se vår cURL Cheatsheet. Om du är nybörjare med Docker, erbjuder vår Docker Cheatsheet grundläggande kommandon och begrepp.
2. Skapa Immich-katalogstruktur
# Skapa applikationskatalog
mkdir -p ~/immich/{library,database,machine-learning}
cd ~/immich
# Ladda ner docker-compose.yml
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# Ladda ner miljömall
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Om du är nybörjare med bash-skriptning och kommandoradsoperationer, erbjuder vår Bash Cheat Sheet användbar referens för vanliga kommandon och katalogoperationer.
3. Konfigurera miljövariabler
Redigera .env-filen med dina inställningar:
# Databaskonfiguration
DB_PASSWORD=ditt_säkra_lösenord_här
DB_DATABASE_NAME=immich
DB_USERNAME=postgres
# Uppladdningsplats
UPLOAD_LOCATION=./library
# Maskininlärning
MACHINE_LEARNING_ENABLED=true
# Tidszon
TZ=Europe/Stockholm
# Offentlig URL (för extern åtkomst)
IMMICH_SERVER_URL=https://foton.dittdomännamn.se
Viktigt: Generera ett starkt slumpmässigt lösenord för DB_PASSWORD:
openssl rand -base64 32
4. Starta Immich
# Starta alla tjänster
docker compose up -d
# Kontrollera tjänststatus
docker compose ps
# Visa loggar
docker compose logs -f
Det här är bara grunderna - för en omfattande referens till Docker Compose-kommandon och operationer, se vår Docker Compose Cheatsheet.
5. Åtkomst till webbgränssnittet
Gå till http://din-server-ip:2283 och skapa ditt admin-konto. Detta första konto blir systemadministratören.
Konfigurera extern åtkomst
För säker extern åtkomst, konfigurera en omvänd proxy:
Nginx-konfigurationsexempel
server {
listen 443 ssl http2;
server_name foton.dittdomännamn.se;
ssl_certificate /sökväg/till/fullchain.pem;
ssl_certificate_key /sökväg/till/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-konfigurationsexempel (Enklare med automatisk HTTPS)
foton.dittdomännamn.se {
reverse_proxy localhost:2283
@uploads {
path /api/upload/*
}
request_body @uploads {
max_size 50GB
}
}
Mobilapp-installation
iOS
- Ladda ner Immich från App Store
- Ange din server-URL (https://foton.dittdomännamn.se)
- Logga in med dina uppgifter
- Aktivera automatisk backup i Inställningar
- Välj vilka album som ska säkerhetskopieras (eller alla foton)
- Konfigurera backup-inställningar (endast WiFi, endast vid laddning etc.)
Android
- Ladda ner Immich från Google Play Store eller F-Droid
- Ange server-URL och uppgifter
- Ge tillåtelse för åtkomst till foton/videoklipp
- Konfigurera automatiska backup-inställningar
- Aktivera bakgrundstjänst för pålitlig bakgrundssäkerhetskopiering
Backup-konfigurationsråd
- Endast WiFi: Aktivera för att undvika mobilavgifter
- Endast vid laddning: Förhindra batteriförbrukning under stora uppladdningar
- Inkludera videoklipp: Videoklipp förbrukar betydande lagringsutrymme och bandbredd
- Bakgrundsuppdatering: Aktivera på iOS för pålitlig synkronisering
- Framgrundstjänst: Aktivera på Android för konsekvent backup
Maskininlärningsfunktioner
Ansiktsigenkänning
Immichs ansiktsigenkänning upptäcker och grupperar automatiskt ansikten i ditt bibliotek:
- Initial bearbetning: Efter uppspelning analyserar ML-tjänsten varje foto för ansikten
- Ansiktsgruppering: Liknande ansikten grupperas tillsammans
- Manuell tilldelning: Granska grupper och tilldela namn till personer
- Kontinuerligt lärande: Ju fler foton du märker, desto bättre blir noggrannheten
Konfiguration:
# I docker-compose.yml, ML-tjänstens miljö
MACHINE_LEARNING_MODEL_CACHE=/cache
MACHINE_LEARNING_WORKERS=1 # Öka med fler CPU-kärnor
Objektdetektion och CLIP-sökning
Immich använder CLIP (Contrastive Language-Image Pre-training) för semantisk sökning:
- Sök efter begrepp utan märkning: “bergslandskap”, “födselsdagsbakelse”, “röd bil”
- Naturliga språkfrågor förstår sammanhang och relationer
- Fungerar över språkgränser (fast engelska ger vanligtvis bäst resultat)
GPU-besparing
För betydligt snabbare ML-bearbetning, aktivera GPU-stöd:
NVIDIA GPU med CUDA
# I docker-compose.yml, ML-tjänst
services:
immich-machine-learning:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
Se till att du har NVIDIA Container Toolkit installerat:
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
Säkerhetsstrategier
Trots att Immich säkerhetskopierar dina foton från mobila enheter, bör du också säkerhetskopiera Immich själv:
Vad man ska säkerhetskopiera
- Fotobibliotek:
UPLOAD_LOCATION-katalogen som innehåller originalfoton - Databas: PostgreSQL-databas med metadata och relationer
- Konfiguration:
.env-fil ochdocker-compose.yml
Databassäkerhetskopiering
Automatiserad daglig säkerhetskopieringsskript
#!/bin/bash
# spara som ~/immich/backup.sh
BACKUP_DIR=~/immich-backups
DATE=$(date +%Y%m%d_%H%M%S)
# Skapa säkerhetskopieringskatalog
mkdir -p $BACKUP_DIR
# Säkerhetskopiera PostgreSQL-databas
docker exec -t immich-postgres pg_dumpall -c -U postgres | \
gzip > $BACKUP_DIR/immich_db_$DATE.sql.gz
# Bevara endast de senaste 30 dagarnas säkerhetskopior
find $BACKUP_DIR -name "immich_db_*.sql.gz" -mtime +30 -delete
echo "Säkerhetskopiering slutförd: $BACKUP_DIR/immich_db_$DATE.sql.gz"
Gör exekverbar och schemalägg med cron:
chmod +x ~/immich/backup.sh
crontab -e
# Lägg till rad: 0 2 * * * ~/immich/backup.sh
För mer information om bash-skriptning, automatisering och cron-jobb, se vårt omfattande Bash Cheat Sheet.
Fotobibliotekssäkerhetskopiering
Ditt fotobibliotek bör säkerhetskopieras separat till en annan plats:
Alternativ 1: Rsync till NAS
rsync -avz --delete ~/immich/library/ nas:/backups/immich-photos/
Alternativ 2: Molnsäkerhetskopiering (krypterad)
# Användande av rclone med kryptering
rclone sync ~/immich/library/ remote:immich-backup-encrypted/ --encrypt
Alternativ 3: Lokalt extern enhet
rsync -avz --delete ~/immich/library/ /mnt/backup-drive/immich/
Underhåll och uppdateringar
Reguljära underhållsuppgifter
Övervaka diskutrymme
# Kontrollera diskutnyttjande
df -h ~/immich/library
df -h ~/immich/database
# Kontrollera Docker-volymer
docker system df
Övervaka prestanda
# Visa resursanvändning
docker stats
# Kontrollera specifika tjänstloggar
docker compose logs immich-server --tail=100
docker compose logs immich-machine-learning --tail=100
Uppdatering av Immich
Immich uppdateras ofta med nya funktioner och buggfixar. Uppdatera regelbundet:
cd ~/immich
# Säkerhetskopiera databas innan uppdatering
docker exec -t immich-postgres pg_dumpall -c -U postgres > backup_pre_update.sql
# Hämta senaste bilderna
docker compose pull
# Stäng och ta bort gamla containrar
docker compose down
# Starta med nya bilder
docker compose up -d
# Kontrollera loggar för eventuella problem
docker compose logs -f
Databasunderhåll
Periodiskt databasunderhåll säkerställer optimal prestanda:
# Vacuum och analysera databas
docker exec -it immich-postgres psql -U postgres -d immich -c "VACUUM ANALYZE;"
# Kontrollera databastorlek
docker exec -it immich-postgres psql -U postgres -d immich -c \
"SELECT pg_size_pretty(pg_database_size('immich'));"
Prestandaoptimering
Lagringsoptimering
Använd SSD för databas: PostgreSQL drar stor nytta av SSD-lagring. Överväg:
volumes:
pgdata:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/ssd/immich-db
Separat fotolagring: Håll stora fotobibliotek på HDD medan databasen förblir på SSD:
UPLOAD_LOCATION=/mnt/hdd/immich-photos
Databasprestandaoptimering
För bibliotek med 50 000+ foton, ställ in PostgreSQL:
# I docker-compose.yml, postgres-tjänstens miljö
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
Maskininlärningsprestanda
Batchbearbetning: Bearbeta flera foton samtidigt:
MACHINE_LEARNING_WORKERS=4 # Matcha CPU-kärnantal
GPU-besparing: Som nämnts tidigare ger GPU-besparing 5-10 gånger snabbare ML-uppgifter.
Säkerhetsbästa praxis
Autentisering och åtkomstkontroll
- Starka lösenord: Använd lösenordshanterare för att generera och lagra komplexa lösenord
- Tvåfaktorsautentisering: Aktivera 2FA för admin-konto (om stöds i din version)
- Regelbundna åtkomstgranskningar: Granska periodiskt användarkonton och ta bort oanvända
Nätverkssäkerhet
Omvänd proxy med SSL: Exponera aldrig Immich direkt på internet utan HTTPS:
# Använd Let's Encrypt för gratis SSL-certifikat
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d photos.yourdomain.com
Brandväggskonfiguration:
# Tillåt endast nödvändiga portar
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP (omdirigera till HTTPS)
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
VPN eller Tailscale: För maximal säkerhet, åtkomst Immich via VPN:
- Installera Tailscale på din server och enheter
- Åtkomst via Tailscale-IP (100.x.x.x)
- Inga portar exponerade mot det offentliga internet
Container-säkerhet
Regelbundna uppdateringar: Håll Docker-bilder uppdaterade för att patcha säkerhetshål
Kör rootless: Konfigurera Docker rootless-läge för ytterligare isolering
Resursbegränsningar: Förhindra DoS-attacker genom att begränsa containerns resurser:
services:
immich-server:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
Felsökning av vanliga problem
Uppspelningsfel
Symtom: Foton misslyckas med att laddas upp från mobilapp
Lösningar:
- Kontrollera serverdiskutrymme:
df -h - Verifiera omvänd proxy
client_max_body_size-inställning - Kontrollera serverloggar:
docker compose logs immich-server - Se till att mobilappen har senaste versionen
Maskininlärning bearbetar inte
Symtom: Ansiktsigenkänning eller sökning fungerar inte
Lösningar:
- Kontrollera ML-containers status:
docker compose ps immich-machine-learning - Visa ML-loggar:
docker compose logs immich-machine-learning - Starta om ML-tjänst:
docker compose restart immich-machine-learning - Verifiera att modellfiler har laddats ner:
ls ~/immich/machine-learning/cache/
Databasanslutningsfel
Symtom: Webbgränssnitt visar databasanslutningsfel
Lösningar:
- Verifiera att PostgreSQL-container körs:
docker compose ps immich-postgres - Kontrollera databasloggar:
docker compose logs immich-postgres - Verifiera rätt lösenord i
.env-filen - Testanslutning:
docker exec -it immich-postgres psql -U postgres
Långsam prestanda
Symtom: Webbgränssnitt eller sökningar är långsamma
Lösningar:
- Kontrollera systemresurser: CPU, RAM, disk-I/O
- Kör databasvacuum:
VACUUM ANALYZE; - Starta om tjänster:
docker compose restart - Granska PostgreSQL-prestandainställningar
- Överväg hårdvaruuppgradering (SSD, mer RAM)
Mobilapp synkroniserar inte
Symtom: Foton synkroniseras inte från mobilenhet
Lösningar:
- Verifiera att bakgrundsuppdatering är aktiverad (iOS)
- Aktivera framgrundstjänst (Android)
- Kontrollera WiFi-endast-inställningar om på mobildata
- Verifiera att server-URL är tillgänglig från mobilnätverk
- Granska appens behörigheter för fototillgång
- Rensa appens cache och logga in igen
Migrering från andra tjänster
Från Google Photos
Exportera dina data:
- Gå till Google Takeout (takeout.google.com)
- Välj Google Photos
- Välj exportformat och storlek
- Ladda ner arkiv
Importera till Immich:
- Paketera ner laddade arkiv
- Använd Immich CLI-verktyg eller webuppspelning
- Metadata bevaras från JSON-bifilfiler
# Användande av Immich CLI (installera från releaser)
immich upload --recursive /path/to/google-photos-export/
Från iCloud Photos
Exportera:
- Besök iCloud.com
- Välj foton att ladda ner
- Eller använd iCloud för Windows/Fotos app-export
Importera: Likt Google Photos, ladda upp via webbgränssnitt eller CLI-verktyg
Från lokal lagring
Extern biblioteksfunktion: Istället för att ladda upp, peka Immich på befintlig fotokatalog:
- Navigera till Administration > Externa bibliotek
- Lägg till biblioteksväg (måste vara tillgänglig från Docker-container)
- Immich skannar och indexerar utan att kopiera filer
- Sparar betydande diskutrymme och tid
# I docker-compose.yml, lägg till volymmontering
volumes:
- /mnt/existing-photos:/mnt/external-library:ro
Community och support
Officiella resurser
- GitHub: https://github.com/immich-app/immich
- Dokumentation: https://immich.app/docs
- Discord: Aktiv community för realtidshjälp
- Reddit: r/immich för diskussioner och tips
Bidrag
Immich är öppen källkod och välkomnar bidrag:
- Buggräkningsrapporter: Skicka detaljerade problemrapporter på GitHub
- Funktionförfrågningar: Diskutera på Discord eller GitHub Discussions
- Kodbidrag: Skicka pull requests enligt bidragsriktlinjer
- Dokumentation: Förbättra dokumentation för bättre användarupplevelse
- Översättningar: Hjälp till att lokalisera Immich till ditt språk
Alternativa verktyg
Om Immich inte möter dina behov, överväg:
- PhotoPrism: Mer mogen, funktionell rik, annan arkitektur
- Piwigo: Traditionell galleri-stilgränssnitt
- Nextcloud Photos: Del av större Nextcloud-ekosystem
- Photoview: Enklare, lättviktsalternativ
- LibrePhotos: Ett annat Google Photos-alternativ med AI-funktioner
Slutsats
Att självhosta Immich erbjuder en kraftfull, privat alternativ till kommersiella molnbaserade fototjänster. Även om det kräver initial teknisk uppsättning och pågående underhåll, ger fördelarna med fullständig privatkontroll, inga lagringsbegränsningar och frihet från abonnemangsavgifter det värt för många användare.
Kombinationen av automatisk mobilbackup, AI-drivna sökfunktioner, ansiktsigenkänning och modern gränssnitt skapar en upplevelse som kan mäta sig med kommersiella erbjudanden, samtidigt som dina data förblir under din kontroll. Oavsett om du är en privathetsentusiast, kostnadsmedveten användare med stora fotobibliotek eller en tech-professionell som vill ha praktisk erfarenhet av infrastruktur, erbjuder Immich ett övertygande alternativ.
Börja i liten skala med en hemserver eller VPS, testa med en del av ditt fotobibliotek och migrera gradvis när du känner dig bekväm med systemet. Den aktiva gemenskapen och de frekventa uppdateringarna säkerställer att Immich kommer att fortsätta förbättras och lägga till funktioner.
Dina minnen är värdefulla - ta kontroll över dem med Immich.
Användbara länkar
- Officiell webbplats: https://immich.app
- GitHub-repository: https://github.com/immich-app/immich
- Dokumentation: https://immich.app/docs/overview/introduction
- Installationsguide: https://immich.app/docs/install/docker-compose
- Discord-gemenskap: https://discord.gg/immich
- Mobilappar:
- Docker Hub: https://hub.docker.com/r/ghcr.io/immich-app
- Uppdateringslogg: https://github.com/immich-app/immich/releases
- Awesome Immich: https://github.com/varun-raj/awesome-immich (Gemenskapsresurser)
- r/immich: https://reddit.com/r/immich