Immich 自建相册怎么部署?手机照片自动备份到私有云,告别网盘年费

网盘年费年年涨、原图还被限速,照片到底在谁手上?这篇把 Immich 自建相册的完整流程讲清楚:四条命令部署、手机自动备份、人脸识别与语义搜索、公网访问加固、数据库与文件双备份,以及升级迁移时最容易翻车的几个点。
Immich 自建私有云相册部署与手机照片自动备份

📥 下载地址:Immich 开源相册(自托管)

GitHub 最新版本:github.com/immich-app/immich/releases/latest

部署文档:docs.immich.app/install/docker-compose

手机客户端:App Store / 各大安卓应用商店搜索 Immich

开源协议 AGPL-3.0 · 服务端自行部署,不依赖任何第三方账号

前阵子刷到一个视频,标题问得很实在:手机照片存网盘,真的要年年交钱吗?底下评论两极分化,一派说”一年两百多不算贵”,另一派翻出自己十年前的照片,说”我不确定它十年后还在不在”。

这两个问题其实不是一回事。年费是钱的问题,数据在不在自己手里是另一个问题。而自建相册这件事,恰好能同时解决——但也确实有它的门槛,不是点两下就完事。

我自己把家里的照片从公有云搬到自建相册有一段时间了,用的是 Immich。这篇把它怎么部署、手机怎么自动备份、备份怎么做、哪些坑必须提前知道,一次讲清楚。跟着走一遍,大概率能跑起来。

一、先算一笔账:网盘年费到底在为什么买单

先摆事实。主流存储服务的价格大致是这样(以官方页面为准,随时可能调整):

方案 大致容量 年成本(估算) 数据归属
iCloud 2TB2 TB约 800 元苹果服务器
Google One 2TB2 TB约 700~900 元谷歌服务器
国内网盘会员2~5 TB约 250~400 元网盘厂商
自建 Immich硬盘买多少有多少硬盘一次性 + 电费自己的硬盘

数字上看,自建并不便宜——一块 4TB 企业盘一千多,加上一台常年开机的机器(NAS 或小主机),第一年成本比年费高。真正的差别在后面:

  • 第二年以后,边际成本接近于零。空间不够加块硬盘就行,不用换套餐;
  • 照片不会被”限速”。会员过期后下载回原图被限到几百 KB/s,这种经历很多人都有过;
  • 隐私不需要靠信任。照片、地点、人脸都在自己机器上,不上传、不做”内容分析”;
  • 不会被单方面改规则。容量缩减、功能下线、账号异常,这些都不再由别人决定。

所以这件事的本质不是省钱,是把控制权拿回来。省不省钱,取决于你用多久、存多少。

二、Immich 是什么,凭什么能替代网盘相册

Immich 是一个自托管的照片和视频管理服务,2026 年 11 月的数据是 11.8 万 Star、AGPL-3.0 协议、最新版 v3.3.6。它最常被拿来和 Google Photos 对比,因为界面上确实很像:

能力 Immich 的表现 说明
时间轴浏览✅ 完整按天滚动,支持缩放到年视图,流畅度接近商业产品
手机自动备份✅ 完整iOS/Android 官方 App,可只在 Wi-Fi 下备份、可只备份指定相册
人脸识别✅ 本地运行自动聚类人物,可命名合并,模型跑在本机不上传
智能搜索✅ 语义搜索输入”海边日落””生日蛋糕”能搜到,靠 CLIP 模型理解画面
地图视图✅ 支持读取 EXIF 坐标,按地点聚合
原图与 RAW✅ 保留原文件上传即原图,不二次压缩;支持 RAW 预览
多用户✅ 支持家里几个人各用各的账号,也能共享相册
外链分享✅ 支持生成链接给别人看,可设密码和有效期
Live Photo / 动态照片✅ 支持iPhone 的动态照片能正常播放

它和同类的区别在哪:

  • PhotoPrism(约 4 万 Star):更偏”图库管理”,标签和搜索很成熟,但手机端体验和自动备份不如 Immich 顺;
  • LibrePhotos(约 8 千 Star):人脸和相册组织不错,项目规模小一些,更新节奏慢;
  • Photoview(约 6.5 千 Star):轻量,直接把已有目录挂进来浏览,适合”已有照片库、只想加个网页界面”;
  • Immich:功能最全、迭代最快,代价是大版本升级偶尔有破坏性变更,需要看 release notes(后面第九节细说)。

如果你要的是”手机拍完自动进我自己的服务器,界面像 Google Photos”,Immich 目前是最省心的选择。如果你只想让一堆散落在硬盘里的老照片有个好看的浏览界面,Photoview 反而更合适——这点后面会再提。

三、自建之前必须想清楚的三件事

3.1 硬件:不要按”能跑起来”来配,要按”三年后”来配

Immich 有四个容器:主服务、机器学习、Redis(Valkey)、PostgreSQL。跑起来不难,难的是照片多了以后:

照片规模 内存 CPU 存储(含缩略图)
1 万张以内(试用、单人)4 GB2 核原图 × 1.3
1~5 万张(家庭主力)8 GB4 核原图 × 1.4
5 万张以上 / 多人共用16 GB4 核以上原图 × 1.5

“原图 × 1.3″这个系数来自缩略图和转码文件。手机视频多的,系数还要往上走。所以别按现在的照片量买盘,按三年的增量买。

3.2 备份:没有备份的自建,比网盘更危险

这是最容易忽略、后果也最严重的一点。公有云挂了有厂商兜底,自己的机器挂了就是真的没了。硬盘会坏、误删会发生、勒索病毒也真的会加密 NAS——站内那篇《群晖 NAS 勒索病毒防护与应急响应指南》就是讲这个的。

最低要求是3-2-1:三份数据、两种介质、一份异地。做不到全套,至少要保证”一份离线备份”。具体做法第八节展开。

3.3 访问方式:先决定局域网用还是公网用

只在家里看,那部署完就能用,简单。要在外面随时看,就要解决公网访问,而这会引入安全风险——直接暴露 2283 端口是最常见的错误。第七节讲怎么做。

四、部署实战:四条命令跑起来

官方推荐 Docker Compose,因为要认真跑 PostgreSQL 和机器学习服务,手工装会很痛苦。下面的步骤在 Ubuntu / Debian / 群晖 Docker / 1Panel 环境都通用。

4.1 准备目录

mkdir -p /opt/immich && cd /opt/immich
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

注意一定从 releases/latest/download 取,不要用仓库 main 分支的版本——官方在文件头明确写了:main 上的 compose 可能和最新 release 不兼容。

4.2 改三个环境变量

.env 里真正需要动的只有三个:

UPLOAD_LOCATION=/mnt/data/immich/library
DB_DATA_LOCATION=/mnt/data/immich/postgres
DB_PASSWORD=换成一串随机字符
TZ=Asia/Shanghai

三个提醒:

  • DB_PASSWORD 只能用字母和数字,不要用特殊字符和空格,官方特别标注了这条;
  • DB_DATA_LOCATION 必须放在本地磁盘,不能是网络共享。数据库跑在 NFS/SMB 上会出各种锁冲突,这是很多人踩的坑;
  • UPLOAD_LOCATION 才是照片本体,可以放大盘、可以放挂载的存储池。

4.3 启动

docker compose up -d
docker compose ps

四个容器都应该是 running 或 healthy:immich_server、immich_machine_learning、immich_redis、immich_postgres。首次拉镜像大概几分钟,机器学习镜像比较大。

如果 immich_server 反复重启,先看日志:

docker compose logs -f immich-server

90% 的情况是数据库没起来或者密码不对,日志里会直接写连接失败。

4.4 初始化

浏览器打开 http://服务器IP:2283,第一次进会要求创建管理员账号。这个账号就是你的最高权限,密码用密码管理器生成一个。

进去之后建议先去「管理 → 设置 → 存储模板」改一下目录结构。默认是按 用户/年份/年月 分,改成 年份/年月/文件名 这种纯时间目录更好——原因是他日想脱离 Immich 直接把文件拷走,目录结构依然可读。这一步很多教程会跳过,但它决定了你以后有没有”退出自由”。

五、手机端自动备份怎么配

装官方 App(iOS 应用商店、安卓各大市场都能搜到 Immich,也可以从 GitHub Releases 下载 APK),打开后填服务器地址。

关键设置在「备份」页:

选项 建议 原因
备份开关打开关掉就变成手动同步,很容易忘
仅在 Wi-Fi 下备份建议开视频文件大,蜂窝流量烧得快
前台/后台备份两个都开iOS 后台限制严,只开前台等于没开
备份相册范围只选相机胶卷避免把截图、下载的图、表情包一起塞进去
同步已删除文件先不开手滑删本地会连带云端一起删,等信任之后再开

iOS 用户注意:后台备份受系统限制,最好的触发时机是晚上插着电、连着 Wi-Fi。安卓端可以更激进,很多机型支持常驻通知保活。

第一次备份会跑很久,取决于照片量。这期间 CPU 和内存会明显升高,因为要同时生成缩略图、跑人脸检测和 CLIP 向量。别在这时候去网页上疯狂滚动时间轴,容易互相拖慢。

🔧 我整理的软件库

这些年折腾服务器、虚拟化和开发环境,装过的系统镜像、运维工具、开发套件、数据库与中间件,我都归档在自建的文件库里,持续补充新版本。没有弹窗广告,不强制注册,需要什么直接取。

进入软件库 →

常用工具随手可取 · 不定期补档

六、人脸识别和智能搜索:这才是自建的真正价值

很多人搬家的动机只是”省钱”,但真正让人回不去的是这两个功能——因为它们是在你自己机器上跑的。

6.1 人脸识别

备份完成、缩略图生成完之后,在「探索 → 人物」里会看到自动聚类出来的人。操作很朴素:点进去给一张脸命名,同一批就会合并。同名的人脸多了,识别会越来越准。

几个实用细节:

  • 识别在机器学习容器里跑,首次会把模型下载到 model-cache 卷,大约几百 MB;
  • 老照片里的小孩和成年后的人脸,一开始不会归到一起,手动合并一次就行;
  • 不想被识别可以在设置里关掉,但关掉之后就失去了”按人找照片”的能力。

6.2 语义搜索

Immich 用 CLIP 模型给每张图生成向量,所以可以直接搜内容而不是文件名。搜”生日蛋糕”、”海边日落”、”白色汽车”都能命中,不需要提前打标签。

这功能吃算力:一张图一次推理,几万张照片的初始索引可能要跑几小时到一整天。如果有 NVIDIA 显卡或者带核显的 Intel 平台,可以给机器学习容器开硬件加速(官方 compose 里已经写好了注释,取消注释就行),速度能快好几倍。

6.3 这两个功能为什么必须自建

公有云也做人脸和场景识别,但那是把照片传上去、在别人服务器上算。自建的意义就在这:模型、向量、人脸数据全在本地,不联网也能跑。对照片里有家人、小孩、证件、票据的人来说,这是决定性的差别。

七、公网访问与安全加固

这一节别跳。自建相册暴露在公网,等于把家里的照片柜搬到马路边上——门锁做得怎么样,直接决定后果。

7.1 不要直接把 2283 开到公网

最少也要加一层反向代理 + HTTPS。有域名的,用 Caddy 或 Nginx 配证书(Let’s Encrypt 免费);没有域名的,内网穿透也行,但穿透服务本身要选可靠的。

如果只是自己用,更好的方案是:不暴露公网,走 VPN 或内网穿透的白名单。Tailscale、ZeroTier 这类组网工具能让你在外面像在内网一样访问,攻击面直接降到零。

7.2 必做的五项加固

加固项 做法
强密码 + 二次验证管理员账号用随机密码,开启两步验证
HTTPS 强制反代层做 301 跳转,加 HSTS
限制注册关掉公开注册,新账号由管理员邀请
数据库不出网compose 里 postgres 和 redis 本来就没映射端口,别自己加上
日志与告警保留访问日志,对异常登录尝试设阈值告警

想更彻底一点,可以在前面加一层 WAF。站内写过一篇《雷池 SafeLine 一条命令给个人站点装上开源 WAF》,配置成本很低。另外《网站漏洞怎么自查》里那套自查流程,对自建服务同样适用——尤其是”敏感文件别放网站根目录”和”管理端口别裸奔”这两条。

八、备份:自建最容易翻车的地方

这一节是我认为整篇最该认真看的部分。照片丢了,前面所有折腾都白费。

8.1 要备份哪两样东西

Immich 的数据分两块,缺一不可:

  • 照片本体:就是 UPLOAD_LOCATION 那个目录,包括原图、缩略图、转码后的视频;
  • 数据库:PostgreSQL 里存的是元数据——谁上传的、什么时候、在哪个相册、人脸聚类结果、向量索引。

只备照片,重装后是新库,所有相册分组和人脸标签全丢;只备数据库,那是空壳,点开全是裂图。

8.2 数据库导出

docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres > /backup/immich-db-$(date +%F).sql

这条命令可以放进 cron,每天凌晨跑一次。SQL 文件不大,几万张照片通常也就几百 MB。

8.3 文件同步

照片目录用 rsync 增量同步到另一块盘或另一台机器:

rsync -a --delete /mnt/data/immich/library/ /mnt/backup/immich-library/

注意 --delete 这个参数:它会让备份和目标完全一致,好处是不会越备越乱,坏处是源端误删会同步到备份。所以我更推荐用快照或者带版本的工具,把”删除”这件事留一条后路。

8.4 异地那一份

同城的另一台机器、或者加密后传到对象存储、或者定期拷一块移动硬盘放到别处。三种都行,选一种真正会执行的。很多人计划得很好,最后败在”忘了插硬盘”。

如果你手上就是一堆散落在各处的照片和文件,想先把它们归拢起来再加备份,站内那篇《awesome-selfhosted 收录上千个开源项目》里有不少配套工具的思路,可以参考。

真出事的时候(数据库坏了、容器起不来、误删了相册),恢复顺序是固定的:先还原数据库 → 再放回照片目录 → 最后启动容器。顺序反了会对不上。如果自助排查卡住了,或者手上没有可用备份想评估还能救回多少,可以直接联系我:微信/手机 17712677007。先在消息里说清楚三件事——装在哪套环境、最后一次正常是什么时候、有没有数据库 SQL 备份,比笼统问”数据没了怎么办”能快很多。

九、版本升级与大版本跳跃

Immich 迭代很快,2026 年已经到 v3.x。快是优点,代价是大版本之间偶尔有破坏性变更:数据库结构、环境变量名、甚至 compose 文件结构都可能变。

安全升级的流程:

  1. 先看 GitHub Releases 的说明,重点找”Breaking Changes”字样;
  2. 备份数据库和照片目录(对,每次升级前都备);
  3. 重新下载对应版本的 docker-compose.yml,别用旧的;
  4. docker compose pull && docker compose up -d;
  5. 看日志确认迁移跑完,再打开网页验证。

不想折腾的,就把 IMMICH_VERSION 钉在一个具体版本号上,别用 release 这种浮动标签——否则某次重启就自动跳版本了,而你完全不知道发生了什么。

十、三种不适合自建的情况

说实话,这件事不是所有人都该做。以下三种情况我建议别自建:

情况 原因 替代方案
完全没有运维经验,也不想学出问题时没人兜底,数据风险高于省下的钱继续用网盘,或者买成品 NAS 的相册套件
照片超过 10 万张且必须随时外网高速访问带宽和算力要求高,家用环境体验会打折自建 + 云端只存精选,混合方案
只是想让老照片有个浏览界面Immich 四容器架构对这点需求太重Photoview 或更轻的静态图库

判断标准很简单:你愿不愿意为它每年花几个小时维护。愿意,就值;不愿意,网盘那笔钱买的就是”不用管”。

十一、常见问题

Q:手机备份很慢,正常吗?
首次正常,几万张照片跑一整晚很常见。后续增量备份只传新文件,会快很多。如果一直慢,检查是不是在蜂窝网络下、是不是服务器 CPU 被打满了。

Q:HEIC 照片会不会出问题?
Immich 支持 HEIC,会生成兼容格式的预览。原文件保留不动,所以下载回来还是 HEIC。

Q:硬盘空间涨得比预期快?
三个原因:缩略图(约占原图 10~20%)、视频转码(生成多个码率)、以及”删了但还在回收站”。先去管理后台看空间占用明细,再决定是清回收站还是调转码策略。

Q:可以在群晖/威联通上装吗?
可以,这两种 NAS 都支持 Docker Compose。注意数据库目录一定放本地卷,别放网络共享。低端型号(2G 内存那种)跑起来会很吃力。

Q:以后想搬走,照片拿得出来吗?
能。这正是前面强调”改存储模板”的原因——文件在磁盘上是按你定义的目录结构存的普通图片文件,不是加密数据库里的二进制。就算哪天不用 Immich 了,直接拷走照样能看。

Q:和网盘能不能共存?
可以,很多人是”Immich 存全量原始库,网盘只放精选和分享”。这样既有完整备份,又不至于把几百 GB 都塞给云服务。

十二、写在最后

回到开头那个问题:手机照片存网盘,该不该继续交年费?

我的答案是:看你想要的是”存储空间”还是”数据的所有权”。前者花钱买就行,后者只能自己搭。

Immich 这类项目真正改变的地方,不是省了多少钱,而是把”我的照片在哪里、谁能看、会不会明天改规则”这三个问题的答案,从别人手里拿回到自己手里。代价是要花一个下午部署、每年花几个小时维护、以及一套真正能恢复的备份。

这三件事做到了,剩下的就是享受——手机拍完自动进库,随时能搜到三年前那只猫,而且没有人会因为你没续费就把原图限速。

如果部署过程中卡在某一步,或者你想评估自己那套环境(NAS 型号、内存、现有照片量)到底跑不跑得动,欢迎评论区说下具体情况,我挑典型的单独拆一篇。

✍️ 关于作者

IT 峰哥,互联网技术从业者。日常折腾服务器、虚拟化、数据库与企业级应用,关注开源系统的二次开发与基础设施落地。这里记录的是踩过的坑和验证过跑得通的方案,不是转述文档。

交流:微信 / 手机 17712677007(注明来意,看到会回)

文中方案如有疏漏,欢迎在评论区指正 · 技术问题欢迎交流

默认

网站漏洞怎么自查?AI 渗透测试工具清单与修复优先级(2026 实战)

2026-11-7 20:10:26

默认

ESET NOD32 17 杀毒软件互联网安全套装

2025-7-30 9:00:00

❯
搜索