Immich – hantera dina bilder privat och tryggt

Tänk om du kunde ta tillbaka kontrollen över alla dina minnen – bilder och videor från semestrar, vardagsliv och speciella ögonblick – och förvara dem på ett sätt som är både vackert och helt privat. Det är precis vad Immich handlar om.

https://youtu.be/xEB9JjV96mU

Immich är ett modernt, självhostat alternativ till Google Photos, byggt med användaren i fokus. Det låter dig skapa ditt eget personliga bildmoln där du själv bestämmer hur innehållet lagras, hanteras och delas. Inga abonnemang, inga datainsamlande jättar – bara du och dina minnen, på dina villkor.

För den som bryr sig om integritet, vill undvika månatliga avgifter och samtidigt ha en elegant och kraftfull plattform för att organisera sina bilder är Immich en gamechanger. Med andra ord: du får samma känsla som med en kommersiell tjänst, men med friheten och kontrollen som bara ett självhostat system kan ge.

Hur står sig Immich mot Google Photos?

Trots att det är ett open source-projekt och körs på egen server, levererar Immich en användarupplevelse som på många sätt matchar – eller till och med överträffar – vad Googles lösning erbjuder. Här nedan ser du en jämförelse mellan de två plattformarna, så du själv kan avgöra om det är dags att ta steget bort från de stora molnen.

FunktionImmichGoogle Photos
Ansiktsigenkänning
Objekt- och plats-sökning
Delning med andra
Backup och synkronisering✅ (via klient)
Videostöd
MolnlagringEgen serverGoogles servrar
KostnadLåg (egen drift)Månatlig prenumeration vid stora datamängder

Varför Immich istället för Google Photos?

  • Personliga motiv: integritet, kontroll över sina data
  • Ekonomiska fördelar: kostnaden för Immich kontra Google Photos
  • Möjlighet att stödja ett open source-projekt

Så fungerar Immich bakom kulisserna

När man driftar Immich själv med Docker får man ett kraftfullt system uppdelat i mindre byggstenar (tjänster) som var och en har ett specifikt ansvar. Det kan verka krångligt att Immich körs som flera separata containers istället för ett enda program – men det har klara fördelar. Du kan starta om eller uppdatera en del av systemet utan att resten påverkas, vilket gör det mer stabilt och lättare att underhålla. Dessutom ger det bättre skalbarhet och säkerhet, eftersom varje tjänst har ett tydligt ansvar.

Immich-server

Ansvar: Kärnan i systemet – hanterar hela webbtjänsten där du laddar upp, tittar på, och administrerar dina bilder och videor.
Funktioner:

  • API och webbgränssnittet som användaren interagerar med
  • Tar emot uppladdningar från mobilklienter eller webbläsare
  • Visar bilder, videor, kartor och metadata
  • Hanterar autentisering, användare och inställningar

Den här tjänsten monterar volymerna för bilder (UPLOAD_LOCATION) och metadata, och är det du egentligen “besöker” när du öppnar Immich i webbläsaren.

Immich-machine-learning

Ansvar: Analys av bilder med hjälp av AI – allt som gör Immich smart!
Funktioner:

  • Ansiktsigenkänning
  • Objektklassificering
  • Platsidentifiering (via metadata och bildinnehåll)
  • Genererar grupperingar och sökbara taggar

Använder en egen cache för AI-modeller och delar bilder med immich-server via gemensamma volymer.

Redis

Ansvar: Snabb datalagring och kommunikation mellan tjänster.
Funktioner:

  • Mellanlagrar kortlivad data för att öka prestanda
  • Används för köer, notiser och sessionshantering

Redis gör att Immich reagerar blixtsnabbt när du t.ex. söker eller laddar upp något

Database (Postgres)

Ansvar: Lagrar all strukturerad information – databasen bakom allt.
Funktioner:

  • Användare, album, bildmetadata, inställningar
  • Integrerar vektordatabaser för smart sökning och taggning

Alla bilder ligger som filer, men metadata – som plats, datum, personer – lagras här och knyts ihop med bildfilerna

Installera med Docker compose

Nedan följer min docker compose. UPLOAD_LOCATION syftar till den plats där bilder ska sparas när du laddar upp via webbläsaren eller appen. Jag har ett stort bibliotek på över 500 Gb som är sorterat i mappar, detta mountar jag in via SERVER_IMAGES. Sökvägen till båda platserna deklareras i .env-filen.

#
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - ${SERVER_IMAGES}:/usr/src/app/server_images

    labels:
      homepage.group: "Tjänster"
      homepage.name: "immich"
      homepage.icon: "immich"
      homepage.href: "min_url"
      homepage.description: "Google Photos – fast privat och snyggare"

    env_file:
      - .env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
      - ${SERVER_IMAGES}:/usr/src/app/server_images


    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
      # DB_STORAGE_TYPE: 'HDD'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:

Labels i Docker Compose – så gör du din tjänst synlig i Homepage

Om du, precis som jag, använder Homepage för att hålla koll på alla dina självhostade tjänster, då spelar labels i Docker Compose en viktig roll. De gör att dina containers automatiskt dyker upp i dashboarden – snyggt organiserade med namn, ikon, beskrivning och klickbar länk.

I fallet med Immich har jag t.ex. lagt till detta:

labels:
  homepage.group: "Tjänster"
  homepage.name: "immich"
  homepage.icon: "immich"
  homepage.href: "din url"
  homepage.description: "Google Photos – fast privat och snyggare"
Homepage

.ENV-filen

Tänk på att uppdatera till dina värden, det gäller alla sökvägar samt användarnamn och lösenord.

Y# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/user/media/immich

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/mnt/user/appdata/immich_db/postgresql/data

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=ditt_lösenord

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=ditt_användarnamn
DB_DATABASE_NAME=immich

SERVER_IMAGES=/mnt/user/media/images

Se videon för mer demo och installation.

Leave a Reply

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Denna webbplats använder Akismet för att minska skräppost. Lär dig om hur din kommentarsdata bearbetas.