跳到主要内容

Immich

install

Docker Compose [Recommended]

  • 创建一个目录,用于存放 Immich 的配置文件和数据文件,例如 /home/immich
mkdir /home/immich
cd /home/immich
  • 在该目录下创建一个名为 .env 的文件
  • 下载 docker-compose.yml.env 文件到该目录
  • env 的配置可以参考官网相关字段
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
# 由于网络环境问题,可以参考以下image配置
ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
altran1502/immich-server:${IMMICH_VERSION:-release}
  • 启动容器
docker-compose up -d

升级

如果.env中设置了IMMICH_VERSION,则需要将其更新为最新或所需的版本。

docker-compose pull && docker-compose up -d # Or `docker compose up -d`

1.88.0 有重大更新,删除了 immich-web 和 immich-proxy,需要重新配置以下文件请参考 https://github.com/immich-app/immich/discussions/5086重新配置

version: '3.8'

services:
immich-server:
container_name: immich_server
image: altran1502/immich-server:${IMMICH_VERSION:-release}
command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
depends_on:
- redis
- database
- typesense
restart: always

immich-microservices:
container_name: immich_microservices
image: altran1502/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.yml
# service: hwaccel
command: ['start.sh', 'microservices']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
depends_on:
- redis
- database
- typesense
restart: always

immich-machine-learning:
container_name: immich_machine_learning
image: altran1502/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- .env
restart: always

immich-web:
container_name: immich_web
image: altran1502/immich-web:${IMMICH_VERSION:-release}
env_file:
- .env
restart: always

typesense:
container_name: immich_typesense
image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
environment:
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
- TYPESENSE_DATA_DIR=/data
# remove this to get debug messages
- GLOG_minloglevel=1
volumes:
- tsdata:/data
restart: always

redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
restart: always

database:
container_name: immich_postgres
image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always

immich-proxy:
container_name: immich_proxy
image: altran1502/immich-proxy:${IMMICH_VERSION:-release}
environment:
# Make sure these values get passed through from the env file
- IMMICH_SERVER_URL
- IMMICH_WEB_URL
ports:
- 2283:8080
depends_on:
- immich-server
- immich-web
restart: always

volumes:
pgdata:
model-cache:
tsdata: