开源自建相册 Immich:核心功能与入门部署指南
介绍开源自建照片与视频管理系统 Immich 的核心功能、多端体验与智能检索,并提供 Docker 快速部署指南与硬件门槛说明。
是什么
根据 GitHub 上的项目 README 说明,Immich 是一款高性能的自建照片与视频管理解决方案。在数字技术领域,自建(Self-hosting)是指将软件安装并运行在自己的私有硬件或本地家庭服务器上,而不是将数据存储托管给商业云服务提供商。Immich 通过中央服务端应用与专为网页浏览器和移动设备打造的客户端相结合,让用户能够直接掌控个人数字媒体资产。
该应用遵循 GNU AGPL v3(GNU Affero General Public License 第 3 版)许可协议以开源形式发布。项目在 Discord 上建有活跃社区,其用户界面与文档拥有数十种全球语言的社区翻译支持,包括西班牙语、法语、德语、日语、中文等。
如果想在搭建本地硬件环境之前先体验界面与工作流程,项目方在 demo.immich.app 提供了公开演示实例。用户可以直接在网页浏览器中访问该在线演示,也可以在移动端应用中填入该演示端点 URL 连接,使用提供的邮箱 [email protected] 和密码 demo 登录体验。
在项目代码仓库与官方文档中,数据安全被列为核心操作建议。项目文档建议用户遵循成熟的 3-2-1 备份策略。在数据保护术语中,该指南意味着在 2 种不同的存储介质上保留 3 份独立的媒体副本,且至少有 1 份存放在异地,从而确保珍贵的照片与视频安全无虞。
能做什么
Immich 具备丰富的功能集,旨在处理照片与视频的导入、媒体库整理、多用户管理以及跨 Web 与移动平台的内容发掘与检索。
媒体导入与备份
Immich 允许用户上传、查看和下载照片与视频文件。软件内置重复文件防护功能,避免重复存储完全相同的文件。在移动操作系统上,应用支持后台备份,并在每次打开应用时自动触发同步。移动端用户还可以自行选择备份特定相册,而不是上传手机相册中的全部照片。
除了常规媒体文件外,Immich 还支持专业相机的 RAW 格式、动态照片(Motion Photos)以及 Apple Live Photos,方便用户备份和回放动态媒体。在 Web 端控制台中,系统还可以直接浏览 360 度全景图片。
整理与分享
平台提供多种整理视图,包括标准相册、共享相册以及允许指定账号互看媒体库的伴侣共享(Partner sharing)功能。用户可以通过生成公开分享链接在外部共享内容。在媒体库内部,资源可以归档、整理至自定义文件夹视图中、按照用户自定义的存储目录结构分组,或者标记为喜爱收藏。Web 端应用还支持为照片添加自定义标签。
为了在庞大的照片时间轴中快速浏览,Immich 采用了虚拟滚动技术,并配有可拖动的平滑滚动条。此外,界面还支持照片堆叠(Photo stacking),可将连拍或相关照片合并显示在单个整理好的缩略图下;在需要限制编辑权限时,还提供只读画廊模式。
搜索与机器学习
Immich 内置了自动化机器学习工具,无需手动打标即可完成媒体内容的索引与查找。系统具备人脸识别与聚类功能,能够将同一人物的肖像照片归整到一起。它还提供自动物体识别,并集成了 CLIP(Contrastive Language-Image Pre-training)模型,允许用户基于场景描述或物体名称进行自然语言检索。
除了视觉识别模型外,应用还支持按相机的 EXIF 元数据(例如曝光设置或相机型号)以及地理坐标进行搜索。包含位置信息的内容可以在内置的全球地图视图中直观浏览。此外,平台还提供“回忆”(Memories)功能,能够自动浮现往年同一日期拍摄的照片与视频。
权限控制与多用户管理
Immich 采用原生多用户架构设计,允许多名用户在单台服务器部署中维护各自独立的媒体库。管理员可通过 Web 客户端的管理面板进行管理操作与账号创建。在安全性与自动化方面,Immich 支持 OAuth 认证协议,并支持生成用于自动化集成的 API 密钥。当移动设备断开网络连接时,移动端还提供离线支持,用户仍可继续浏览本地已缓存的相册内容。
怎么开始
Immich 官方文档介绍了使用 Docker 和 Docker Compose 的快速部署途径。Docker 是一种应用容器平台,能够将各项服务、数据库及其依赖项打包进可复现的环境中。
第 1 步:下载配置文件
首先,在宿主服务器上创建一个专用目录来保存安装文件,并进入该目录:
mkdir ./immich-app
cd ./immich-app
运行以下命令,下载官方的 Docker Compose 部署文件和环境变量配置模板:
wget -O docker-compose.yml 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
或者,也可以直接使用电脑上的普通桌面浏览器下载这两个文件,再拷贝到所选目录中。通过浏览器下载时,请确保将模板文件 example.env 重命名为 .env。
第 2 步:配置环境变量
使用文本编辑器打开 .env 文件,根据本地需要设置相应的配置值:
UPLOAD_LOCATION:定义上传的媒体文件和备份保存的本地路径(默认值为./library)。该路径应指向服务器上剩余空间充足的存储位置。DB_DATA_LOCATION:指定 PostgreSQL 数据库文件的存储目录(默认值为./postgres)。需要注意的是,数据库存储不支持网络文件共享路径。TZ:取消该行注释并填入有效的时区标识(如Etc/UTC),以设置本地时区。IMMICH_VERSION:设置软件的版本号(例如v3,或者指定特定发行版如v2.1.0)。DB_PASSWORD:为本地 PostgreSQL 数据库服务设置一个安全的连接密码。官方文档提示该密码仅用于本地认证,建议仅使用字母和数字(A-Za-z0-9),不包含特殊符号或空格,以避免解析错误。可以使用pwgen等工具生成合适的密码。DB_USERNAME与DB_DATABASE_NAME:标准的默认数据库标识(postgres和immich),常规部署下无需修改。
第 3 步:启动服务端容器
在包含自定义 docker-compose.yml 和 .env 文件的目录下,运行以下命令在后台启动 Immich 各项服务:
docker compose up -d
第 4 步:访问 Web 控制台
容器初始化完成后,打开网页浏览器并访问 http://<machine-ip-address>:2283。在服务器上注册的第一个账户将自动获取管理员权限。点击“Getting Started”按钮,按照步骤完成注册并登录控制台。你可以通过 Web 界面上传一张照片,测试基础功能是否正常运行。
第 5 步:安装并关联移动端应用
Immich 移动端应用可以通过多种分发渠道下载:Apple App Store、Google Play Store、GitHub Releases 上的 APK 直链、Obtainium(使用服务器 Utilities 页面中的配置链接添加)以及 FUTO F-Droid。
连接移动设备的步骤如下:
- 打开移动端应用,将服务器端点 URL(Server Endpoint URL)设置为
http://<machine-ip-address>:2283。 - 使用注册的账户凭据登录。此前在 Web 界面上传的照片将显示在手机屏幕上。
- 点击右上角的云朵图标,进入备份菜单。
- 选择需要同步到 Immich 服务器的指定相册。
- 向下滚动并点击“Enable Backup”开始上传媒体文件。
- 管理员可以在服务端的 Job Queues 标签页中监控媒体处理与后台任务进度。
第 6 步:独立维护备份
Immich 内置了数据库备份机制。然而,数据库仅存储系统元数据和用户记录。文档着重强调,管理员必须针对保存在 UPLOAD_LOCATION 目录下的所有照片与视频原始文件,独立建立常规手动备份机制。
如需扩充已有媒体库,用户可以挂载外部媒体库(External Library)、直接导入离线媒体存档,或者利用 immich-go 工具导入从 Google Takeout 导出的照片合辑。
价格与门槛
系统与硬件要求
根据官方快速入门文档,部署 Immich 需要具备以下条件:
- 配备有 Docker 的宿主系统。
- 最低硬件要求至少具备 6 GB 内存与 2 个 CPU 核心。
- 数据库目录(
DB_DATA_LOCATION)必须使用本地存储驱动器,因为网络共享存储不支持托管 PostgreSQL 数据库。 - 在指定的
UPLOAD_LOCATION路径下留有充足的可用磁盘容量,以容纳各类媒体文件。
价格与开源许可
Immich 作为开源软件在 GNU AGPL v3 许可协议下发布。具体价格细节、商业许可选项以及项目赞助方案,请以项目官网 immich.app 的公布信息为准。
适合谁
Immich 专为希望对个人照片和视频保留直接所有权与掌控权的个人、家庭以及自建服务爱好者而设计。对于那些希望寻找商业云平台替代品、不愿将个人媒体集中存放在第三方服务器上的用户而言,它是理想之选。
由于系统原生支持多用户、共享相册以及伴侣共享,它非常适合家庭场景——家庭成员可将各自的媒体文件备份到同一台本地服务器上,同时彼此的媒体库依然相互独立隔离。它同样适合经常拍摄 RAW 格式、实况照片或 360 度全景照片的摄影爱好者。此外,只要本地系统的多核 CPU 与内存达到基础门槛,对人脸聚类、物体识别、自然语言搜索等机器学习功能感兴趣的用户,也完全可以在自己的硬件上流畅运行这些功能。
替代品
PhotoPrism 是另一款开源照片管理替代方案。 Ente 则是另一款专为照片管理与备份设计的替代应用。
来源
同类推荐
Vaultwarden 概览与入门指南:轻量级密码管理服务端
本文介绍基于 Rust 构建的开源密码管理服务端 Vaultwarden,解析其核心功能、部署流程、运行门槛以及与官方服务的区别。
Uptime Kuma:开源自建监控工具的核心功能与部署指南
本文介绍开源自建监控工具 Uptime Kuma,涵盖其核心功能特性、多种部署安装方式以及运行所需的软硬件环境与系统门槛。
Paperless-ngx 概览:功能特性、归档与搭建指南
了解 Paperless-ngx 的定位与功能,如何将纸质文档数字化归档,通过 Docker 进行安装部署,以及家庭服务器运行时的关键安全要点。