替代群晖相册 - immich 部署教程

一直以来,我都用群晖自带的 Photos 来备份手机照片,因为除了群晖相册之外,很少有一款相册的功能强大,而且有方便的手机客户端可以使用。而要使用群晖相册,就必须用群晖的系统,或者用白群晖,或者就得开个虚拟机。然而想想也就为了备份个相册而已,这么做实在太过笨拙。

而现在,immich 的出现让我终于有了放弃群晖相册的想法。跟着官方教程,一次就部署成功了,没遇到什么坑,App 也很好用。immich 这个项目很活跃,版本更新频繁,以至于官方在文档的显著位置放了一句提示:“⚠️ The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!”。😂

下面这是 immichRoadmap,可以看到,很多功能和 bug 都在计划之中。

如何部署?

如果你可以看懂一些英文,直接跟着 官方文档 走一遍,应该也不会遇到什么坑,官方文档也非常详细,该填的配置文件都可以直接粘贴。我是在 Unraid 这个 NAS 平台上部署 immich 的,所以本篇教程我也只讲如何在 Unraid 上部署使用。虽然跟着官方文档部署也不难,但对于刚接触 Unraid 的小白来说,依然可能遇到很多坑。下面这些步骤是为小白准备的,为了尽可能让小白也一次成功,我会把所有详细步骤都讲清楚。

准备

  • 需要建一个照片存储目录,用来保存你手机上的照片和视频。比如在 Unraid 的共享里建立一个名为 photos 的共享目录。

  • 安装 Docker Compose Manager 插件。安装 immich 使用 Docker Compose Manager 比较方便,在应用中心搜索安装即可。

什么是 Docker Compose?简单理解,Docker Compose 就是一组复杂的 Docker 容器集合,通过一个 docker-compose 文件来描述它们之间的关系。对于我们用户来说,只要能找到这个应用的 docker-compose 文件,我们也能轻松的让这个复杂的应用运行起来,不用去关心它们之间的关系是怎样的。需要启动的时候,直接启动这个 compose 就可以。

部署

在安装成功 Docker Compose 插件之后,在 Docker 选项卡最下方,会有一个 ADD NEW STACK 的按钮,点击之后会弹出一个对话框,提示输入名称,我们填写 Immich。填完之后点击 OK

建好之后,我们点击名称,会弹出提示,我们再点击 EDIT STACK。接下来我们会填写 COMPOSE FILE 以及 ENV FILE

点击 COMPOSE FILE,将官方提供的 Compose File 全部选中,直接复制粘贴到配置文本框里,然后点击 SAVE CHANGES

再点击 ENV FILE,将官方提供的 Env File 全部选中,直接复制粘贴到配置文件里。

接着修改上传路径 UPLOAD_LOCATION。比如我们之前建立的共享文件夹 photos 的上传路径就是 /mnt/user/photos

到现在,我们的配置就改好了,点击 SAVE CHANGES 保存更改。

接下来,就可以点击 COMPOSE UP 来启动容器了。


过一会,等待容器启动完成,就可以在 Docker 列表看到一堆新的 docker 容器了。看到 2283 这个默认的端口之后,我们就可以打开浏览器输入 NAS IP:2283 访问 immich 了。

immich 这个应用的启动和停止,可以通过控制最下方的 docker compose 来实现。

客户端

immich 支持 iOS 和 Android 客户端,而且功能非常完善,备份功能非常好用。Immich 也有网页版。比较遗憾的是,目前网页版还不支持中文,但相信这个问题也会很快解决。

机器学习

群晖的 Photos 支持人脸识别。在 immich 的网页版中,也有机器学习的选项,支持照片分类。

硬件加速(可选)

根据官方文档的提示,目前硬件加速功能还处于 实验性阶段,因此这个功能是可选的,如果你有需要,可以开启试试。这里仅介绍 Intel 带核显的 CPU 如何设置,其它平台可以查阅官方文档。

为了支持 VP9,你使用的 CPU 应该至少是 Intel 9 代或者以后的新平台。如果你用的是第 11 代或者之前的平台,还需要按这里的 文档说明 开启低电压模式。总之,这里的设置和开启 Jellyfin 硬解是一样的,只要你能确定 Jellyfin 可以硬解,那就 OK。

设置硬件加速

修改 Immich 的 COMPOSE FILE,在 immich-microservices: 中加入下面这段配置开启 QSV:

devices:
  - /dev/dri:/dev/dri

修改之后应该是这样:

保存后,点击更新 UPDATE STACK。之后在 Web 控制台里依次点击 Administration -> Setting -> Video Transcoding Settings -> Hardware Acceleration,将 ACCELERATION API 切换为 Quick Sync 并保存。