我就是啥都想玩。
关于immich几个细节问题的说明
关于immich几个细节问题的说明

关于immich几个细节问题的说明

中文互联网上搜索immich,出来的内容基本都是大同小异的immich介绍,最多再带点安装的简单说明。其实immich的安装根本不是啥难事,完全可以算得上傻瓜级别。

然而更深入一步,就鲜有中文内容的介绍了。一是这个immich系统目前没有中文界面,国内用户少;二是大神们懒得对简单问题作更多解释。

但对于计算机小白而言,现实的困难还是有的。为解决这些困难与问题花费了笔者不少时间。为了避免更多的人浪费时间,特在此把几个问题一并说清楚。(以下内容建立在您已经通过docker安装完immich的基础上。如果不会安装,请自行百度,网上中文教程还是有的。)

immich网页版界面

一、导入原有相册、外部资料库及immich CLI的使用

相信大部分用户在安装完immich后都有一堆照片视频等着导入。如果这些照片视频全部都在手机上,那么用immich移动app的备份功能很容易就能办到。但如果您像笔者一样打算把mac照片app中存放了十多年的庞大图库迁移到immich,就没有这么容易了,网页版不适合大量图片视频的上传,最简单的办法是利用外部资料库来导入。如何建立外部资料库?仅仅三步:1、修改您部署immich的docker compose文件,找到下面这部分,按照您指定的path增加一行volume参数。

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
      - (您指定的path):/usr/src/app/external

2、点击右上角“Administration”,然后点击编辑用户的按钮,确认“External Path”这一栏的内容与下图一致

3、点击右上角圆形图标并在弹出框中点击“Account Settings”,找到“Libraries”一栏并点击“Create External Library”,然后点击右侧圆形三点图标,编辑输入path,一般来说也是/usr/src/app/external/

注意,第2步与第3步中的Path不是必须完全一致,第3步Path的应当属于/usr/src/app/external/内。完成上述步骤后,点击“Scan New Library Files”就开始导入文件了。

当然,如果您像笔者一样有一点点整齐强迫,那么一定会用某种有组织且系统的方式来管理相册,比如建立相簿。mac照片可以把所有相簿作为文件夹导出照片及视频,然而经过笔者的实际测试发现,外部资料库导入的方式并不会根据文件夹名称生成album,而在immich中重新去组织照片并形成album也不太现实,所以必须祭出大杀器:immich CLI了。

immich CLI是通过命令行导入相册的工具。官方说明其实挺容易理解,链接在这里。这里只有两点要补充,一是immich upload的“directory/”是宿主机上的位置,不是immich容器内的位置。所以如果要使用immich CLI最好先把相册数据放到宿主机的指定位置上。二是immich upload –album –recursive命令其实一点都不好用,会莫名其妙把单个照片变成一个album,而真正要的album却是空的。最合理的方式是用immich upload –album-name命令,一个文件夹一个文件夹地导入。

二、immich机器学习功能的开启

immich的一大特色功能就是引入了AI模型去对照片的人物、内容进行标识,并对人物面部进行识别。导入照片后,当您兴冲冲打开“People”,会发现里面空无一人。网上可能也能搜到说这是国内网络的原因,给出的解决方案无非是代理等不是办法的办法。实际上,机器学习功能不工作的原因,是因为提供大模型的Huggingface的网站打不开,没有了大模型,自然也就不能进行机器学习。而解决的办法也很简单,把原有下载的路径改成Huggingface的镜像站网址即可。——前面就是笔者在中文网页上搜到的信息,大神的解决方案很好,但对于小白而言完全没有价值,所有这些信息都没有说应该如何操作去解决这个问题。

幸而最后找到了这里,找到了简单易行的解决办法:打开docker/immich-app目录里的.env文件,在最后添加一行:HF_ENDPOINT=https://hf-mirror.com。重新部署后就会发现immich_machine_learning容器正在下载大模型文件。下载完成后会对照片进行识别与分析。而人脸识别则是要等识别与分析全部完成后才会开始。

三、immich数据库的备份与恢复

immich使用postgres数据库来存放用户、照片信息及其他数据,一旦docker所在磁盘出现问题,物理迁移文件可能并不会将数据库资料一并迁移,你得到的将会是一个空白的数据库——对于存放大量照片视频的用户而言,这绝对是一场巨大灾难。为此,我们需要及时对数据库进行备份,并在灾后以正确方式重建。

1、备份数据库

在docker中安装immich,自然还是通过docker进行备份更合理。把以下代码加入你的docker-compose.yml文件并部署,运行容器实现postgres数据库的自动备份。

services:
  ...
  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local:14
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_CLUSTER: 'TRUE'
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      SCHEDULE: "@daily"
      POSTGRES_EXTRA_OPTS: '--clean --if-exists'
      BACKUP_DIR: /db_dumps
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database

2、恢复数据库

如果需要恢复数据库,前提是删除docker中整个immich项目。如果不完整删除,则不会恢复成功,你所看到的依然会是注册admin新用户的界面。然后在immich项目建立但从未运行的情况下逐条运行下列代码(避免在docker的图形界面操作,防止immich项目自己运行。如果immich项目已经运行过了,删除项目重新操作)。

cd (immich的docker目录)
docker-compose down -v  # 注意!所有的原数据库资料都将抹去
# rm -rf DB_DATA_LOCATION # CAUTION! Deletes all Immich data to start from scratch.
docker-compose pull     #拉取最新的镜像
docker-compose create
docker start immich_postgres
sleep 10
gunzip < "最新的备份文件路径.dump.sql.gz" \
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
| docker exec -i immich_postgres psql --username=postgres
docker-compose up -d

以上就是对于immich几个细节问题的说明。经过几日的使用,笔者觉得这个相册系统还是比较好用,打算再测试一段时间没问题就完全替换掉单机的mac照片。最后,感谢您的耐心阅读!

9条评论

    1. 奥奥

      目前,我在使用immich过程中有两个问题,1:微信保存的照片导入后,显示时间里的时区不对,相机拍摄的是能正常显示Shanghai时区。2:手机原来的照片通过外部资料库导入了,用immich客户端同步照片时不能排除已经导入的照片

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注