Immich
Easily back up, organize and manage your photos on your own server. Immich helps you browse, search and organize your photos and videos with ease.
References
Directory structure
Directoryimmich
Directorylibrary/
- …
Directorymodel-cache/
- …
Directorypostgres/
- …
- compose.yml (*)
- .env (*)
Make directory
mkdir -p {{DOCKER_PATH_VAR}}/immich && cd {{DOCKER_PATH_VAR}}/immichcompose.yml
nano compose.ymlname: 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: - ${UPLOAD_LOCATION}:/data - /etc/localtime:/etc/localtime:ro 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://docs.immich.app/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 env_file: - .env restart: always healthcheck: disable: false
redis: container_name: immich_redis image: docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f 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@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 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: - ${DB_DATA_LOCATION}:/var/lib/postgresql/data shm_size: 128mb restart: always
volumes: model-cache:.env
nano .env# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables
UPLOAD_LOCATION=./libraryDB_DATA_LOCATION=./postgresTZ=America/New_YorkIMMICH_VERSION=v2
# Please use only the characters `A-Za-z0-9`, without special characters or spacesDB_PASSWORD=postgres
# The values below this line do not need to be changed###################################################################################DB_USERNAME=postgresDB_DATABASE_NAME=immichStart container
docker compose up -ddocker compose up -d --cpus="2.0" --memory="4g"