-
创建者:
虚拟的现实,上次更新时间:9月 21, 2025 需要 4 分钟阅读时间
1. 功能特性
功能特性 | 移动端 | 网页端 |
---|---|---|
上传并查看照片和视频 | 是 | 是 |
软件运行时自动备份 | 是 | N/A |
选择需要备份的相册 | 是 | N/A |
下载照片和视频到本地 | 是 | 是 |
多用户支持 | 是 | 是 |
相册与共享相册 | 是 | 是 |
可拖动的快速导航栏 | 是 | 是 |
支持RAW格式 | 是 | 是 |
元数据视图(EXIF、地图) | 是 | 是 |
通过元数据、对象、人脸和标签进行搜索 | 是 | 是 |
管理功能(用户管理) | 否 | 是 |
后台备份 | 是 | N/A |
虚拟滚动 | 是 | 是 |
OAuth 支持 | 是 | 是 |
API Keys | N/A | 是 |
实况照片备份和查看 | 是 | 是 |
用户自定义存储结构 | 是 | 是 |
公共分享 | 否 | 是 |
归档与收藏功能 | 是 | 是 |
足迹地图 | 是 | 是 |
好友分享 | 是 | 是 |
人脸识别与分组 | 是 | 是 |
回忆(那年今日) | 是 | 是 |
离线支持 | 是 | 否 |
只读相册 | 是 | 是 |
照片堆叠 | 是 | 是 |
2. docker-compose
version: "3.7" # # WARNING: 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} command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 9000:3001 depends_on: - redis - database restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.yml # service: hwaccel command: [ "start.sh", "microservices" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - ${IMMICH_MODEL}:/cache env_file: - .env environment: - HTTP_PROXY=socks5://192.168.77.209:7890 - HTTPS_PROXY=socks5://192.168.77.209:7890 ports: - 3003:3003 restart: always redis: container_name: immich_redis image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc restart: always database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - /rdm_4t/immich/pgdata:/var/lib/postgresql/data restart: always
2.1. .env
# The location where your uploaded files are stored UPLOAD_LOCATION=./library IMMICH_MODEL=./immich_model # 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 DB_PASSWORD=password # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=immich DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis TZ=Asia/Shanghai
3. 离线下载模型
官方默认的镜像是不包含人脸识别模型的,当运行容器时默认会自动下载对应的模型。受网络限制,在线无法成功下载可以通过离线下载的方式实现。相关的模型及对应的文件结构如下图所示:
模型下载地址是:https://huggingface.co/immich-app
参照上图的文件结构下载对应的模型文件并将挂载到 容器 /cache 目录下
图片中文搜索支持 https://huggingface.co/immich-app/XLM-Roberta-Large-Vit-B-16Plus/tree/main
3.1. 隐藏 license 的显示
在管理界面的【Theme】中添加自定义的 css 代码
.license-status { display: none !important; }
3.2. 地理位置信息中文化
解决 Immich 识别照片拍摄位置都是英文的问题,并对结果进行了优化。对国内的地点进行了完整的汉化,国外的地点汉化也进行了实验性支持(目前仅尝试了日本)
- 利用 高德/LocationIQ API 重新将结果标准化为 国家、省份、城市 三个等级,避免 Immich 原本数据中不常用的称呼
- 定期拉取最新数据并自动更新发布
volumes: - ./geodata:/build/geodata - ./i18n-iso-countries/langs:/usr/src/app/node_modules/i18n-iso-countries/langs
- 可以检查一下日志,启动时候会出现 10000 geodata records imported 类似的日志,这表明 geodata 更新了
- 如果没有更新,可以尝试修改 geodata/geodata-date.txt,修改成一个更新的时间,如果旧于 Immich 曾经加载过的时间 Immich 就不会更新
- 启动完成后登录你的 Immich 管理后台,在 系统管理-任务 中 提取元数据 点击 全部,以触发所有照片的元数据刷新,等待任务完成后,所有照片的位置信息就都会显示成中文,后续新增的图片则无需任何额外操作,并且可以用中文进行搜索了
4. 版本升级
默认情况下,immich 版本升级只需要更新容器镜像的版本,完成新版本的容器镜像版本下载后停用旧版本后再启用新版本即可完成新版的应用更新
docker-compose -f immich-compose.yml pull docker-compose -f immich-compose.yml down docker-compose -f immich-compose.yml up -d docker logs -f immich_server
但是如果 immich 版本涉及数据库版本的更新则需要先完成数据的更新后才能正常更新 immich 版本
4.1. 更新数据库
本次更新的版本启动后提示需要更新数据库,容器日志存在以下的提醒
“ WARN [Api:DatabaseService] DEPRECATION WARNING: The pgvecto.rs extension is deprecated and support for it will be removed very soon.
immich_server | See https://immich.app/docs/install/upgrading#migrating-to-vectorchord in order to switch to the VectorChord extension instead.
”
immich 【v1.142.1】启动后一直卡在登录页面无法正常进入,官网的提示是 【1.133.0】及其以后的版本都需要使用新的数据库版本。
这里正在应用的数据库容器是【tensorchord/pgvecto-rs:pg14-v0.2.0】,需要升级到的版本是【ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0】
网上有资料反馈直接更换容器的数据库版本应用能自动完成数据库和 immich 版本的升级,我这边实际环境验证的情况没有成功
docker-compsoe -f immich-compose.yml up docker exec immich_postgres pg_dumpall -U immich > pgvecto_rs_backup.sql # immich 是数据库用户,保存在 .env 文件中 docker-compsoe -f immich-compose.yml down mv pgsql pgsql.bak docker-compose -f pg16.yml up cp pgvecto_rs_backup.sql /rdm_4t/immich/pgdata docker exec -it immich_postgres bash cd /var/lib/postgresql/data/ psql -U immich < pgvecto_rs_backup.sql exit
4.2. pg16.yml
version: "3.7" name: immich services: database: container_name: immich_postgres # image: tensorchord/pgvecto-rs:pg14-v0.2.0 image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - /rdm_4t/immich/pgdata:/var/lib/postgresql/data restart: always
5. 参考
docker exec -it immich_postgres psql immich immich
5.1. immich-compose.yml
version: "3.7" name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - ./deps/geodata:/build/geodata - ./deps/i18n-iso-countries/langs:/usr/src/app/node_modules/i18n-iso-countries/langs env_file: - .env ports: - 9000:2283 depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - ${IMMICH_MODEL}:/cache env_file: - .env ports: - 3003:3003 restart: always redis: container_name: immich_redis image: redis:7.2.7-bookworm restart: always database: container_name: immich_postgres # image: tensorchord/pgvecto-rs:pg14-v0.2.0 image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - /rdm_4t/immich/pgdata:/var/lib/postgresql/data restart: always
5.2. .env
UPLOAD_LOCATION=./library IMMICH_MODEL=./immich_model # 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 DB_PASSWORD=Www.lfang123.com # The values below this line do not need to be changed ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=immich DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis TZ=Asia/Shanghai
- 无标签
添加评论