当前位置: 首页 > news >正文

在群晖中部署相册管理工具 immich详细步骤

        群晖中本身集成有一个非常好用的相册管理套件:Ds photo(现在改名为Synology Photos),今天要部署的 immich 项目和Synology Photos 功能相似,同样提供web管理,iOS和安卓的多端备份功能。不过immich具有更强大的功能,其提供了基于大模型的AI搜索功能,通过本地大模型的识别分析,用户可以用关键字查找任意一张符合描述的图片。比如搜索“黄色的衣服”,那么 immich 会根据匹配程度对照片进行排列。

一、下载immich:

先打开项目地址:github.com/immich-app/immich,下载下图中的压缩包。

解压,得到一个immich-main文件夹,找到下图这个docker文件夹。

进入docker文件夹,下图红框中的两个文件就是我们需要的配置文件。

二、修改配置文件

右击第二个文件example.env,点击编辑进入编辑状态。

将上图中三个位置分别修改为:/volume1/docker/immich/library,/volume1/docker/immich/postgres,Asia/Shanghai。修改后的文件另存为.env,修改后的文件见下图:

为什么要修改这三个地方呢?因为:

三、建立immich文件夹

       登录你的群晖系统,打开File Station,进入docker文件夹(如没有这个文件夹,先在控制面板的共享文件夹中新建docker文件夹,并设置好访问权限),新建immich文件夹,并在immich文件夹中新建library和postgres两个文件夹。上述修改的前两处,其实就是这两个文件夹的实际路径,见下图:

至于第三个修改处,其实是把时区修改成亚洲上海。

现在,可以把docker-compose.yml和.env这两个文件上传到immich文件夹中。

四、创建immich项目

       运行Container Manager套件,新增一个项目,路径选择前面创建的immich文件夹,配置文件使用现有的 docker-compose.yml 来创建项目,后续的其他选项保持默认即可。

创建好项目后,开始构建项目。


构建时要从网上拉取一些文件(从四个映像的大小来看,约有4-5G),可能过程不会太顺利。前天晚构建了好几次,都提示失败(如下图,红点说明拉取失败,可重新构建,转圈说明正在拉取,只能耐心等待)。

       今天上午构建却出乎意料的顺利,可能今天周末,大家都没起床,网络畅通吧。如果构建不顺利,可以多次构建。还可更换DNS试试。

创建成功后共有四个容器被启动(前面那个绿点说明启动成功)。

至此,immich服务器启动。

五、远程访问immich

       现在可以在浏览器中用你的群晖IP加2283端口访问 immich 了。如192.168.1.100:2283。第一次登录需要注册管理员账户,注册成功后保持配置的默认选项即可进入主界面。

       其他操作比较简单,就不再啰说。这里主要讲一下外部相册的连接问题。

immich默认的是建立相册后,上传照片。但实际上群晖用户,大多是已在共享文件夹photo中。

如果再去下载后又上传,是件很搞笑也很麻烦的事,尤其照片相当多的情况下。其实immich是支持外部相册目录挂载的。这不需要修改配置文件 docker-compose.yml。

        在docker/immich文件夹中右击编辑 docker-compose.yml,在22行下新增一行内容,

冒号前面的路径是照片实际存放的路径,冒号后面是在容器中的路径,可以根据自己习惯写,后面挂载外部相册时要用到的。ro代表只读,这样immich用户就只能看这些图片,无法从web界面删除这里面的照片,这个还是很有用的。如果家里是有多个人,可以按照目录进行安排,例如爸爸、妈妈都在NAS上有自己的目录,例如:爸爸的目录是 /mnt/media/photos/father ; 妈妈的目录是 /mnt/media/photos/mother , 那就可以把上面最后一行修改成这样:

 - /volume1/photo/father:/mnt/media/photos/father:ro- /volume1/photo/mother:/mnt/media/photos/mother:ro

原来的目录不需要动。

修改完后,好像重启immich服务并不能成功,应当将immich服务停止并重新构建才行。

在路径里填上/mnt/media/Photos,即前面修改的冒号后容器中的路径,不要把 :ro填进去了。如果路径添加成功,则:

http://www.dtcms.com/a/278241.html

相关文章:

  • Node.js crypto 模块全面入门
  • CCF-GESP 等级考试 2025年6月认证Python三级真题解析
  • 在conda的环境中安装Jupyter及其他软件包
  • #odb0004. 最小循环子数组【B卷 200分】-字符串
  • DeepSeek 微调实践:DeepSeek-R1 大模型基于 MS-Swift 框架部署 / 推理 / 微调实践大全
  • JavaSE-多态
  • 2023.05.06 更新前端面试问题总结(12道题)
  • 如何将FPGA设计的验证效率提升1000倍以上(4)
  • Flink数据流高效写入MySQL实战
  • 大模型微调(一):基于Swift框架进行自我认知微调(使用Lora微调Qwen3-8B模型)
  • 芯片相关必备
  • 初识drag2框架,drag2注入的基本原理
  • [Python 基础课程]元组
  • HashMap 和 ConcurrentHashMap 的区别
  • JAVA学习笔记 JAVA开发环境部署-001
  • 【Datawhale夏令营】用AI做带货视频评论分析
  • Origin自带的悬浮尺子,Screen Ruler的最佳平替
  • C# 接口(接口可以继承接口)
  • 终极剖析HashMap:数据结构、哈希冲突与解决方案全解
  • 【面板数据】上市公司诉讼风险、诉讼次数等数据集(2007-2023年)
  • 【LeetCode100】--- 4.移动零【复习回顾】
  • 剑指offer58_和为S的连续正数序列
  • 深入理解 LangChain:AI 应用开发的全新范式
  • 人工智能到底是什么?揭开 AI 的神秘面纱
  • Spring @Autowired:依赖注入的核心奥秘
  • markdown-it-mathjax3-pro —— 新一代 Markdown 数学公式渲染插件
  • 代码精进之路
  • NumPy 中 np.c_ 的用法解析
  • Prometheus 第一篇:快速上手
  • 哪些行业的“反内卷”前景更好?